Linux 實用命令 及 權限 理解

目錄:

前言:

1、 Linux內核是系統的核心,控制着內存、程序和硬件之間的交互。

2、 你將會發現Linux使用正斜線(/)而不是反斜線(\)在文件路徑中劃分目錄。在Linux中,反斜線用來標識轉義字符,要是用在文件路徑中的話會導致各種各樣的問題。如果你之前用的是Windows環境,就需要一點時間來適應。

一、常用命令整理:

cd 就不要多說了,都知道、
1、有兩個特殊字符可用於相對文件路徑中:

 單點符(.),表示當前目錄;
 雙點符(…),表示當前目錄的父目錄。
你可以使用單點符,不過對cd命令來說,這沒有什麼意義。

2、tree :顯示目錄文件下的子目錄
3、touch命令創建了你指定的新文件,並將你的用戶名作爲文件的屬主。
4、mkdir 創建目錄
5、 cat 查看整個文件
cat命令的主要缺陷是:一旦運行,你就無法控制後面的操作。
6、more命令是分頁工具。

more命令會顯示文本文件的內容,但會在顯示每頁數據之後停下來。

7、tail命令中加入-n參數來修改所顯示的行數。
8. head命令

head命令,顧名思義,會顯示文件開頭那些行的內容。。默認情況下,它會顯示文件前10行的文本。

二、探查Linux統的內部信息 :

1、 ps命令好比工具中的瑞士軍刀,它能輸出運行在系統上的所有程序的許多信息。

默認情況下,ps命令並不會提供那麼多的信息:


表4-1 Unix風格的ps命令參數

-A 顯示所有進程
-N 顯示與指定參數不符的所有進程
-a 顯示除控制進程(session leader①)和無終端進程外的所有進程
-d 顯示除控制進程外的所有進程
-e 顯示所有進程
-C cmdlist 顯示包含在cmdlist列表中的進程
-G grplist 顯示組ID在grplist列表中的進程
-U userlist 顯示屬主的用戶ID在userlist列表中的進程
-g grplist 顯示會話或組ID在grplist列表中的進程②
-p pidlist 顯示PID在pidlist列表中的進程
-s sesslist 顯示會話ID在sesslist列表中的進程
-t ttylist 顯示終端ID在ttylist列表中的進程
-u userlist 顯示有效用戶ID在userlist列表中的進程
-F 顯示更多額外輸出(相對-f參數而言)
-O format 顯示默認的輸出列以及format列表指定的特定列
-M 顯示進程的安全信息
-c 顯示進程的額外調度器信息
-f 顯示完整格式的輸出
-j 顯示任務信息
-l 顯示長列表
-o format 僅顯示由format指定的列
-y 不要顯示進程標記(process flag,表明進程狀態的標記)
-Z 顯示安全標籤(security context)①信息
-H 用層級格式來顯示進程(樹狀,用來顯示父進程)
-n namelist 定義了WCHAN列顯示的值
-w 採用寬輸出模式,不限寬度顯示
-L 顯示進程中的線程
-V 顯示ps命令的版本號

使用ps命令的關鍵不在於記住所有可用的參數,而在於記住最有用的那些參數。

#如果你想查看系統上運行的所有進程,可用-ef參數組合(ps命令允許你像這樣把參數組合在一起)。

ps -ef 顯示的信息如下:
在這裏插入圖片描述

2.1.2 實時監測進程

top

2.2.3 查看磁盤空間

使用 df 命令有時你需要知道在某個設備上還有多少磁盤空間。df命令可以讓你很方便地查看所有已掛載磁盤的使用情況。
df命令會顯示每個有數據的已掛載文件系統。
,有些已掛載設備僅限系
統內部使用。命令輸出如下:

  • 設備的設備文件位置;
  • 能容納多少個1024字節大小的塊;
  • 已用了多少個1024字節大小的塊;
  • 還有多少個1024字節大小的塊可用;
  • 已用空間所佔的比例;
  • 設備掛載到了哪個掛載點上。
  • df命令有一些命令行參數可用,但基本上不會用到。一個常用的參數是-h。它會把輸出中的磁盤空間按照用戶易讀的形式顯示,通常用M來替代兆字節,用G替代吉字節。

使用 du 命令

通過df命令很容易發現哪個磁盤的存儲空間快沒了。系統管理員面臨的下一個問題是,發生這種情況時要怎麼辦

