1. 程式人生 > >常用的Linux命令

常用的Linux命令

  1. 顯示日期指令date 在這裡插入圖片描述
  2. 顯示日曆指令cal 只有cal的時候,顯示當時日期的日曆 在這裡插入圖片描述

當cal後面帶了一個年份引數,顯示全年的日曆 在這裡插入圖片描述

cal後面有兩個引數,第一個是月份,第二個是年份,那麼顯示那一年那一月的日曆 在這裡插入圖片描述

  1. 簡單好用的計算器bc 在這裡插入圖片描述

bc的除法只顯示整數部分 在這裡插入圖片描述

如果想要除法可以顯示小數部分,那麼需要執行scale=number 在這裡插入圖片描述

  1. 資料同步寫入磁碟sync。這個命令用於把存在記憶體中尚未更新的資料寫入磁碟,所以這個命令在關機和重啟之前執行。 在這裡插入圖片描述

  2. 關機命令shutdown

引數 含義
-t -t 後面加一個數字,表示幾秒之後關機
-k 表示不要真的關機,只是傳送警告訊息
-r 在將系統的服務停掉之後就重新啟動
-h 將系統的服務停掉之後就立即關機
-n 不經過init程式,直接以shutdown的功能來關機
-f 關機並開機之後,強制略過fsck的磁碟檢查
-F 系統重新啟動之後,強制進行fsck的磁碟檢查
-c 取消已經在進行的shutdown內容

shutdown指令一定要加入時間引數!! 馬上關機 指定時間關機 10分鐘後重啟 馬上重啟 重啟併發送字串 並不關機,只是傳送訊息

  1. 改變檔案所屬群組chgrp
引數 含義
-R 如果-R 後面是一個目錄名字,那麼遞迴改變這個目錄裡面的檔案所屬的群組
-v 顯示詳細的處理資訊
-f 不顯示錯誤資訊
-c 當發生改變時輸出除錯資訊

命令格式:chgrp [引數] 群組名 檔名/目錄名 chgrp 這裡有一個問題,在普通使用者模式不能更改檔案許可權到bin群組,必須是超級使用者才有許可權。 改變了檔案的群組之後可以用命令檢視 ls檢視

  1. 改變檔案擁有者chown
引數 含義
-R 如果-R 後面是一個目錄名字,那麼遞迴改變這個目錄裡面的檔案所屬的群組
-v 顯示詳細的處理資訊
-f 不顯示錯誤資訊
-c 當發生改變時輸出除錯資訊

命令格式:chown [引數] 檔案新擁有者的ID:檔案新群組的的ID 檔名/目錄名 chown 只有改變檔案的所屬使用者,不對檔案的群組進行規定。但是改變檔案需要超級使用者許可權。 chown

  1. 增加使用者並且給使用者新增密碼 useradd 命令格式:useradd 使用者名稱 //增加一個使用者必須在超級使用者的許可權下 passwd 使用者名稱 //修改使用者名稱 userdel -r 使用者名稱 //刪除使用者的同時也刪除使用者在系統檔案中的記錄 userdel

  2. 檔案與目錄顯示ls

引數 含義
-a 列出全部的檔案,包括隱藏檔案和.和…兩個檔案常用
-A 列出全部的檔案,包括隱藏檔案但是不包括.和…兩個檔案常用
-d 僅列出目錄本身,而不是列出目錄內的檔案資料常用
-l 長資料序列列出,包含檔案的屬性與許可權等資料常用
-f
-F
-h
-i
-n
-r

ls不帶引數時,直接顯示目錄下的檔案和檔案,藍色的是目錄,白色的是檔案,綠色的是可執行檔案,紅色的是壓縮檔案。 ls

ls 帶a引數的時候,現實目錄下面的所有隱藏檔案,包括.和…兩個目錄 ls -a

ls帶A引數可以顯示隱藏資料夾,但是不包括.和…兩個資料夾。 ls -A

無論在哪個資料夾,ls帶d引數顯示的都是一樣的結果 ls -d

ls帶l引數可以顯示這個目錄下面的檔案的目錄的檔案許可權以及擁有者和所屬群組等資訊,但是不包括隱藏檔案和目錄。 ls -l

但是ls帶l引數和d引數可以顯示當前目錄的詳細資訊 ls -ld 我們解析一下結果的前10個字元 第一個字元