下面是能讓du命令用起來更方便的幾個命令行參數。

  • -c:顯示所有已列出文件總的大小。
  • -h:按用戶易讀的格式輸出大小,即用K替代千字節,用M替代兆字節,用G替代吉字
    節。
  • -s:顯示每個輸出參數的總計。

2.2.4排序數據

處理大量數據時的一個常用命令是sort命令。顧名思義,sort命令是對數據進行排序的。
默認情況下,sort命令按照會話指定的默認語言的排序規則對文本文件中的數據行排序。


其他一些方便的sort參數組合可用

-b --ignore-leading-blanks 排序時忽略起始的空白

-C --check=quiet 不排序,如果數據無序也不要報告

-c --check 不排序,但檢查輸入數據是不是已排序;未排序的話,報告

-d --dictionary-order 僅考慮空白和字母,不考慮特殊字符

-f --ignore-case 默認情況下,會將大寫字母排在前面;這個參數會忽略大小寫

-g --general-number-sort 按通用數值來排序(跟-n不同,把值當浮點數來排序,支持科學計數法表示的值)

-i --ignore-nonprinting 在排序時忽略不可打印字符

-k --key=POS1[,POS2] 排序從POS1位置開始;如果指定了POS2的話,到POS2位置結束
-M --month-sort 用三字符月份名按月份排序

-m --merge 將兩個已排序數據文件合併

-n --numeric-sort 按字符串數值來排序(並不轉換爲浮點數)

-o --output=file 將排序結果寫出到指定的文件中

-R --random-sort 按隨機生成的散列表的鍵值排序

–random-source=FILE 指定-R參數用到的隨機字節的源文件

-r --reverse 反序排序(升序變成降序)

-S --buffer-size=SIZE 指定使用的內存大小

-s --stable 禁用最後重排序比較

-T --temporary-directory=DIR 指定一個位置來存儲臨時工作文件

-t --field-separator=SEP 指定一個用來區分鍵位置的字符

-u --unique 和-c參數一起使用時,檢查嚴格排序;不和-c參數一起用時,僅
輸出第一例相似的兩行

-z --zero-terminated 用NULL字符作爲行尾,而不是用換行符

2.3.5 搜索數據

你會經常需要在大文件中找一行數據,而這行數據又埋藏在文件的中間。這時並不需要手動翻看整個文件,用grep命令來幫助查找就行了。
grep命令的命令行格式如下。
參數:

-a 或 --text : 不要忽略二進制的數據。
-A<顯示行數> 或 --after-context=<顯示行數> : 除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。
-b 或 --byte-offset : 在顯示符合樣式的那一行之前,標示出該行第一個字符的編號。
-B<顯示行數> 或 --before-context=<顯示行數> : 除了顯示符合樣式的那一行之外,並顯示該行之前的內容。
-c 或 --count : 計算符合樣式的列數。
-C<顯示行數> 或 --context=<顯示行數>或-<顯示行數> : 除了顯示符合樣式的那一行之外,並顯示該行之前後的內容。
-d <動作> 或 --directories=<動作> : 當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息並停止動作。
-e<範本樣式> 或 --regexp=<範本樣式> : 指定字符串做爲查找文件內容的樣式。
-E 或 --extended-regexp : 將樣式爲延伸的正則表達式來使用。
-f<規則文件> 或 --file=<規則文件> : 指定規則文件,其內容含有一個或多個規則樣式,讓grep查找符合規則條件的文件內容,格式爲每行一個規則樣式。
-F 或 --fixed-regexp : 將樣式視爲固定字符串的列表。
-G 或 --basic-regexp : 將樣式視爲普通的表示法來使用。
-h 或 --no-filename : 在顯示符合樣式的那一行之前,不標示該行所屬的文件名稱。
-H 或 --with-filename : 在顯示符合樣式的那一行之前,表示該行所屬的文件名稱。
-i 或 --ignore-case : 忽略字符大小寫的差別。
-l 或 --file-with-matches : 列出文件內容符合指定的樣式的文件名稱。
-L 或 --files-without-match : 列出文件內容不符合指定的樣式的文件名稱。
-n 或 --line-number : 在顯示符合樣式的那一行之前,標示出該行的列數編號。
-o 或 --only-matching : 只顯示匹配PATTERN 部分。
-q 或 --quiet或–silent : 不顯示任何信息。
-r 或 --recursive : 此參數的效果和指定"-d recurse"參數相同。
-s 或 --no-messages : 不顯示錯誤信息。
-v 或 --revert-match : 顯示不包含匹配文本的所有行。
-V 或 --version : 顯示版本信息。
-w 或 --word-regexp : 只顯示全字符合的列。
-x --line-regexp : 只顯示全列符合的列。
-y : 此參數的效果和指定"-i"參數相同。