引數 含義
d 目錄
- 檔案
l 連結檔案
b 裝置檔案裡面的可供儲存的介面裝置
c 裝置檔案裡面的序列介面裝置,例如鍵盤和滑鼠

接下來的字元是三個一組,且都是rwx為一組,r表示讀,w表示寫,x表示執行,如果沒有這一個許可權就會顯示- 第一組rwx表示的是檔案擁有者的許可權。 第二組rwx表示檔案所屬的群組的許可權。 第三組rwx表示其他使用者的許可權。

  1. 改變檔案的許可權chmod 許可權改變有兩種方法,分別可以使用數字或者符號來進行許可權的變更。 根據上面的許可權顯示,rwx分別表示三種許可權。那麼如果有這個許可權用1表示,沒有這個許可權用0表示,那麼rwx可以表示成從000到111這8種表示,再把000到111轉換成為二進位制。也就是如果rwx三種許可權都有就是7,如果三種許可權都沒有就是0。 那麼三組rwx的組合就是000到777。根據這種數字方法可以修改檔案的許可權。

舉例子: 初始檔案許可權 ls -l 我們用數字方法修改apple這個檔案的許可權。 chmod 756 apple

第二種方法是用字元的方法改變檔案許可權。 語法格式:chmod [u/g/o/a] [+/-/=] [r/w/x] 檔案/目錄名 u表示檔案擁有者 g表示檔案所屬許可權 o便是其他使用者 a表示所有許可權 +表示加上這一許可權, -表示除去這一許可權 =表示設定為這一許可權 初始檔案許可權: ls -l 我們用字元的方式修改檔案許可權 chmod u=rwx,g-rx,o-rw apple

  1. 檢視目前所在的目錄 pwd

  2. 變換目錄cd 變換目錄有兩種根據絕對路徑和相對路徑。同時還有一些特殊符號。 cd 的特殊符號 cd 的相對路徑和絕對路徑

  3. 建立目錄和刪除目錄 建立目錄mkdir

引數 含義
-m 直接配置檔案和目錄的許可權,不用考慮umask
-p 直接幫你把需要的上層目錄遞迴的建立起來,包含上層目錄

舉例子: mkdir -m 700 apple

mkdir -p /home/rain/pear/what

刪除空目錄是rmdir rmdir

  1. 複製檔案或目錄cp
引數 含義
-a 此選項通常在複製目錄時使用,它保留連結,檔案屬性,並複製目錄下所有內容
-d 複製時保留連結,相當於Windows的快捷方式
-f 覆蓋已存在的同名檔案而不給出提示
-i 當已經存在同名檔案時,給出提示,要求使用者是否覆蓋,如果覆蓋請按Y
-p 除了複製檔案的內容外,還把修改時間和訪問許可權也複製到新檔案中
-r 若給出的原始檔是一個目錄檔案,那麼在複製時遞迴複製子目錄和檔案
-l 不復制檔案,只是生成連結檔案

cp -rp aa bb

16.移動檔案或者目錄或者改名mv 命令語法:mv [原始檔名字1…原始檔名字n] 目標檔名字

引數 含義
-f 強制的意思,在目標文件已經存在的情況下,不再詢問,直接覆蓋
-i 若目標文件已經存在則詢問是否覆蓋
-u 若目標文件已經存在,並且目標文件的更新時間比較新,就進行更新

mv

  1. 取得路徑的檔名basename和路徑名dirname 一般用於shell程式設計 basename

  2. 顯示檔案內容cat

引數 含義
-b 列出行號,僅針對非空白行列出行號
-n 打印出行號,空白行也顯示行號
-v 列出一下看不出來的空白字元
-E 將結尾的斷行符$顯示出來

cat

  1. 從最後一行開始顯示檔案內容tac tac

  2. 顯示文件內容的時候,顯示行號nl

引數 含義
-b a 不論是否為空行,同樣列出行號
-b t 如果有空行,空的那行不顯示行號(預設值)
-n ln 行號在螢幕最左邊顯示
-n rn 行號在欄位最右方顯示,並且不顯示0
-n rz 行號在欄位最右方顯示,並且顯示0補齊行號
-w 規定行號所佔用的位數

nl nl

  1. 一頁一頁顯示檔案內容more