查看歷史操作

  1. 使用history命令

三、在bash shell中,環境變量分爲兩類:

  • 全局變量
  • 局部變量

儘管bash shell使用一致的專有環境變量,但不同的Linux發行版經常會添加其自有的環境變量。

  • 設置用戶定義變量
    一旦啓動了bash shell(或者執行一個shell腳本),就能創建在這個shell進程內可見的局部變量了。

    $ echo $myuser

竅門

在涉及環境變量名時,什麼時候該使用 使, 什麼時候不該使用,實在讓人摸不着頭腦。
記住一點就行了:如果要用到變量,使用$

如果要操作變量,不使用$。這條規則的一個例外就是使用printenv顯示某個變量的值。

四、理解Linux 文件權限

4.2.1 文件概述

Linux安全系統的核心是用戶賬戶。每個能進入Linux系統的用戶都會被分配唯一的用戶賬戶。用戶對系統中各種對象的訪問權限取決於他們登錄系統時用的賬戶。
Linux系統使用一個專門的文件來將用戶的登錄名匹配到對應的UID值。這個文件就是 /etc/passwd文件,它包含了一些與用戶有關的信息。

使用文件權限符那應該知道ls命令可以用來查看Linux系統上的文件、目錄和設備的權限。
$ ls –l
total 68
-rw-rw-r-- 1 rich rich 50 2010-09-13 07:49 file1.gz
-rw-rw-r-- 1 rich rich 23 2010-09-13 07:50 file2
-rw-rw-r-- 1 rich rich 48 2010-09-13 07:56 file3
-rw-rw-r-- 1 rich rich 34 2010-09-13 08:59 file4
-rwxrwxr-x 1 rich rich 4882 2010-09-18 13:58 myprog
-rw-rw-r-- 1 rich rich 237 2010-09-18 13:58 myprog.c
drwxrwxr-x 2 rich rich 4096 2010-09-03 15:12 test1
drwxrwxr-x 2 rich rich 4096 2010-09-03 15:12 test2
輸出結果的第一個字段就是描述文件和目錄權限的編碼。這個字段的第一個字符代表了對象
的類型:

  • -代表文件
  • d代表目錄
  • l代表鏈接
  • c代表字符型設備
  • b代表塊設備
  • n代表網絡設備之後有3組三字符的編碼。每一組定義了3種訪問權限:
  • r代表對象是可讀的
  • w代表對象是可寫的
  • x代表對象是可執行的
    若沒有某種權限,在該權限位會出現單破折線。這3組權限分別對應對象的3個安全級別:
  • 對象的屬主
  • 對象的屬組
  • 系統其他用戶
    這個概念在圖7-1中進行了分解、
    在這裏插入圖片描述
    文件myprog有下面3組權限。
     rwx:文件的屬主(設爲登錄名rich)。
     rwx:文件的屬組(設爲組名rich)。
     r-x:系統上其他人。
    這些權限說明登錄名爲rich的用戶可以讀取、寫入以及執行這個文件(可以看作有全部權限)。
    類似地,rich組的成員也可以讀取、寫入和執行這個文件。然而不屬於rich組的其他用戶只能讀取
    和執行這個文件:w被單破折線取代了,說明這個安全級別沒有寫入權限。

4.2.2 改變安全性設置

如果你已經創建了一個目錄或文件,需要改變它的安全性設置,在Linux系統上有一些工具能夠完成這項任務。本節將告訴你如何更改文件和目錄的已有權限、默認文件屬主以及默認屬組。
修改文件:chown
修改權限:chmod

五、 改變權限:chmod 權限 命令詳細用法