操作 含義
空格 代表向下翻一頁
Enter 代表向下翻一行
/字串 代表在這個顯示內容當中,向下搜尋字串的關鍵字
:f 立刻顯示檔名和目前顯示的行數
q 立刻離開more
b 往回翻頁,只對檔案有效,對管道無效

more

  1. 與more相類似,但是更好用less
操作 含義
空格 代表向下翻一頁
[pagedown] 代表向下翻一頁
[pageup] 代表向上翻一頁
/字串 代表在這個顯示內容當中,向下搜尋字串的關鍵字
?字串 代表在這個顯示內容當中,向上搜尋字串的關鍵字
n 重複前一個搜尋,與/和?有關
N 反向重複前一個搜尋,與/和?有關
q 離開less這個程式

less

  1. 顯示頭幾行head 命令語法:head -n 數字 檔名字 預設是10行 head

  2. 顯示尾幾行tail 命令語法:tail -n 數字 檔名字 預設是10行 tail

  3. 已某種方式讀取檔案內容od

引數 含義
-t a 預設字元來輸出
-t c 用ASCII來顯示
-t d[數字] 代表向上翻一頁
-t d[數字] 利用十進位制來輸出資料,每個整數佔用數字位數
-t d[數字] 利用浮點數來輸出資料,每個整數佔用數字位數
-t o[數字] 利用八進位制來輸出資料,每個整數佔用數字位數
-t x[數字] 利用十六進位制來輸出資料,每個整數佔用數字位數

od -t c

od -t oCc od -t d2

  1. 顯示inode內容stat命令 stat以文字格式來顯示inode內容

stst aa.txt

  • 科普Linux裡面的檔案有三個時間:atime(access time 訪問時間),ctime(change time 狀態修改時間),mtime(modify time 修改時間)。
  • atime(access time)顯示的是檔案中的資料最後被訪問的時間。比如系統的程序直接使用或者通過命令間接使用(執行一些可以執行的檔案或指令碼)。
  • mtime(modify time)顯示的是檔案內容被修改的最後時間,比如用vi編輯時就會改變。
  • ctime(change time)顯示的是檔案的許可權,擁有者,所屬的組連結數發生改變的時間
  1. 修改文件時間或者建立文件touch
引數 含義
-a 僅修訂access time
-c 假如目的檔案不存在,不會建立新的檔案。與 --no-create 的效果一樣。
-d 可以規定修訂檔案的時間而不用當前的時間,也可以使用 --date=時間
-m 僅修改mtime
-t 後面接想要修改的日期而不用當前的日期,格式為[YYMMDDhhmm]

舉例子: touch

加上-a引數之後發現最近訪問時間(access time)改變了,但是最近更改時間(modify time)沒有改變 touch -a aa.txt

關於-c引數 touch -c

  1. 檔案預設許可權umask umask可以用來設定許可權掩碼,許可權掩碼由3個八進位制的數字所組成。 對於檔案,將666減去許可權掩碼就是建立檔案時的預設許可權。 對於目錄,將777減去許可權掩碼就是建立檔案時的預設許可權。 umask

  2. 配置文件隱藏屬性chattr 這個命令可以改變存放在ext2檔案系統上的檔案或目錄屬性,這種屬性共有以下8種模式

模式 含義
a 讓檔案或目錄僅供附加用途,也就是這個文件或者目錄只可以增加,不能刪除或者修改
b 不更新檔案或目錄的最後存取時間
c 將檔案或目錄壓縮之後存放
d 將檔案或目錄排除在傾倒操作之外
i 不得任意更動檔案或目錄
s 保密性刪除檔案或目錄
S 即時更新檔案或目錄
u 預防意外刪除

命令語法:chattr [-RV] [-v<版本編號>] [+/-/=屬性] [檔名/目錄名] chattr +i

  1. 顯示文件和目錄的隱藏屬性lsattr
引數 含義
-a 將隱藏的檔案屬性也顯示出來
-d 如果接的是目錄,僅列出目錄本身,不包括目錄內的檔案
-R 連同子目錄的資料一起顯示

lsattr

  1. 觀察檔案型別file
引數 含義
-b 列出辨識結果時,不顯示檔名稱。
-c 詳細顯示指令執行過程,便於排錯或分析程式執行的情形
-f<名稱檔案> 指定名稱檔案,其內容有一個或多個檔名稱時,讓file依序辨識這些檔案,格式為每列一個檔名稱。
-L 直接顯示符號連線所指向的檔案的類別。
-z 嘗試去解讀壓縮檔案的內容。
-v 顯示版本資訊。

file

  1. 查詢檔案which which指令會在環境變數$PATH設定的目錄裡查詢符合條件的檔案
引數 含義
-n<檔名長度> 指定檔名長度,指定的長度必須大於等於所有檔案中最長的檔名
-p<檔名長度> 與-n引數相同,但這裡的檔名包括檔案的路徑
-w 指定輸出時欄位的寬度
-V 顯示版本資訊

which

  1. 尋找特定文件whereis 該指令會在特定目錄中查詢符合條件的檔案。這些檔案應該屬於原始程式碼,二進位制檔案或者幫助檔案。
引數 含義
-b 只查詢二進位制檔案
-B<目錄> 只在設定的目錄下查詢二進位制檔案
-f 不顯示檔名前的路徑名稱
-m 只查詢說明檔案
-M<目錄> 只在設定的目錄下查詢說明檔案
-s 只查詢原始程式碼檔案
-S<目錄> 只在特定的目錄下查詢原始程式碼檔案
-u 查詢不包含指定型別的檔案

whereis

  1. 尋找特定案locate locate命令用於查詢符合條件的文件。他會去儲存文件和目錄名稱的資料庫內,查詢合乎樣本正規化條件的文件或者目錄。 命令語法:locate 檔名字 locate

  2. 尋找特定的檔案find Linux的find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為想查詢的目錄名。如果使用命令時不加任何引數,那麼find命令會在當前目錄和子目錄下查詢。 find根據下面規則判斷 路徑 和 命令 ,在命令列表中,第一個-之前的是路徑,之後的是命令,如果路徑是空,則預設為當前目錄

命令 含義
-mount 只檢查和指定目錄在同一檔案系統中的檔案,避免列出在其他檔案系統的檔案
-xdev 只檢查和指定目錄在同一檔案系統中的檔案,避免列出在其他檔案系統的檔案
-amin n 在過去的n分鐘內被讀取過
-anewer file 比檔案file更晚被讀取的檔案
-atime n 在過去n天內被讀取過的檔案
-cmin n 在過去n分鐘內被修改過的檔案
-cnewer file 比檔案file更新的檔案
-ctime n 在過去n天內被修改過的檔案
-empty 空的檔案
-ipath p 忽略大小寫,路徑名稱符合p的檔案
-path p 不忽略大小寫,路徑名稱符合p的檔案
-name name 檔名稱符合name的檔案
-iname name 忽略大小寫,檔名稱符合name的檔案
-size 檔案大小是n單位,b代表512位元組的區塊,c代表字元數,
c 位元組裝置檔案
f 一般檔案
d 目錄
b 區塊裝置檔案
p 具名貯列
s socket

find

  1. 壓縮檔案gzip和讀取壓縮檔案zcat
引數 含義
-l 列出壓縮檔案的相關資訊
-q 不顯示警告資訊
-r 遞迴處理,將指定目錄下的所有檔案及子目錄一併處理
-f 強行壓縮檔案
-d 解開壓縮檔案
-c 把壓縮後的檔案輸出到標準輸出去,不更改原始檔案
-v 顯示執行結果

gzip gzip -v gzip -d zcat是檢視壓縮檔案,並不是解壓縮 zcat

  1. 壓縮檔案bzip2和讀取壓縮檔案bzcat
引數 含義
-c 將壓縮與解壓縮的檔案輸出到標準輸出
-d 解壓
-f 解壓出來的時候,如果有同名檔案,不會覆蓋,必須使用這個引數才會覆蓋
-k bzip2壓縮和解壓之後原來的檔案會被刪除,如果想要保留原有檔案,就要用這個引數
-z 強制執行壓縮
-v 顯示壓縮的詳細資訊

bzip

檢視壓縮檔案的內容 bzcat

  1. 壓縮檔案和讀取壓縮檔案tar
引數 含義
-v 顯示指令執行過程
-f 指定備份檔案
-z 通過gzip指令處理檔案
-c 建立新的備份檔案
-t 列出備份檔案的內容
-x 從備份檔案中還原內容

壓縮的命令:tar -czvf 壓縮後文件名 [想要壓縮的檔案列表] czvf xzvf