指令名稱 : chmod
使用權限 : 所有使用者
使用方式 : chmod [-cfvR] [–help] [–version] mode file…
說明 : Linux/Unix 的檔案調用權限分爲三級 : 檔案擁有者、羣組、其他。利用 chmod 可以藉以控制檔案如何被他人所調用。
參數 :
mode : 權限設定字串,格式如下 : [ugoa…][[±=][rwxX]…][,…],其中
u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬於同一個羣體(group)者,o 表示其他以外的人,a 表示這三者皆是。

  • 表示增加權限、- 表示取消權限、= 表示唯一設定權限。
    r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該檔案是個子目錄或者該檔案已經被設定過爲可執行。
    -c : 若該檔案權限確實已經更改,才顯示其更改動作
    -f : 若該檔案權限無法被更改也不要顯示錯誤訊息
    -v : 顯示權限變更的詳細資料
    -R : 對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞迴的方式逐個變更)
    –help : 顯示輔助說明
    –version : 顯示版本
    範例 :將檔案 file1.txt 設爲所有人皆可讀取 :
    chmod ugo+r file1.txt
    將檔案 file1.txt 設爲所有人皆可讀取 :
    chmod a+r file1.txt
    將檔案 file1.txt 與 file2.txt 設爲該檔案擁有者,與其所屬同一個羣體者可寫入,但其他以外的人則不可寫入 :
    chmod ug+w,o-w file1.txt file2.txt
    將 ex1.py 設定爲只有該檔案擁有者可以執行 :
    chmod u+x ex1.py
    將目前目錄下的所有檔案與子目錄皆設爲任何人可讀取 :
    chmod -R a+r *
    此外chmod也可以用數字來表示權限如 chmod 777 file
    語法爲:chmod abc file
    其中a,b,c各爲一個數字,分別表示User、Group、及Other的權限。
    r=4,w=2,x=1
    若要rwx屬性則4+2+1=7;
    若要rw-屬性則4+2=6;
    若要r-x屬性則4+1=7。
    範例:
    chmod a=rwx file

    chmod 777 file
    效果相同
    chmod ug=rwx,o=x file

    chmod 771 file
    效果相同
    若用chmod 4755 filename可使此程序具有root的權限.
    指令名稱 : chown
    使用權限 : root

使用方式 : chmod [-cfhvR] [–help] [–version] user[] file…

說明 : Linux/Unix 是多人多工作業系統,所有的檔案皆有擁有者。利用 chown 可以將檔案的擁有者加以改變。一般來說,這個指令只有是由系統管理者(root)所使用,一般使用者沒有權限可以改變別人的檔案擁有者,也沒有權限可以自己的檔案擁有者改設爲別人。只有系統管理者(root)纔有這樣的權限。

把計 :

user : 新的檔案擁有者的使用者 IDgroup : 新的檔案擁有者的使用者羣體(group)-c : 若該檔案擁有者確實已經更改,才顯示其更改動作-f : 若該檔案擁有者無法被更改也不要顯示錯誤訊息-h : 只對於連結(link)進行變更,而非該 link 真正指向的檔案-v : 顯示擁有者變更的詳細資料-R : 對目前目錄下的所有檔案與子目錄進行相同的擁有者變更(即以遞迴的方式逐個變更)–help : 顯示輔助說明–version : 顯示版本

範例 :
將檔案 file1.txt 的擁有者設爲 users 羣體的使用者 jessie :
chown jessie:users file1.txt

將目前目錄下的所有檔案與子目錄的擁有者皆設爲 users 羣體的使用者 lamport :
chmod -R lamport:users *
-rw------- (600) – 只有屬主有讀寫權限。
-rw-r–r-- (644) – 只有屬主有讀寫權限;而屬組用戶和其他用戶只有讀權限。
-rwx------ (700) – 只有屬主有讀、寫、執行權限。
-rwxr-xr-x (755) – 屬主有讀、寫、執行權限;而屬組用戶和其他用戶只有讀、執行權限。
-rwx–x--x (711) – 屬主有讀、寫、執行權限;而屬組用戶和其他用戶只有執行權限。
-rw-rw-rw- (666) – 所有用戶都有文件讀、寫權限。這種做法不可取。
-rwxrwxrwx (777) – 所有用戶都有讀、寫、執行權限。更不可取的做法。
以下是對目錄的兩個普通設定:

drwx------ (700) - 只有屬主可在目錄中讀、寫。
drwxr-xr-x (755) - 所有用戶可讀該目錄,但只有屬主才能改變目錄中的內容。

運行 .sh 文件類型的文件:
用file命令測試一下看是什麼類型的
file xxxx.sh
如果是Bourne-Again shell script 可以sh xxxx.sh 或者chmod +x xxxx.sh 再./xxx.sh
一般 .sh 的直接添加x(可執行屬性) chmod +x xxx.sh 然後./xxx.sh就可以了

 

【轉載註明出處,尊重原創 】

 

【作者水平有限,如有錯誤歡迎指正 .】

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章