當前位置:首頁 » 操作系統 » 支持的命令linux

支持的命令linux

發布時間: 2022-12-21 23:20:32

A. linux常用命令有哪些

Linux常用命令大全100條:
1,echo 「aa」 》 test.txt 和 echo 「bb」 》》 test.txt
//》將原文件清空,並且內容寫入到文件中,》》將內容放到文件的尾部
2,chmod go+w -R /home/zhangy //給組用戶和其他用戶添加寫的許可權
3,tar -tzvf test.tar.gz //列出歸檔內容
4, -ah //查看文件列表大小
5, -sh //查看所有文件的大小總和
6,echo 『1+2』|bc -l //數學運算
7,uname -a //查看linux內核等的一些信息
8,badblocks -s /dev/sda //壞道掃描時顯示進度
9,time command //查看命令的運行時間
10,ls -lrt //按時間的倒序排序
11,rsync -P //同步時顯示進度
12.history -c //清楚歷史命令
13,cd - //返回上次目錄
14,tree //顯示目錄樹
15,umount -n /mnt/hda2 //強制卸載
16,echo ~/ //顯示用戶的home目錄
17,echo $[5*5] //算術運算
18,echo $((5*5)) //算術運算
19,eval ls;ps aux|grep httpd //這二個命令都能執行
20,free -m //有MB為單位顯示內存
21,uptime
//顯示系統已經運行了多長時間,它依次顯示下列信息:現在時間、系統已經運行了多長時間、目前有多少登陸用戶、系統在過去的1分鍾、5分鍾和15分鍾內的平均負載
22,加法運算
[root@krlcgcms01 mytest]# let a=34+3;
[root@krlcgcms01 mytest]# echo $a;
23,export //查看所有環境變數
24,echo $PATH //查看單個變數
25,cmp file1 file2 //文件內容比對
26,clear //清屏
27,echo 23423 |awk --re-interval 『/[0-9]{3,}/』 //如果不加re-interval的話,不顯示
28,cal //得到一個整齊的日歷格式
29,wc -l //統計行數,wc -w 統計單詞
30,echo 「AaDCbd23」 |tr 「[A-Z]」 「[a-z]」 大寫變小寫,echo 「AaDCbdc23」 |tr -c b-d =
將b-d之外的字元串替換成=
31,echo 「ADSF」 | iconv -f UTF8 -t GBK //把字元由utf8轉成gbk
-f是from和簡寫,-t好像terminal的簡寫
32,cat -n file //內容的前面會顯示行號
33,chattr +i file //只讀,root用戶也沒法對其進行修改
34,lsattr file //查看文件屬性
35,cat /etc/passwd |awk -F: 『{print $1}』 //查看系統中所有用戶
36,cat /etc/group //查看系統中所有的組
37,groups //查前當前用戶所在的,所有組
38,usermod -g 組名 用戶 //這種方式是覆蓋的方式,用的時候要小心,如果用戶A性於mysql usermod -g php
mysql這樣的話只屬於php了
39,usermod -G 組名 用戶 //這種方式是增加的方式,如果用戶A性於mysql usermod -g php
mysql這樣的話,mysql就屬於2個組了
40,bc //進入數學計算中去
41,umask 003 u許可權是7,g許可權是7,其他用戶是4,也就是774,777-003=774
42,mkfs -t vfat /dev/hda6 //將移動硬碟裡面的一個分區格式化成vfat格式
43,mount /dev/cdrom /media/cdrom //掛載cdrom
44,getent group 532 //通過組ID,來查找組信息
45,last //登錄成功用戶記錄
46,lastb //登錄不成功用戶記錄
47,mp -S /dev/sda2 //查看一下要備份/dev/sda2所要的容量
48,mp -0j -f /dev/hda2/sda2_bak.mp.bz2 /dev/sda2 //將sda2進行備份並壓縮
49,restore -t -f /dev/hda2/sda2_bak.mp //查看備份信息
50,restore -r -f /dev/hda2/sda2_bak.mp //還原備份
51,fc-list //查看系統中安裝的字體
52,find 。/ -type f -exec grep -q 「root」 {} ; -exec echo {} ;
//查找目錄下文件所包涵的字元串
53,vmstat 5 //每5顯示一下次系統信息,cpu,memory,i/o等
54,top 後 在shift + P 所佔進程的排序顯示
55,top 後 在shift + M 所佔內存的排序顯示
56,iptraf -g //查看各個介面的流量
57,ostat -d -x /dev/sda2 2 //用iostat查看磁碟/dev/sda2的磁碟i/o情況,每兩秒刷新一次
58, paste -sd 『|||n』 test //文件的每4行轉換成1行,並用|隔開
59,lsof -i :22 //知道22埠現在運行什麼程序
60,lsof -c abc //顯示abc進程現在打開的文件
61,lsof -p 12 //看進程號為12的進程打開了哪些文件
63,route //查看路由信息
64,ifup //開啟網卡
65,ifdown //關閉網卡
66,route del -net 172.168.0.0 netmask 255.255.0.0 dev eth0 //刪除
172.168這個網段
67,route add -net 172.168.10.0 netmask 255.255.255.0 dev eth0 //增加一個路由
68,netstat -tunl //列出監聽的網路服務埠
69,netstat -tun //列出已連接的網路服務埠
70,nmap -sP 172.30.4.0/24 //在這個網段內有多少用戶在我的主機上操作,一個不錯的安全檢查工具
71,vgdisplay //查看系統中的可用空間
72,lvextend -L+20G /dev/tank/part1 //向part1這個分區增加20G的空間
73,lvresize -L-10G /dev/tank/part2 //向part2這個分區減少10G的空間
74,pvdisplay //查看磁碟信息
75,mplayer -loop 10 /mnt/song/music/花兒開了.mp3 //循環播放10遍
76,pacman -S firefox -nd //nd去掉依賴
77,wget -c //斷點下載
78,chroot /mnt/ubuntu //改變根目錄到/mnt/ubuntu
79,ctrl+a //命令行下,游標稱動到開頭
80,ctrl+e //命令行下,游標移動結尾
81,cut -d: -f 1-4 test //用:分割文件,取分割後的1-4列
82,file /home/zhangy/test.php //用於查看文件的一些基本信息
83,touch test.txt //創建一個空文件 text.txt
84,htpasswd -cbd /usr/local/nginx/conf/authfile //創建訪問控制文件
85,df //查看磁碟空間,和當前的磁碟數
86,fdisk -l //查看所有磁碟數
87,alsamixer //進入後,m鍵可以實現靜音
88,killall httpd //把所有httpd進程殺掉
89,killall -9 mysqld_safe //有些進程超級用戶也停止不了,-9是強制刪除
90,mirror /mysql //下載mysql目錄
91,mirror -R /mysql //上傳mysql目錄
92,rmmod pcspkr //關掉tab提示音
93,modprobe pcspkr //開啟tab提示音
94,gpasswd -a zhangy wheel //將zhangy這個用戶添加到wheel這個組
95,dd if=/dev/zero of=/virtual/ubuntu.virt.img bs=1M count=4096
//創建一個4G的IMG鏡像
96,lspic //顯示pci設備
97,lsusb //顯示usb設備
98,history | less //less根more有點像,感覺less用著更舒服點
99,ln -s //如果忘了-s就變成硬鏈接了
100,tar zxvf test.tar.gz -C /home/zhangy //將內容解壓到指定目錄

B. Linux常用命令

就是list的縮寫,通過ls 命令不僅可以查看linux文件夾包含的文件,而且可以查看文件許可權(包括目錄、文件夾、文件許可權)看目錄信息等等

常用參數搭配:

實例:

(changeDirectory),命令語法:cd [目錄名]。說明:切換當前目錄至dirName
實例:

查看當前工作目錄路徑
實例:

創建文件夾
實例:

刪除一個目錄中的一個或多個文件或目錄,如果沒有使用- r選項,則rm不會刪除目錄。如果使用rm 來刪除文件,通常仍可以將該文件恢復原狀
rm [選項] 文件…

常用參數搭配:

實例:

刪除空目錄,一個目錄被刪除之前必須是空的。(注意,rm -r dir 命令可以代替rmdir,但是很危險,萬一它突然就不是空的咧?),另外刪除某目錄時必須具有對父目錄的寫許可權。

實例:
rmdir -p watch/avi刪掉avi目錄,watch目錄就空掉了,那還看什麼?所以乾脆把watch目錄一起刪掉,眼不見為不凈嘛。

mv命令是move的縮寫,可以用來移動文件或者將文件改名,是Linux系統下常用的命令,經常用來備份文件或者目錄。

命令功能:
視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。

命令參數:

實例:

將源文件復制至目標文件,或將多個源文件復制至目標目錄。
注意:命令行復制,如果目標文件已經存在會提示是否覆蓋,而在shell腳本中,如果不加-i參數,則不會提示,而是直接覆蓋!

命令參數:

實例:

cat主要有三大功能:

命令參數:

實例:

功能類似於cat, more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示

命令參數:

常用操作命令:

實例:

less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,而且 less 在查看之前不會載入整個文件。

命令參數:

實例:

head 用來顯示檔案的開頭至標准輸出中,默認head命令列印其相應文件的開頭10行。

常用參數:

實例:

從指定點開始將文件寫到標准輸出。使用tail命令的-f選項可以方便的查閱正在改變的日誌文件,tail -f filename會把filename里最尾部的內容顯示在屏幕上,並且不斷刷新,使你看到最新的文件內容。

常用參數:

實例:

用於改變linux系統文件或目錄的訪問許可權。該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
每一文件或目錄的訪問許可權都有三組,每組用三位表示,分別為文件屬主的讀、寫和執行許可權;與屬主同組的用戶的讀、寫和執行許可權;系統中其他用戶的讀、寫和執行許可權。可使用ls -l test.txt查找。
以文件log2012.log為例:
-rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log
第一列共有10個位置,第一個字元指定了文件類型。在通常意義上,一個目錄也是一個文件。如果第一個字元是橫線,表示是一個非目錄的文件。如果是d,表示是一個目錄。從第二個字元開始到第十個共9個字元,3個字元一組,分別表示了3組用戶對文件或者目錄的許可權。許可權字元用橫線代表空許可,r代表只讀,w代表寫,x代表可執行。

常用參數:

許可權范圍:

許可權代號:

實例:

tar命令是類Linux中比價常用的解壓與壓縮命令。

常用參數:
-c: 建立壓縮檔案
-x:解壓
-t:查看內容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件

這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。

下面的參數-f是必須的

常見解壓/壓縮命令

chown將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或者用戶ID;組可以是組名或者組ID;文件是以空格分開的要改變許可權的文件列表,支持通配符。

常用參數:

實例:

顯示磁碟空間使用情況。獲取硬碟被佔用了多少空間,目前還剩下多少空間等信息,如果沒有文件名被指定,則所有當前被掛載的文件系統的可用空間將被顯示。默認情況下,磁碟空間將以 1KB 為單位進行顯示,除非環境變數 POSIXLY_CORRECT 被指定,那樣將以512位元組為單位進行顯示。

常用參數:

實例:

命令也是查看使用空間的,但是與df命令不同的是,能看到的文件只是一些當前存在的,沒有被刪除的,他計算的大小就是當前他認為存在的所有文件大小的累加和。命令是對文件和目錄磁碟使用的空間的查看。

常用參數:

實例:

ln命令用於將一個文件創建鏈接,鏈接分為軟鏈接和硬鏈接,命令默認使用硬鏈接。當在不同目錄需要該文件時,就不需要為每一個目錄創建同樣的文件,通過ln創建的鏈接(link)減少磁碟佔用量。

軟鏈接:

硬鏈接:

需要注意:

常用參數:

實例:

顯示或設定系統的日期與時間

命令參數:

實例:

可以用戶顯示公歷(陽歷)日歷,如只有一個參數,則表示年份(1-9999),如有兩個參數,則表示月份和年份。

常用參數:

實例:

強大的文本搜索命令,grep(Global Regular Expression Print)全局正則表達式搜索。
grep的工作方式是這樣的,它在一個或多個文件中搜索字元串模板。如果模板包括空格,則必須被引用,模板後的所有字元串被看作文件名。搜索的結果被送到標准輸出,不影響原文件內容。

命令格式:
grep [option] pattern file|dir

常用參數:

實例:

wc(word count)功能為統計指定的文件中位元組數、字數、行數,並將統計結果輸出。

命令格式:
wc [option] file..

命令參數:

實例:

ps(process status),用來查看當前運行的進程狀態,一次性查看,如果需要動態連續結果使用top。

linux上進程有5種狀態:

ps工具標識進程的5種狀態碼:

命令參數:

實例:

顯示當前系統正在執行的進程的相關信息,包括進程ID、內存佔用率、CPU佔用率等。

常用參數:

發送指定的信號到相應進程。不指定型號將發送SIGTERM(15)終止指定進程。如果無法終止該程序可用「-KILL」 參數,其發送的信號為SIGKILL(9) ,將強制結束進程,使用ps命令或者jobs 命令可以查看進程號。root用戶將影響用戶的進程,非root用戶只能影響自己的進程。

常用參數:

實例:

顯示系統內存使用情況,包括物理內存、交互區內存(swap)和內核緩沖區內存。

命令參數:

實例:

Netstat 是一款命令行工具,可用於列出系統上所有的網路套接字連接情況,包括 tcp, udp 以及 unix 套接字,另外它還能列出處於監聽狀態(即等待接入請求)的套接字。如果你想確認系統上的 Web 服務有沒有起來,你可以查看80埠有沒有打開。以上功能使 netstat 成為網管和系統管理員的必備利器。

命令參數:

實例

C. Linux常用命令詳解 | find

find 命令的基本結構如下:

find 命令手冊 : man find

find 命令中的 -name 選項可以根據文件名稱進行檢索( 區分大小寫 )。如需要忽略文件名中的大小寫,可以使用 -iname 選項。

-name 和 -iname 兩個選項都支持 wildcards 。如:

例1:查找 /usr 目錄下所有文件名以 .txt 結尾的文件

例2:查找 /usr 目錄下所有文件名剛好為 4 個字元的文件

例3:查以大寫字母開頭的文件

例4:查以兩個小寫字母和兩個數字開頭的txt文件

類似的還有:
-lname -ilname
-path -ipath
-regx -iregx

有些時候,你需要在搜索時匹配某個文件或目錄的 完整路徑 ,而不僅僅是匹配文件名。可以使用 -path 或 -ipath 選項。

例1:如查找 /usr 下所有文件名以 .txt 結尾的文件或目錄,且該文件的父目錄必須是 src 。可以使用以下命令:

例2:在當前目錄除aa之外的子目錄內搜索 txt文件

例3:在當前目錄,不再子目錄中,查找txt文件

如果只想搜索得到文件 目錄,即不想它們同時出現在結果中。可以使用 -type 選項指定文件類型。

-type 選項最常用的參數如下:

例:檢索 /usr 下所有文件名以 python 開頭的目錄

find 命令支持 -empty 選項用來檢索 為空 的文件或目錄。空文件即文件里沒有任何內容,空目錄即目錄中沒有任何文件或子目錄。

例:檢索用戶主目錄下所有的空目錄

find 命令也允許用戶對當前的匹配條件進行 「反義」 (類似於 邏輯非 操作)。

如需要檢索 /usr 下所有文件名 以 .txt 為後綴的文件。可以使用以下命令:

也可以「翻轉」任何其他的篩選條件,如:檢索 /usr 下所有內容不為空的文件

為了檢索歸屬於特定用戶的文件或目錄,可以使用 -user 選項。
例:檢索根目錄下所有屬主為 starky 的文件

類似於 -user 選項, -group 選項則可以根據文件或目錄的 屬組 進行檢索。

有些時候,需要根據文件創建或修改的時間進行檢索。

Linux 系統中,與文件相關聯的時間參數有以下三種:

與此對應的是 find 命令中的 -mtime , -atime 和 -ctime 三個選項。

這三個選項的使用遵循以下示例中的規則:

檢索 /usr 下兩天前被修改過的文件

如果覺得 -mtime 等選項以 為單位時間有點長,還可以使用 -mmin , -amin , -cmin 三個選項。

查找比 aa.txt 的文件

查找比 aa.txt 的文件

查找比aa.txt新,比bb.txt舊的文件

-size 選項允許用戶通過文件大小進行搜索(只適用於文件,目錄沒有大小……)。

表示文件大小的單位由以下字元組成:

另外,還可以使用 + 或 - 符號表示 大於 小於 當前條件。

檢索文件大小高於 1 GB 的文件

find 命令可以使用 -perm 選項以文件許可權為依據進行搜索。

9.1使用符號形式

例1:如需要檢索 /usr 目錄下許可權為 rwxr-xr-x 的文件,可以使用以下命令:

例2:搜索 /usr 目錄下所有許可權為 r-xr-xr-x (即系統中的所有用戶都只有讀寫許可權)的文件和目錄,可以使用以下命令:

很多時候,我們只想匹配文件許可權的一個 子集 。比如,檢索可以直接被任何用戶執行的文件,即只關心文件的執行許可權,而不用管其讀寫許可權是什麼。

上述的需求可以通過以下命令實現:

其中 a=x 前面的 / 符號即用來表示只匹配許可權的某個子集(執行許可權),而不用關心其他許可權的具體設置。

9.2使用數字形式
例如:搜索 /usr 目錄下許可權為 644 (即 rwxr-xr-x )的文件

find 命令默認是以 遞歸 的方式檢索項目的,這有時候會導致得到的結果數量非常巨大。可以使用 -maxdepth 限制 find 命令遞歸的層數。

例如:搜索時向下遞歸的層數最大為 3

在之前的例子中有出現多個搜索條件的 組合 以及對某個搜索條件的 反轉
實際上 find 命令支持 「and」 「or」 兩種邏輯運算,對應的命令選項分別是 -a 和 -o 。通過這兩個選項可以對搜索條件進行更復雜的組合。

此外還可以使用 小括弧 對搜索條件進行 分組 。注意 find 命令中的小括弧常需要用 單引號 包裹起來。因小括弧在 Shell 中有特殊的含義。

如檢索 /usr 下文件名以 python 開頭且類型為目錄的文件

該命令等同於:

更復雜的組合形式如:

例4:在除dir0及子目錄以外的目錄下查找txt後綴文件

說明:-a 應該是and的縮寫,意思是邏輯運算符『與』(&&); -o應該是or的縮寫,意思是邏輯運算符『或』(||), -not 表示非.

命令行的意思是:如果目錄dir0存在(即-a左邊為真),則求-prune的值,-prune 返回真,『與』邏輯表達式為真(即-path './dir0*' -a -prune 為真),find命令將在除這個目錄以外的目錄下查找txt後綴文件並列印出來;如果目錄dir0不存在(即-a左邊為假),則不求值-prune ,『與』邏輯表達式為假,則在當前目錄下查找所有txt後綴文件。

-delete 選項可以用來刪除搜索到的文件和目錄。

例如:刪除 home 目錄下所有的空目錄:

-exec 選項可以對搜索到的結果執行執行該參數所給出的shell命令。形式為 command {} ; ,注意{}與;之間有空格 。每當 find 命令檢索到一個符合條件的文件,會使用其完整路徑取代命令中的 {} ,然後執行 -exec 後面的命令一次。

例1:如需要將 home 目錄下所有的 MP3 音頻文件復制到移動存儲設備(假設路徑是 /media/MyDrive ),可使用下面的命令:

其中的 大括弧 ( {} )作為檢索到的文件的 佔位符 ,而分號( ; )作為命令結束的標志。因為分號是 Shell 中有特殊含義的符號,所以需要使用單引號括起來或前面加上轉義符 。

例2:查看當前目錄下的所有普通文件,並在 - exec 選項中使用 ls -l 命令將它們列出

例3:在多個文件中檢索某個指定的字元串。如在用戶主目錄下的所有文件中檢索字元串 hello ,可以使用如下命令:

創建 Gzip 格式的壓縮文件的命令為:

現在假設需要將用戶主目錄下所有的 MP3 文件添加到壓縮包 music.tar.gz 中,直觀的感覺是,其命令應為如下形式:

實際情況是,這樣得到的 music.tar.gz 其實只包含一個 MP3 文件。原因是 find 命令 每次 發現一個音頻文件,都會再執行一次 -exec 選項後面的壓縮命令。導致先前生成的壓縮包被覆蓋。

可以先讓 find 命令檢索出所有符合條件的音頻文件,再將得到的 文件列表 傳遞給後面的壓縮命令。完整的命令如下:

如果想瀏覽搜索到的文件(目錄)的詳細信息(如許可權和大小等),可以直接使用 -ls 選項。

例如:瀏覽所有 1G 以上大小的文件的詳細信息

與exec作用相同,區別在於,在執行命令之前,都會給出提示,讓用戶確認是否執行

與 exec 作用相同 ,起承接作用。區別在於 |xargs 主要用於承接刪除操作 ,而 -exec 都可用 如復制、移動、重命名等

例1:查找以ap或may開頭的文件

例2:查硬連接數大於2的文件或目錄

例3:查找含特定字元串的文件。查找當前目錄下含有"the string you want find…"字元串的文件:

例4:從根目錄開始查tmpfile,一旦查到馬上刪除

例5:如何用find查找某一天更改的文件?可以使用這一行命令來實現:

A Guide to the Linux 「Find」 Command
https://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html
https://blog.csdn.net/l_liangkk/article/details/81294260
https://blog.csdn.net/hetoto/article/details/84101745
http://c.biancheng.net/view/779.html
http://blog.chinaunix.net/uid-24648486-id-2998767

https://www.runoob.com/linux/linux-comm-find.html

https://www.jb51.net/article/147275.htm

D. 關於Linux操作系統的一些命令是什麼

Linux系統中的命令實在是太多了,簡單包括兩類命令,一類是內部命令,指的是Shell自身提供的功能,一類是外部命令,指的是第三方的控制台應用程序。

一般來說,沒必要完全學習所有的命令,大體上有個印象,用到的時候去查一下幫助文檔,久而久之,自然熟練。

下面是網友整理的20個最常用的Linux命令:

1. ls命令
ls命令是列出目錄內容(List Directory Contents)的意思。運行它就是列出文件夾里的內容,可能是文件也可能是文件夾。

2. lsblk命令
"lsblk"就是列出塊設備。除了RAM外,以標準的樹狀輸出格式,整齊地顯示塊設備。

3. md5sum命令
「md5sum」就是計算和檢驗MD5信息簽名。md5 checksum(通常叫做哈希)使用匹配或者驗證文件的文件的完整性,因為文件可能因為傳輸錯誤,磁碟錯誤或者無惡意的干擾等原因而發生改變。

4. dd命令
「dd」命令代表了轉換和復制文件。可以用來轉換和復制文件,大多數時間是用來復制iso文件(或任何其它文件)到一個usb設備(或任何其它地方)中去,所以可以用來製作USB啟動器。

6. history命令
「history」命令就是歷史記錄。它顯示了在終端中所執行過的所有命令的歷史。

7. sudo命令
「sudo」(super user do)命令允許授權用戶執行超級用戶或者其它用戶的命令。通過在sudoers列表的安全策略來指定。

8. mkdir命令
「mkdir」(Make directory)命令在命名路徑下創建新的目錄。然而如果目錄已經存在了,那麼它就會返回一個錯誤信息"不能創建文件夾,文件夾已經存在了"("cannot create folder, folder already exists")

9. touch 命令
「touch」命令代表了將文件的訪問和修改時間更新為當前時間。touch命令只會在文件不存在的時候才會創建它。如果文件已經存在了,它會更新時間戳,但是並不會改變文件的內容。

10. chmod 命令
「chmod」命令就是改變文件的模式位。chmod會根據要求的模式來改變每個所給的文件,文件夾,腳本等等的文件模式(許可權)。

11. chown命令
「chown」命令就是改變文件擁有者和所在用戶組。每個文件都屬於一個用戶組和一個用戶。在你的目錄下,使用"ls -l",你就會看到像這樣的東西。

12. apt命令
Debian系列以「apt」命令為基礎,「apt」代表了Advanced Package Tool。APT是一個為Debian系列系統(Ubuntu,Kubuntu等等)開發的高級包管理器,在Gnu/Linux系統上,它會為包自動地,智能地搜索,安裝,升級以及解決依賴。

13. tar命令
「tar」命令是磁帶歸檔(Tape Archive),對創建一些文件的的歸檔和它們的解壓很有用。

14. cal 命令
「cal」(Calender),它用來顯示當前月份或者未來或者過去任何年份中的月份。
16. cat命令
「cat」代表了連結(Concatenation),連接兩個或者更多文本文件或者以標准輸出形式列印文件的內容。

17. cp 命令
「」就是復制。它會從一個地方復制一個文件到另外一個地方。

18. mv 命令
「mv」命令將一個地方的文件移動到另外一個地方去。

19. pwd 命令
「pwd」(print working directory),在終端中顯示當前工作目錄的全路徑。

20. cd 命令
最後,經常使用的「cd」命令代表了改變目錄。它在終端中改變工作目錄來執行,復制,移動,讀,寫等等操作。

E. 常用的linux命令

1、cd命令
這是一個非常基本,也是大家經常需要使用的命令,它用於切換當前目錄,它的參數是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。如:
cd
/root/Docements # 切換到目錄/root/Docements
cd ./path #
切換到當前目錄下的path目錄中,「.」表示當前目錄
cd ../path #
切換到上層目錄中的path目錄中,「..」表示上一層目錄
2、ls命令
這是一個非常有用的查看文件與目錄的命令,list之意,它的參數非常多,下面就列出一些我常用的參數吧,如下:
-l
:列出長數據串,包含文件的屬性與許可權數據等
-a
:列出全部的文件,連同隱藏文件(開頭為.的文件)一起列出來(常用)
-d
:僅列出目錄本身,而不是列出目錄的文件數據
-h
:將文件容量以較易讀的方式(GB,kB等)列出來
-R
:連同子目錄的內容一起列出(遞歸列出),等於該目錄下的所有文件都會顯示出來
註:這些參數也可以組合使用,下面舉兩個例子:
ls -l
#以長數據串的形式列出當前目錄下的數據文件和目錄
ls -lR
#以長數據串的形式列出當前目錄下的所有文件
3、grep命令
該命令常用於分析一行的信息,若當中有我們所需要的信息,就將該行顯示出來,該命令通常與管道命令一起使用,用於對一些命令的輸出進行篩選加工等等,它的簡單語法為
grep [-acinv]
[--color=auto] '查找字元串' filename
它的常用參數如下:
-a
:將binary文件以text文件的方式查找數據
-c
:計算找到『查找字元串』的次數
-i
:忽略大小寫的區別,即把大小寫視為相同
-v
:反向選擇,即顯示出沒有『查找字元串』內容的那一行
# 例如:
#
取出文件/etc/man.config中包含MANPATH的行,並把找到的關鍵字加上顏色
grep --color=auto
'MANPATH' /etc/man.config
# 把ls
-l的輸出中包含字母file(不區分大小寫)的內容輸出
ls -l | grep -i
file
4、find命令
find是一個基於查找的功能非常強大的命令,相對而言,它的使用也相對較為復雜,參數也比較多,所以在這里將給把它們分類列出,它的基本語法如下:
find [PATH]
[option] [action]
# 與時間有關的參數:
-mtime n :
n為數字,意思為在n天之前的「一天內」被更改過的文件;
-mtime +n :
列出在n天之前(不含n天本身)被更改過的文件名;
-mtime -n :
列出在n天之內(含n天本身)被更改過的文件名;
-newer file :
列出比file還要新的文件名
# 例如:
find /root -mtime
0 # 在當前目錄下查找今天之內有改動的文件
# 與用戶或用戶組名有關的參數:
-user name :
列出文件所有者為name的文件
-group name :
列出文件所屬用戶組為name的文件
-uid n :
列出文件所有者為用戶ID為n的文件
-gid n :
列出文件所屬用戶組為用戶組ID為n的文件
# 例如:
find
/home/ljianhui -user ljianhui # 在目錄/home/ljianhui中找出所有者為ljianhui的文件
# 與文件許可權及名稱有關的參數:
-name filename
:找出文件名為filename的文件
-size [+-]SIZE
:找出比SIZE還要大(+)或小(-)的文件
-tpye TYPE
:查找文件的類型為TYPE的文件,TYPE的值主要有:一般文件(f)、設備文件(b、c)、
目錄(d)、連接文件(l)、socket(s)、FIFO管道文件(p);
-perm mode
:查找文件許可權剛好等於mode的文件,mode用數字表示,如0755;
-perm -mode
:查找文件許可權必須要全部包括mode許可權的文件,mode用數字表示
-perm +mode
:查找文件許可權包含任一mode的許可權的文件,mode用數字表示
# 例如:
find / -name
passwd # 查找文件名為passwd的文件
find . -perm 0755
# 查找當前目錄中文件許可權的0755的文件
find . -size +12k
# 查找當前目錄中大於12KB的文件,注意c表示byte
5、cp命令
該命令用於復制文件,之意,它還可以把多個文件一次性地復制到一個目錄下,它的常用參數如下:
-a :將文件的特性一起復制
-p
:連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用於備份
-i
:若目標文件已經存在時,在覆蓋時會先詢問操作的進行
-r
:遞歸持續復制,用於目錄的復制行為
-u
:目標文件與源文件有差異時才會復制
例如 :
cp -a file1 file2
#連同文件的所有特性把文件file1復製成文件file2
cp file1 file2
file3 dir #把文件file1、file2、file3復制到目錄dir中
6、mv命令
該命令用於移動文件、目錄或更名,move之意,它的常用參數如下:
-f
:force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i
:若目標文件已經存在,就會詢問是否覆蓋
-u
:若目標文件已經存在,且比目標文件新,才會更新
註:該命令可以把一個文件或多個文件一次移動一個文件夾中,但是最後一個目標文件一定要是「目錄」。
例如:
mv file1 file2
file3 dir # 把文件file1、file2、file3移動到目錄dir中
mv file1 file2 #
把文件file1重命名為file2
7、rm命令
該命令用於刪除文件或目錄,remove之間,它的常用參數如下:
-f
:就是force的意思,忽略不存在的文件,不會出現警告消息
-i
:互動模式,在刪除前會詢問用戶是否操作
-r
:遞歸刪除,最常用於目錄刪除,它是一個非常危險的參數
例如:
rm -i file #
刪除文件file,在刪除之前會詢問是否進行該操作
rm -fr dir #
強制刪除目錄dir中的所有文件
8、ps命令
該命令用於將某個時間點的進程運行情況選取下來並輸出,process之意,它的常用參數如下:
-A :所有的進程均顯示出來
-a
:不與terminal有關的所有進程
-u :有效用戶的相關進程
-x
:一般與a參數一起使用,可列出較完整的信息
-l
:較長,較詳細地將PID的信息列出
其實我們只要記住ps一般使用的命令參數搭配即可,它們並不多,如下:
ps aux #
查看系統所有的進程數據
ps ax #
查看不與terminal有關的所有進程
ps -lA #
查看系統所有的進程數據
ps axjf #
查看連同一部分進程樹狀態
9、kill命令
該命令用於向某個工作(%jobnumber)或者是某個PID(數字)傳送一個信號,它通常與ps和jobs命令一起使用,它的基本語法如下:
kill -signal PID
signal的常用參數如下:
註:最前面的數字為信號的代號,使用時可以用代號代替相應的信號。
1:SIGHUP,啟動被終止的進程
2:SIGINT,相當於輸入ctrl+c,中斷一個程序的進行
9:SIGKILL,強制中斷一個進程的進行
15:SIGTERM,以正常的結束進程方式來終止進程
17:SIGSTOP,相當於輸入ctrl+z,暫停一個進程的進行
例如:
#
以正常的結束進程方式來終於第一個後台工作,可用jobs命令查看後台中的第一個工作進程
kill -SIGTERM
%1
#
重新改動進程ID為PID的進程,PID可用ps命令通過管道命令加上grep命令進行篩選獲得
kill -SIGHUP PID
10、killall命令
該命令用於向一個命令啟動的進程發送一個信號,它的一般語法如下:
killall [-iIe]
[command name]
它的參數如下:
-i
:互動式的意思,若需要刪除時,會詢問用戶
-e :表示後面接的command
name要一致,但command name不能超過15個字元
-I :命令名稱忽略大小寫
# 例如:
killall -SIGHUP
syslogd # 重新啟動syslogd
11、file命令
該命令用於判斷接在file命令後的文件的基本數據,因為在Linux下文件的類型並不是以後綴為分的,所以這個命令對我們來說就很有用了,它的用法非常簡單,基本語法如下:
file filename
#例如:
file ./test
12、tar命令
該命令用於對文件進行打包,默認情況並不會壓縮,如果指定了相應的參數,它還會調用相應的壓縮程序(如gzip和bzip等)進行壓縮和解壓。它的常用參數如下:
-c :新建打包文件
-t
:查看打包文件的內容含有哪些文件名
-x
:解打包或解壓縮的功能,可以搭配-C(大寫)指定解壓的目錄,注意-c,-t,-x不能同時出現在同一條命令中
-j
:通過bzip2的支持進行壓縮/解壓縮
-z
:通過gzip的支持進行壓縮/解壓縮
-v
:在壓縮/解壓縮過程中,將正在處理的文件名顯示出來
-f filename
:filename為要處理的文件
-C dir
:指定壓縮/解壓縮的目錄dir
上面的解說可以已經讓你暈過去了,但是通常我們只需要記住下面三條命令即可:
壓縮:tar -jcv -f
filename.tar.bz2 要被處理的文件或目錄名稱
查詢:tar -jtv -f
filename.tar.bz2
解壓:tar -jxv -f
filename.tar.bz2 -C 欲解壓縮的目錄
註:文件名並不定要以後綴tar.bz2結尾,這里主要是為了說明使用的壓縮程序為bzip2
13、cat命令
該命令用於查看文本文件的內容,後接要查看的文件名,通常可用管道與more和less一起使用,從而可以一頁頁地查看數據。例如:
cat text | less #
查看text文件中的內容
# 註:這條命令也可以使用less
text來代替
14、chgrp命令
該命令用於改變文件所屬用戶組,它的使用非常簡單,它的基本用法如下:
chgrp [-R]
dirname/filename
-R
:進行遞歸的持續對所有文件和子目錄更改
# 例如:
chgrp users -R
./dir # 遞歸地把dir目錄下中的所有文件和子目錄下所有文件的用戶組修改為users
15、chown命令
該命令用於改變文件的所有者,與chgrp命令的使用方法相同,只是修改的文件屬性不同,不再詳述。
16、chmod命令
該命令用於改變文件的許可權,一般的用法如下:
chmod [-R] xyz
文件或目錄
-R:進行遞歸的持續更改,即連同子目錄下的所有文件都會更改
同時,chmod還可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(刪除)、=(設置)跟rwx搭配來對文件的許可權進行更改。
# 例如:
chmod 0755 file #
把file的文件許可權改變為-rxwr-xr-x
chmod g+w file #
向file的文件許可權中加入用戶組可寫許可權
18、vim命令
該命令主要用於文本編輯,它接一個或多個文件名作為參數,如果文件存在就打開,如果文件不存在就以該文件名創建一個文件。vim是一個非常好用的文本編輯器,它裡面有很多非常好用的命令,在這里不再多說。你可以從這里下載vim常用操作的詳細說明。
19、gcc命令
對於一個用Linux開發C程序的人來說,這個命令就非常重要了,它用於把C語言的源程序文件,編譯成可執行程序,由於g++的很多參數跟它非常相似,所以這里只介紹gcc的參數,它的常用參數如下:
-o
:output之意,用於指定生成一個可執行文件的文件名
-c
:用於把源文件生成目標文件(.o),並阻止編譯器創建一個完整的程序
-I :增加編譯時搜索頭文件的路徑
-L
:增加編譯時搜索靜態連接庫的路徑
-S :把源文件生成匯編代碼文件
-lm:表示標准庫的目錄中名為libm.a的函數庫
-lpthread
:連接NPTL實現的線程庫
-std=
:用於指定把使用的C語言的版本
# 例如:
#
把源文件test.c按照c99標准編譯成可執行程序test
gcc -o test
test.c -lm -std=c99
#把源文件test.c轉換為相應的匯編程序源文件test.s
gcc -S test.c
20、time命令
該命令用於測算一個命令(即程序)的執行時間。它的使用非常簡單,就像平時輸入命令一樣,不過在命令的前面加入一個time即可,例如:
time ./process
time ps aux
在程序或命令運行結束後,在最後輸出了三個時間,它們分別是:
user:用戶CPU時間,命令執行完成花費的用戶CPU時間,即命令在用戶態中執行時間總和;
system:系統CPU時間,命令執行完成花費的系統CPU時間,即命令在核心態中執行時間總和;
real:實際時間,從command命令行開始執行到運行終止的消逝時間;

來自 <https://www.cnblogs.com/yunliu0603/p/10118189.html>

F. Linux基本命令-2021-0717

[root@localhost ~]# ls -l
總用量 44
-rw------. 1 ---- root ---- root --------1207 1 月14 18:18 anaconda-ks.cfg
許可權--引用計數 所有者 -- 所屬組--- 大小-- 文件修改時間 文件名

ls [選項] [文件名或目錄名]
選項:
-a :顯示所有文件
--color=when:支持顏色輸出
-d :顯示目錄信息,而不是目錄下的文件
-h :人性化顯示﹐按照我們習慣的顯示文件大小
-i :顯示文件的i節點號
-l:長格式顯示

pwd 命令是查詢當前所在的目錄的絕對路徑
選項:
-L (默認值)列印環境變數"$PWD"的值,可能為符號鏈接。
-P 列印當前工作目錄的物理位置。

mkdir 是創建目錄的命令
選項:
-Z:設置安全上下文,當使用SELinux時有效;
-m或--mode:建立目錄的同時設置目錄的許可權;
-p或--parents:若所要建立目錄的上層目錄目前尚未建立,則會一並建立上層目錄;
rmdir 是刪除空目錄的命令
-p: 遞歸刪除目錄

touch 是 創建空文件或修改文件的時間戳
[root@localhost ~]# touch [選項] 文件名
-a:或--time=atime或--time=access或--time=use 只更改存取時間;
-c:或--no-create 不建立任何文件;
-d:<時間日期> 使用指定的日期時間,而非現在的時間;
-f:此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題;
-m:或--time=mtime或--time=modify 只更該變動時間;
-r:<參考文件或目錄> 把指定文件或目錄的日期時間,統統設成和參考文件或目錄的日期時間相同;
-t:<日期時間> 使用指定的日期時間,而非現在的時間;
--help:在線幫助;
--version:顯示版本信息。

stat 是查看文件詳細信息的命令,而且可以看到文件的這三個時間戳
選項:
-L:支持符號連接;
-f:顯示文件系統狀態而非文件狀態;
-t:以簡潔方式輸出信息;

cat 命令用來查看文件內容
選項:
-A: 相當於-vET 選項的整合,用於列出所有隱藏符號
-E: 列出每行結尾的回車符$
-n: 顯示行號
-T: 把 Tab 鍵用^I顯示出來
-v: 列出特殊字元

more 是分屏顯示文件的命令

less 是分行顯示文件的命令
用less命令顯示文件時,用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程序,應按Q鍵。
選項:
-e:文件內容顯示完畢後,自動退出;
-f:強制顯示文件;
-g:不加亮顯示搜索到的所有關鍵詞,僅顯示當前顯示的關鍵字,以提高顯示速度;
-l:搜索時忽略大小寫的差異;
-N:每一行行首顯示行號;
-s:將連續多個空行壓縮成一行顯示;
-S:在單行顯示較長的內容,而不換行顯示;
-x<數字>:將TAB字元顯示為指定個數的空格字元。

head 是用來顯示文件開頭的命令
選項:
-c --bytes=[-]NUM 顯示前NUM位元組;如果NUM前有"-",那麼會列印除了文件末尾的NUM位元組以外的其他內容。
-n, --lines=[-]NUM 顯示前NUM行而不是默認的10行;如果NUM前有"-",那麼會列印除了文件末尾的NUM行以外的其他行。
-q, --quiet, --silent 不列印文件名行。
-v, --verbose 總是列印文件名行。
-z, --zero-terminated 行終止符為NUL而不是換行符。

tail 是用來顯示文件末尾的命令
選項:
-c, --bytes=NUM 輸出文件尾部的NUM(NUM為整數)個位元組內容。
-f, --follow[={name|descript}] 顯示文件最新追加的內容。「name」表示以文件名的方式監視文件的變化。
-F 與 「--follow=name --retry」 功能相同。
-n, --line=NUM 輸出文件的尾部NUM(NUM位數字)行內容。
--pid=<進程號> 與「-f」選項連用,當指定的進程號的進程終止後,自動退出tail命令。
-q, --quiet, --silent 當有多個文件參數時,不輸出各個文件名。
--retry 即是在tail命令啟動時,文件不可訪問或者文件稍後變得不可訪問,都始終嘗試打開文件。使用此選項時需要與選項「--follow=name」連用。
-s, --sleep-interal=<秒數> 與「-f」選項連用,指定監視文件變化時間隔的秒數。
-v, --verbose 當有多個文件參數時,總是輸出各個文件名。

ln 是用來為文件創建鏈接的命令
[root@localhost ~]# ln [選項] 源文件 目標文件
選項:
-s: 建立軟鏈接文件。如果不加「-s」選項,則建立硬鏈接文件
-f: 強制。如果目標文件已經存在,則刪除目標文件後再建立鏈接文件
-d, -F, --directory 創建指向目錄的硬鏈接(只適用於超級用戶)
-f, --force 強行刪除任何已存在的目標文件
-i, --interactive 覆蓋既有文件之前先詢問用戶
-L, --logical 取消引用作為軟鏈接的目標
-n, --no-dereference 把軟鏈接的目的目錄視為一般文件
-P, --physical 直接將硬鏈接到軟鏈接
-r, --relative 創建相對於鏈接位置的軟鏈接
-s, --symbolic 對源文件建立軟鏈接

硬鏈接特徵:
源文件和硬鏈接文件擁有相同的 Inode 和 Block
 修改任意一個文件,另一個都改變
 刪除任意一個文件,另一個都能使用
 硬鏈接標記不清,很難確認硬鏈接文件位置,不建議使用
 硬鏈接不能鏈接目錄
 硬鏈接不能跨分區

軟鏈接特徵:
 軟鏈接和源文件擁有不同的 Inode 和 Block
 兩個文件修改任意一個,另一個都改變
 刪除軟鏈接,源文件不受影響;刪除源文件,軟鏈接不能使用
 軟鏈接沒有實際數據,只保存源文件的 Inode,不論源文件多大,軟鏈接大小不變
 軟鏈接的許可權是最大許可權 lrwxrwxrwx.,但是由於沒有實際數據,最終訪問時需要參考源文
件許可權
 軟鏈接可以鏈接目錄
 軟鏈接可以跨分區
 軟鏈接特徵明顯,建議使用軟連接

rm 是強大的刪除命令,不僅可以刪除文件,也可以刪除目錄
[root@localhost ~]# rm [選項] 文件或目錄
選項:
d:直接把欲刪除的目錄的硬連接數據刪除成0,刪除該目錄;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r:遞歸處理,將指定目錄下的所有文件與子目錄一並處理;
--preserve-root:不對根目錄進行遞歸操作;
-v:顯示指令的詳細執行過程。

cp 是文件或目錄用於復制的命令
[root@localhost ~]# cp [選項] 源文件 目標文件
選項:
-a:此參數的效果和同時指定"-dpR"參數相同;
-d:當復制軟鏈接時,把目標文件或目錄也建立為軟鏈接,並指向與源文件或目錄連接的原始文件或目錄;
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復制文件;
-p:保留源文件或目錄的屬性;
-r:遞歸處理,將指定目錄下的所有文件與子目錄一並處理;
-s:對源文件建立軟鏈接,而非復制文件;
-u:使用這項參數後只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件並不存在時,才復制文件;
-S:在備份文件時,用指定的後綴「SUFFIX」代替文件的默認後綴;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執行的操作。

mv 是用來對文件或目錄重新命名,或者將文件移動至其他目錄
[root@localhost ~]# mv [選項] 源文件 目標文件
選項:
-b:當文件存在時,覆蓋前,為其創建一個備份;
-f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目錄;
-i:互動式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入」y」,表示將覆蓋目標文件;輸入」n」,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。
--strip-trailing-slashes:刪除源文件中的斜杠「 / 」;
-S<後綴>:為備份文件指定後綴,而不使用默認的後綴;
--target-directory=<目錄>:指定源文件要移動到目標目錄;
-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。

[root@localhost ~]# ls -l install.log
-rw-r--r--. 1 root root 24772 1 月 14 18:17 install.log

第一列的許可權位如果不計算最後的「.」,則共有 10 位。

第 2~4 位代表文件所有者的許可權。

chmod 用來變更文件或目錄的許可權
[root@localhost ~]# chmod [選項] 許可權模式 文件名
選項:
-c, --changes:當文件的許可權更改時輸出操作信息。
--no-preserve-root:不將'/'特殊化處理,默認選項。
--preserve-root:不能在根目錄下遞歸操作。
-f, --silent, --quiet:抑制多數錯誤消息的輸出。
-v, --verbose:無論文件是否更改了許可權,一律輸出操作信息。
--reference=RFILE:使用參考文件或參考目錄RFILE的許可權來設置目標文件或目錄的許可權。
-R, --recursive:對目錄以及目錄下的文件遞歸執行更改許可權操作。

用戶身份

首先,讀、寫、執行許可權對文件和目錄的作用是不同的。

目錄的可用許可權其實只有以下幾個。

chown 是修改文件和目錄的所有者和所屬組的命令
[root@localhost ~]# chown [選項] 所有者:所屬組 文件或目錄
選項:
-c或——changes:效果類似「-v」參數,但僅回報更改的部分;
-f或--quite或——silent:不顯示錯誤信息;
-h或--no-dereference:只對軟鏈接的文件作修改,而不更改其他任何相關文件;
-R或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一並處理;
-v或——version:顯示指令執行過程;
--reference=<參考文件或目錄>:把指定文件或目錄的擁有者與所屬群組全部設成和參考文件或目錄的擁有者與所屬群組相同;
普通用戶不能修改文件的所有者,哪怕自己是這個文件的所有者也不行
普通用戶可以修改所有者是自己的文件的許可權

chgrp 是修改文件和目錄的所屬組的命令
[root@phato ~]# chgrp [選項] 所屬組 文件或目錄
-R 遞歸式地改變指定目錄及其下的所有子目錄和文件的所屬的組
-c或——changes:效果類似「-v」參數,但僅回報更改的部分;
-f或--quiet或——silent:不顯示錯誤信息;
-h或--no-dereference:只對符號連接的文件作修改,而不是該其他任何相關文件;
-H如果命令行參數是一個通到目錄的軟鏈接,則遍歷軟鏈接
-R或——recursive:遞歸處理,將指令目錄下的所有文件及子目錄一並處理;
-L:遍歷每一個遇到的通到目錄的軟鏈接
-P:不遍歷任何符號鏈接(默認)
-v或——verbose:顯示指令執行過程;
--reference=<參考文件或目錄>:把指定文件或目錄的所屬群組全部設成和參考文件或目錄的所屬群組相同;

umask 是顯示或設置創建文件的許可權掩碼。我們需要先了解一下新建文件和目錄的默認最大許可權。

我們在這里按照許可權字母來講解 umask 許可權的計算方法。我們就按照默認的 umask 值是 022來分別計算一下新建文件和目錄的默認許可權吧。

G. 基本linux命令

基本linux命令有哪些呢?

1、ls命令
就是 list 的縮寫,通過 ls 命令不僅可以查看 linux 文件夾包含的文件,而且可以查看文件許可權(包括目錄、文件夾、文件許可權)查看目錄信息等等。
常用參數搭配:
ls -a 列出目錄所有文件,包含以.開始的隱藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改時間排序
ls -S 以文件大小排序
ls -h 以易讀大小顯示
ls -l 除了文件名之外,還將文件的許可權、所有者、文件大小等信息詳細列出來
實例:
(1) 按易讀方式按時間反序排序,並顯示文件詳細信息
ls -lhrt
(2) 按大小反序顯示文件詳細信息
ls -lrS
(3)列出當前目錄中所有以"t"開頭的目錄的詳細內容
ls -l t*
(4) 列出文件絕對路徑(不包含隱藏文件)
ls | sed "s:^:`pwd`/:"
(5) 列出文件絕對路徑(包含隱藏文件)
find $pwd -maxdepth 1 | xargs ls -ld
2、cd 命令
cd(changeDirectory) 命令語法:
cd [目錄名]
說明:切換當前目錄至 dirName。
實例:
(1)進入要目錄
cd /
(2)進入 "home" 目錄
cd ~
(3)進入上一次工作路徑
cd -
(4)把上個命令的參數作為cd參數使用。
cd !$
3、pwd 命令
pwd 命令用於查看當前工作目錄路徑。
實例:
(1)查看當前路徑
pwd
(2)查看軟鏈接的實際路徑
pwd -P
4、mkdir 命令
mkdir 命令用於創建文件夾。
可用選項:
-m: 對新建目錄設置存取許可權,也可以用 chmod 命令設置;
-p: 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不在的目錄,即一次可以建立多個目錄。
實例:
(1)當前工作目錄下創建名為 t的文件夾
mkdir t
(2)在 tmp 目錄下創建路徑為 test/t1/t 的目錄,若不存在,則創建:
mkdir -p /tmp/test/t1/t
5、rm 命令
刪除一個目錄中的一個或多個文件或目錄,如果沒有使用 -r 選項,則 rm 不會刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復原狀。
rm [選項] 文件…
實例:
(1)刪除任何 .log 文件,刪除前逐一詢問確認:
rm -i *.log
(2)刪除 test 子目錄及子目錄中所有檔案刪除,並且不用一一確認:
rm -rf test
(3)刪除以 -f 開頭的文件
rm -- -f*
6、rmdir 命令
從一個目錄中刪除一個或多個子目錄項,刪除某目錄時也必須具有對其父目錄的寫許可權。
注意:不能刪除非空目錄
實例:
(1)當 parent 子目錄被刪除後使它也成為空目錄的話,則順便一並刪除:
rmdir -p parent/child/child11
7、mv 命令
移動文件或修改文件名,根據第二參數類型(如目錄,則移動文件;如為文件則重命令該文件)。
當第二個參數為目錄時,第一個參數可以是多個以空格分隔的文件或目錄,然後移動第一個參數指定的多個文件到第二個參數指定的目錄中。
實例:
(1)將文件 test.log 重命名為 test1.txt
mv test.log test1.txt
(2)將文件 log1.txt,log2.txt,log3.txt 移動到根的 test3 目錄中
mv llog1.txt log2.txt log3.txt /test3
(3)將文件 file1 改名為 file2,如果 file2 已經存在,則詢問是否覆蓋
mv -i log1.txt log2.txt
(4)移動當前文件夾下的所有文件到上一級目錄
mv * ../
8、cp 命令
將源文件復制至目標文件,或將多個源文件復制至目標目錄。
注意:命令行復制,如果目標文件已經存在會提示是否覆蓋,而在 shell 腳本中,如果不加 -i 參數,則不會提示,而是直接覆蓋!
-i 提示
-r 復制目錄及目錄內所有項目
-a 復制的文件與原文件時間一樣
實例:
(1)復制 a.txt 到 test 目錄下,保持原文件時間,如果原文件存在提示是否覆蓋。
cp -ai a.txt test
(2)為 a.txt 建議一個鏈接(快捷方式)
cp -s a.txt link_a.txt
9、cat 命令
cat 主要有三大功能:
1.一次顯示整個文件:
cat filename
2.從鍵盤創建一個文件:
cat > filename
只能創建新文件,不能編輯已有文件。
3.將幾個文件合並為一個文件:
cat file1 file2 > file
-b 對非空輸出行號
-n 輸出所有行號
實例:
(1)把 log2012.log 的文件內容加上行號後輸入 log2013.log 這個文件里
cat -n log2012.log log2013.log
(2)把 log2012.log 和 log2013.log 的文件內容加上行號(空白行不加)之後將內容附加到 log.log 里
cat -b log2012.log log2013.log log.log
(3)使用 here doc 生成新文件
cat >log.txt <<EOF
>Hello
>World
>PWD=$(pwd)
>EOF
ls -l log.txt
cat log.txt
Hello
World
PWD=/opt/soft/test
(4)反向列示
tac log.txt
PWD=/opt/soft/test
World
Hello
10、more 命令
功能類似於 cat, more 會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示。
命令參數:
+n 從笫 n 行開始顯示
-n 定義屏幕大小為n行
+/pattern 在每個檔案顯示前搜尋該字串(pattern),然後從該字串前兩行之後開始顯示
-c 從頂部清屏,然後顯示
-d 提示「Press space to continue,』q』 to quit(按空格鍵繼續,按q鍵退出)」,禁用響鈴功能
-l 忽略Ctrl+l(換頁)字元
-p 通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似
-s 把連續的多個空行顯示為一行
-u 把文件內容中的下畫線去掉
常用操作命令:
Enter 向下 n 行,需要定義。默認為 1 行
Ctrl+F 向下滾動一屏
空格鍵 向下滾動一屏
Ctrl+B 返回上一屏
= 輸出當前行的行號
:f 輸出文件名和當前行的行號
V 調用vi編輯器
!命令 調用Shell,並執行命令
q 退出more
實例:
(1)顯示文件中從第3行起的內容
more +3 text.txt
(2)在所列出文件目錄詳細信息,藉助管道使每次顯示 5 行
ls -l | more -5
按空格顯示下 5 行。
11、less 命令
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,而且 less 在查看之前不會載入整個文件。
常用命令參數:
-i 忽略搜索時的大小寫
-N 顯示每行的行號
-o <文件名> 將less 輸出的內容在指定文件中保存起來
-s 顯示連續空行為一行
/字元串:向下搜索「字元串」的功能
?字元串:向上搜索「字元串」的功能
n:重復前一個搜索(與 / 或 ? 有關)
N:反向重復前一個搜索(與 / 或 ? 有關)
-x <數字> 將「tab」鍵顯示為規定的數字空格
b 向後翻一頁
d 向後翻半頁
h 顯示幫助界面
Q 退出less 命令
u 向前滾動半頁
y 向前滾動一行
空格鍵 滾動一行
回車鍵 滾動一頁
[pagedown]: 向下翻動一頁
[pageup]: 向上翻動一頁
實例:
(1)ps 查看進程信息並通過 less 分頁顯示
ps -aux | less -N
(2)查看多個文件
less 1.log 2.log
可以使用 n 查看下一個,使用 p 查看前一個。
12、head 命令
head 用來顯示檔案的開頭至標准輸出中,默認 head 命令列印其相應文件的開頭 10 行。
常用參數:
-n<行數> 顯示的行數(行數為復數表示從最後向前數)
實例:
(1)顯示 1.log 文件中前 20 行
head 1.log -n 20
(2)顯示 1.log 文件前 20 位元組
head -c 20 log2014.log
(3)顯示 t.log最後 10 行
head -n -10 t.log
13、tail 命令
用於顯示指定文件末尾內容,不指定文件時,作為輸入信息進行處理。常用查看日誌文件。
常用參數:
-f 循環讀取(常用於查看遞增的日誌文件)
-n<行數> 顯示行數(從後向前)
(1)循環讀取逐漸增加的文件內容
ping 127.0.0.1 > ping.log &
後台運行:可使用 jobs -l 查看,也可使用 fg 將其移到前台運行。
tail -f ping.log
(查看日誌)
14、which 命令
在 linux 要查找某個文件,但不知道放在哪裡了,可以使用下面的一些命令來搜索:
which 查看可執行文件的位置。
whereis 查看文件的位置。
locate 配合資料庫查看文件位置。
find 實際搜尋硬碟查詢文件名稱。
which 是在 PATH 就是指定的路徑中,搜索某個系統命令的位置,並返回第一個搜索結果。使用 which 命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
常用參數:
-n 指定文件名長度,指定的長度必須大於或等於所有文件中最長的文件名。
實例:
(1)查看 ls 命令是否存在,執行哪個
which ls
(2)查看 which
which which
(3)查看 cd
which cd(顯示不存在,因為 cd 是內建命令,而 which 查找顯示是 PATH 中的命令)
查看當前 PATH 配置:
echo $PATH
或使用 env 查看所有環境變數及對應值
15、whereis 命令
whereis 命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。whereis 及 locate 都是基於系統內建的資料庫進行搜索,因此效率很高,而find則是遍歷硬碟查找文件。
常用參數:
-b 定位可執行文件。
-m 定位幫助文件。
-s 定位源代碼文件。
-u 搜索默認路徑下除可執行文件、源代碼文件、幫助文件以外的其它文件。
實例:
(1)查找 locate 程序相關文件
whereis locate
(2)查找 locate 的源碼文件
whereis -s locate
(3)查找 lcoate 的幫助文件
whereis -m locate

H. Linux命令

快照功能:記錄當前的硬碟的狀態。剛建快照時快照佔用內存為0,標記了當前硬碟的存儲狀態。當虛擬機對快照標記的內容改寫時,會將改寫的內容存儲進快照,與未改寫的部分整合得到完整的快照。當快照標記的部分被完全改寫,那麼快照存儲空間完整記錄了當時拍攝時的內存狀態。

參數形式

第一種:參數用一橫的說明後面的參數是字元形式。

第二種:參數用兩橫的說明後面的參數是單詞形式。

第三種:參數前有橫的是 System V風格。

第四種:參數前沒有橫的是 BSD風格。

cat、more、less、head、tail命令的比較:

cat命令可以一次顯示整個文件,如果文件比較大,使用不是很方便;

more命令可以讓屏幕在顯示滿一屏幕時暫停,按空格往前翻頁,按b往後翻頁。

less命令也可以分頁顯示文件,和more命令的區別就在於: 支持上下鍵卷動屏幕、查找;不需要在一開始就讀取整個文件,打開大文件時比more、vim更快。

head命令用於查看文件的前n行。

tail命令用於查看文件的後n行,加上-f命令,查看在線日誌非常方便,可以列印最新增加的日誌。

一般模式:

編輯模式:

命令模式:

編碼

多行操作(列編輯模式)
插入:ctrl+v進入列編輯模式,上下移動游標選擇需要插入的位置,然後輸入大寫I,輸入需要文本,最後按esc鍵退出,就會發現文本會在選擇的多行中插入。
刪除:ctrl+v進入列編輯模式,上下移動游標選中需要刪除的部分,然後按d,就會刪除選中的內容。

①head:顯示文件頭部內容

②tail:輸出文件尾部內容

注意:用vim和vi修改內容會刪除源文件並生成新文件,所以tail -f會失效。需要用到

追加和覆蓋語句(>或>>),才能被tail -f監視到。

一般用於查看小文件

查看壓縮文件中的文本內容

例:

①more:文件內容分屏查看器

②less:分屏顯示文件內容,效率比more高

1、簡單讀取

運行腳本如下

測試結果為:

2、-p 參數,允許在 read 命令行中直接指定一個提示。

運行腳本如下

測試結果為:

echo [選項] [輸出內容] (輸出內容到控制台)

輸出給定文本的sha256加密後的內容

①顯示當前時間信息

②顯示當前時間年月日

③顯示當前時間年月日時分秒

④顯示昨天

⑤顯示明天時間

⑥顯示上個月時間

需要注意的是取下個月的命令存在bug,執行如下命令會得到21-10,但是正常應該得到21-09,需要注意
date -d "2021-08-31 +1 month" +%y-%m

⑦修改系統時間

⑧獲取當前時間戳
獲取秒時間戳: date +%s
獲取毫秒時間戳:$[ (date +%s%N) /1000000]

查看日歷

(1)查看當前月的日歷

(2)查看2017年的日歷

例:

對比gzip/gunzip,zip/unzip可以壓縮文件和目錄且保留源文件。

①zip:壓縮

②unzip:解壓縮

只能壓縮文件不能壓縮目錄,不保留原來的文件。

gzip 文件 (只能將文件壓縮為*.gz文件)

gunzip 文件.gz (解壓縮文件命令)

例: crontab -e

(1)進入crontab編輯界面。會打開vim編輯你的工作。

(2)每隔1分鍾,向/root/longma.txt文件中添加一個11的數字

*/1 * * * * /bin/echo 」11」 >> /root/longma.txt

(3)可以用tail -f 目標文件來實施監控追加的內容

查看日誌
可以用tail -f /var/log/cron.log觀察

Cron表達式見文章: https://www.jianshu.com/writer#/notebooks/46619194/notes/75177408

ls [選項] [目錄或是文件]

cd [參數]

例: cd -P $(dirname $p1) ; pwd 先跳轉到文件的所在目錄,再列印$p1文件的實際路徑

概述

①cp():只能在本機中復制

②scp(secure ):可以復制文件給遠程主機

scp -r test.sh hxr@hadoop102:/root

③rsync(remote sync):功能與scp相同,但是不會改文件屬性

rsync -av test.sh test.sh hxr@hadoop102:/root

④nc(netcat):監聽埠,可以實現機器之間傳輸文件。
nc -lk 7777 (-l表示listen,-k表示keep)

強制覆蓋不提示的方法:cp

例:scp -r test.sh hxr@bigdata1:/root

例:rsync -av test.sh hxr@bigdata1:/root

例:

nc -lp 10000 > nc_test.txt

nc -w 1 hadoop102 < nc_test.txt

遠程登錄時默認使用的私鑰為~/.ssh/id_rsa

生成密鑰對

將公鑰發送到本機

將密鑰發送到需要登錄到本機的伺服器上

修改密鑰的許可權

遠程登陸

如果有多個節點需要遠程登陸,可以在.ssh下創建config並輸入

再次登陸


①正向代理:



②反向代理:
所謂「反向代理」就是讓遠端啟動埠,把遠端埠數據轉發到本地。

HostA 將自己可以訪問的 HostB:PortB 暴露給外網伺服器 HostC:PortC,在 HostA 上運行:

那麼鏈接 HostC:PortC 就相當於鏈接 HostB:PortB。
使用時需修改 HostC 的 /etc/ssh/sshd_config 的一條配置如下,不然啟動的進程監聽的ip地址為127.0.0.1,即只有本機可以訪問該埠。

相當於內網穿透,比如 HostA 和 HostB 是同一個內網下的兩台可以互相訪問的機器,HostC是外網跳板機,HostC不能訪問 HostA,但是 HostA 可以訪問 HostC。
那麼通過在內網 HostA 上運行 ssh -R 告訴 HostC,創建 PortC 埠監聽,把該埠所有數據轉發給我(HostA),我會再轉發給同一個內網下的 HostB:PortB。
同內網下的 HostA/HostB 也可以是同一台機器,換句話說就是 內網 HostA 把自己可以訪問的埠暴露給了外網 HostC。

例: 比如在我的內網機192.168.32.244上有一個RabbitMQ的客戶端,埠號為15672。現在我希望在外網上訪問固定ip的雲伺服器chenjie.asia的6009埠,通過跳板機192.168.32.243來轉發請求到192.168.32.244:15672,從而實現在外網訪問內網服務的功能,即內網穿透。
①在192.168.32.244上啟動RabbitMQ服務

②將chenjie.asia雲伺服器的私鑰復制到跳板機192.168.32.243的~/.ssh下,並重命名為id_rsa。通過如下命令看是否可以遠程登陸到雲服務,可以登陸則進行下一步。

③修改chenjie.asia伺服器的ssh配置文件 /etc/ssh/sshd_config ,允許其他節點訪問

然後重啟sshd服務

④在跳板機192.168.32.243啟動ssh反向代理

這個進程在關閉session時會停止,可以添加啟動參數 -CPfN

例:

以 root 身份執行的程序有了所有特權,這會帶來安全風險。Kernel 從 2.2 版本開始,提供了 Capabilities 功能,它把特權劃分成不同單元,可以只授權程序所需的許可權,而非所有特權。

例如:linux不允許非root賬號只用1024以下的埠,使用root啟動命令nginx,會導致nginx許可權過高太危險。所以用setcap命令

sudo setcap cap_net_bind_service=+eip /bigdata/nginx/sbin/nginx

正確的關機流程為 :sync > shutdown > reboot > halt

(1)sync (功能描述:將數據由內存同步到硬碟中)

(2)halt (功能描述:關閉系統,等同於shutdown -h now 和 poweroff)

(3)reboot (功能描述:就是重啟,等同於 shutdown -r now)

(4)shutdown [選項] [時間]

安裝
yum install -y telnet-server telnet

ls -i 顯示文件的節點號
find -inum 節點號 -delete 刪除指定的節點即可刪除對應的文件


啟動一個服務: systemctl start postfix.service
關閉一個服務: systemctl stop postfix.service
重啟一個服務: systemctl restart postfix.service
顯示一個服務的狀態: systemctl status postfix.service

在開機時啟用一個服務: systemctl enable postfix.service
在開機時禁用一個服務: systemctl disable postfix.service
註:在enable的時候會列印出來該啟動文件的位置

列出所有已經安裝的服務及狀態:
systemctl list-units
systemctl list-unit-files
查看服務列表狀態:
systemctl list-units --type=service

查看服務是否開機啟動: systemctl is-enabled postfix.service
查看已啟動的服務列表: systemctl list-unit-files | grep enabled
查看啟動失敗的服務列表: systemctl --failed

查看服務日誌: journalctl -u postfix -n 10 -f

命令類似systemctl,用於操作native service。

添加腳本為服務(需要指定啟動級別和優先順序): chkconfig --add [腳本]
刪除服務: chkconfig --del [腳本]
單獨查看某一服務是否開機啟動的命令 : chkconfig --list [服務名]
單獨開啟某一服務的命令 : chkconfig [服務名] on
單獨關閉某一服務的命令: chkconfig [服務名] off
查看某一服務的狀態: /etc/intd.d/[服務名] status

啟用服務就是在當前"runlevel"的配置文件目錄 /etc/systemd/system/multi-user.target.wants 里,建立 /usr/lib/systemd/system 裡面對應服務配置文件的軟鏈接;禁用服務就是刪除此軟鏈接,添加服務就是添加軟連接。

su 用戶名稱 (切換用戶,只能獲得用戶的執行許可權,不能獲得環境變數)

su - 用戶名稱 (切換到用戶並獲得該用戶的環境變數及執行許可權)

echo $PATH 列印環境變數

設置普通用戶具有root許可權

修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下 所示:

或者配置成採用sudo命令時,不需要輸入密碼

修改完畢,現在可以用hxr 帳號登錄,然後用命令 sudo ,即可獲得root許可權進行操作。

以azkaban用戶執行引號中的命令

gpasswd -d [username] [groupname] 將用戶從組中刪除
gpasswd -a [username] [groupname] 將用戶加入到組中

用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對 /etc/group文件的更新。

0首位表示類型 - 代表文件 d 代表目錄 l 鏈接文檔(link file)

三種特殊許可權suid、sgid、sticky

例子:



變更文件許可權方式一

例:chmod u-x,o+x houge.txt

變更文件許可權方式二

例:chmod -R 777 /mnt/ 修改整個文件夾的文件許可權


在linux中創建文件或者目錄會有一個默認許可權的,這個默認許可權是由umask決定的(默認為0022)。umask設置的是許可權的「補碼」,而我們常用chmod設置的是文件許可權碼。一般在/etc/profile 、~/.bashprofile 或者 ~/.profile中設置umask值。

umask計算
如root用戶的默認umask為0022(第一個0 代表特殊許可權位,這里先不考慮),創建的文件默認許可權是644(即默認666掩上umask的022),創建的目錄是755(即默認777掩上umask的022)。

對於root用戶的umask=022這個來說,777許可權二進制碼就是(111)(111)(111),022許可權二進制碼為(000)(010)(010)。

上面就是一個umask的正常計算過程,但是這樣實在是太麻煩了。我們使用如下的簡單的方法快速計算。

上面的這個方法計算是非常方便的, 為何得到奇數要+1呢?

文件的最大許可權是666,都是偶數,你得到奇數,說明你的umask有奇數啊,讀為4,寫為2,都是偶數,說明你有執行許可權的。

就按照上面的umask=023為例,在計算其他用戶許可權的時候6-3=3 ,6是讀寫,3是寫和執行,其實應該是讀寫許可權減去讀許可權的得到寫許可權的,相當於我們多減去了一個執行許可權。所以結果加1。



umask修改


如果想單獨修改某個文件夾的新建文件的許可權,可以使用setfacl命令。


例:遞歸改變文件所有者和所有組 chown -R hxr:hxr /mnt

例:

I. Linux文件相關命令

grep命令:
grep命令是非常重要的命令,可以對文本進行查找和搜索

常用參數如下:

常用實例:
1、在多個文件中查找:
grep "file" file_1 file_2 file_3

2、輸出除之外的所有行 -v 選項:
grep -v "file" file_name

3、標記匹配顏色 --color=auto 選項:
grep "file" file_name --color=auto

4、使用正則表達式 -E 選項:
grep -E "[1-9]+"
egrep "[1-9]+"

5、只輸出文件中匹配到的部分 -o 選項:
echo this is a test line. | grep -o -E "[a-z]+."
line.

echo this is a test line. | egrep -o "[a-z]+."
line.

6、統計文件或者文本中包含匹配字元串的行數-c 選項:
grep -c "text" file_name
2

7、輸出包含匹配字元串的行數 -n 選項:
grep "text" -n file_name

cat file_name | grep "text" -n

8、多個文件
grep "text" -n file_1 file_2

9、搜索多個文件並查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...

10、grep遞歸搜索文件
在多級目錄中對文本進行遞歸搜索:
grep "text" . -r -n

11、忽略匹配樣式中的字元大小寫:
echo "hello world" | grep -i "HELLO"
hello

12、選項 -e 指定多個匹配樣式:
echo this is a text line | grep -e "is" -e "line" -o
is
line

13、也可以使用 -f 選項來匹配多個樣式,在樣式文件中逐行寫出需要匹配的字元。
cat patfile
aaa
bbb
echo aaa bbb ccc ddd eee | grep -f patfile -o

14、在grep搜索結果中包括或者排除指定文件:
只在目錄中所有的.php和.html文件中遞歸搜索字元"main()"
grep "main()" . -r --include *.{php,html}

15、在搜索結果中排除所有README文件
grep "main()" . -r --exclude "README"

16、在搜索結果中排除filelist文件列表裡的文件
grep "main()" . -r --exclude-from filelist

touch abc.txt 創建一個名為abc.txt的文件
touch -r 指定文件時間與參考文件相同
touch -t 201608012234.55[yyyymmddhhmm.ss] abc.txt 更改文件為指定的時間
touch temp 創建一個名為temp的文件

vi編輯器有三種模式,命令行模式、編輯模式、底行模式。
vi 文件名進入命令行模式,Insert進入編輯模式,編輯完成Esc退出編輯模式,:wq進入底行模式並保存修改,:q直接退出保存。

tar命令用於打包壓縮文件,常用的壓縮命令還有bzip2,gzip
bunzip2 file1.bz2 解壓一個叫做 'file1.bz2'的文件
bzip2 file1 壓縮一個叫做 'file1' 的文件
gunzip file1.gz 解壓一個叫做 'file1.gz'的文件
gzip file1 壓縮一個叫做 'file1'的文件
gzip -9 file1 最大程度壓縮
rar a file1.rar test_file 創建一個叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同時壓縮 'file1', 'file2' 以及目錄 'dir1'
rar x file1.rar 解壓rar包
unrar x file1.rar 解壓rar包
tar -cvf archive.tar file1 創建一個非壓縮的 tarball
tar -cvf archive.tar file1 file2 dir1 創建一個包含了 'file1', 'file2' 以及 'dir1'的檔案文件
tar -tf archive.tar 顯示一個包中的內容
tar -xvf archive.tar 釋放一個包
tar -xvf archive.tar -C /tmp 將壓縮包釋放到 /tmp目錄下
tar -cvfj archive.tar.bz2 dir1 創建一個bzip2格式的壓縮包
tar -xvfj archive.tar.bz2 解壓一個bzip2格式的壓縮包
tar -cvfz archive.tar.gz dir1 創建一個gzip格式的壓縮包
tar -xvfz archive.tar.gz 解壓一個gzip格式的壓縮包
zip file1.zip file1 創建一個zip格式的壓縮包
zip -r file1.zip file1 file2 dir1 將幾個文件和目錄同時壓縮成一個zip格式的壓縮包
unzip file1.zip 解壓一個zip格式壓縮包

which命令用於用戶查找命令所有路徑
命令格式

file命令用於獲取文件屬性
命令格式
file 文件名或目錄名
命令示例:

使用說明
命令格式:cat [-AbeEnstTuv] [--help] [--version] fileName
cat file1 從第一個位元組開始正向查看文件的內容
-n 或 --number:由 1 開始對所有輸出的行數編號。
-b 或 --number-nonblank:和 -n 相似,只不過對於空白行不編號。
-s 或 --squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符號,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行結束處顯示 $。
-T 或 --show-tabs: 將 TAB 字元顯示為 ^I。
-A, --show-all:等價於 -vET。
-e:等價於"-vE"選項;
-t:等價於"-vT"選項;

使用示例
把 textfile1 的文檔內容加上行號後輸入 textfile2 這個文檔里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文檔內容加上行號(空白行不加)之後將內容附加到 textfile3 文檔里
cat -b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文檔內容
cat /dev/null > /etc/test.txt

tac [filename]
從最後一行開始反向查看一個文件的內容,ac與cat命令剛好相反,文件內容從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫。

nl [-bnw] 文件
選項與參數:
-b: 指定行號指定的方式,主要有兩種:
-b a :表示不論是否為空行,也同樣列出行號(類似 cat -n);
-b t :如果有空行,空的那一行不要列出行號(默認值);
-n :列出行號表示的方法,主要有三種:
-n ln :行號在熒幕的最左方顯示;
-n rn :行號在自己欄位的最右方顯示,且不加 0 ;
-n rz :行號在自己欄位的最右方顯示,且加 0 ;
-w :行號欄位的佔用的位數。

more file1 查看一個長文件的內容,支持一頁一頁翻動
運行的時候,支持以下幾個按鍵:
空白鍵 (space):代表向下翻一頁;
Enter :代表向下翻『一行』;
/字串 :代表在這個顯示的內容當中,向下搜尋『字串』這個關鍵字;
:f :立刻顯示出檔名以及目前顯示的行數;
q :代表立刻離開 more ,不再顯示該文件內容。
b 或 [ctrl]-b :代表往回翻頁,不過這動作只對文件有用,對管線無用。

less file1 類似於 'more' 命令,但是它允許在文件中和正向操作一樣的反向操作
less運行時可以輸入的命令有:
空白鍵 :向下翻動一頁;
[pagedown]:向下翻動一頁;
[pageup] :向上翻動一頁;
/字串 :向下搜尋『字串』的功能;
?字串 :向上搜尋『字串』的功能;
n :重復前一個搜尋 (與 / 或 ? 有關!)
N :反向的重復前一個搜尋 (與 / 或 ? 有關!)
q :離開 less 這個程序;

head [-n number]
head -2 file1 查看一個文件的前兩行

tail [-n number]
tail -2 file1 查看一個文件的最後兩行
tail -f /var/log/messages 實時查看被添加到一個文件中的內容

文件許可權列中三位為一組,分別代表相關的用戶、組、其它用戶的許可權
許可權列中三位為一組,分別代表相關的用戶、組、其它用戶的許可權

所以修改許可權可以分別修改或一同修改,系統中許可權分為數字許可權與字元許可權
數字許可權:r=4,w=2,x=1
字元許可權:+ 增加 -去除 a取消所有加上給定的

修改許可權的命令chmod,命令格式:
chmod 許可權 文件名或目錄名 修改許可權格式
chmod -R 許可權 目錄名 遞歸將目錄及其下面所有內容許可權全部修改
chown 改變文件或目錄的屬主(所有者)

chown 用戶名 文件名或目錄名

chown 用戶名.組名 文件名或目錄名
修改所屬組也可用chgrp 命令來完成
當你用ls -l 查看到文件的屬主、屬組為數字時,就表明該文件的創建用戶已被刪除。

文件的特殊許可權

chattr +i(-i) 文件名 鎖定文件(取消鎖定)不可刪除與清空
chattr +a(-a) 文件名 添加內容(只可添加內容)
使用lsattr 文件名 查看文件的特殊許可權

由此可以看出
root用戶默認創建的目錄許可權是755,文件許可權是644
普通用戶默認創建的目錄許可權是775,文件許可權是664
這也是系統默認的比較安全的許可權分配,其實這些默認許可權全部都是由umask值來決定的
系統規定了
文件的許可權值是從666開始計算(默認許可權=許可權值-umask值)
目錄的許可權值是從777開始計算(默認許可權=許可權值-umask值)
文件1的許可權=444 (666-232=434——43(3+1)4)

J. Linux find 命令詳解

find 命令的基本結構如下:
find [paths] [expression] [actions]

find 命令接受一個或多個 路徑 ( paths )作為搜索范圍,並在該路徑下 遞歸 地搜索。即檢索完指定的目錄後,還會對該目錄下的子目錄進行檢索,以及子目錄下的子目錄。。。直到到達目錄樹底部。

默認情況下(不帶任何搜索條件),find 命令會返回指定目錄下的 所有文件 ,所以常常需要通過特定的 expression 對結果進行 篩選

find 命令默認的 action 是將所有檢索結果列印至標准輸出。可以通過自定義 action ,讓 find 命令對搜索到的結果執行特定的操作。

這里先不做詳細解釋,簡單地測試下 find 命令:

find 命令中的 -name 選項可以根據文件名稱進行檢索( 區分大小寫 )。如需要忽略文件名中的大小寫,可以使用 -iname 選項。

-name 和 -iname 兩個選項都支持 wildcards 。如:

find /usr -name '*.txt' 查找 /usr 目錄下所有文件名以 .txt 結尾的文件
find /usr -name '????' 查找 /usr 目錄下所有文件名剛好為 4 個字元的文件

有些時候,你需要在搜索時匹配某個文件或目錄的 完整路徑 ,而不僅僅是匹配文件名。可以使用 -path 或 -ipath 選項。

如查找 /usr 下所有文件名以 .txt 結尾的文件或目錄,且該文件的父目錄必須是 src 。可以使用以下命令:
find /usr -path '*/src/*.txt'

如果只想搜索得到文件 目錄,即不想它們同時出現在結果中。可以使用 -type 選項指定文件類型。

-type 選項最常用的參數如下:

find /usr -type d -name 'python*' 檢索 /usr 下所有文件名以 python 開頭的 目錄

find 命令支持 -empty 選項用來檢索 為空 的文件或目錄。空文件即文件里沒有任何內容,空目錄即目錄中沒有任何文件或子目錄。

find ~ -type d -empty 檢索用戶主目錄下所有的空目錄

find 命令也允許用戶對當前的匹配條件進行 「反義」 (類似於 邏輯非 操作)。

如需要檢索 /usr 下所有文件名 以 .txt 為後綴的文件。可以使用以下命令:
find /usr -type f ! -name '*.txt'

也可以「翻轉」任何其他的篩選條件,如:
find /usr -type f ! -empty 檢索 /usr 下所有內容不為空的文件

為了檢索歸屬於特定用戶的文件或目錄,可以使用 -user 選項。

find / -type f -user starky 檢索根目錄下所有屬主為 starky 的文件

類似於 -user 選項, -group 選項則可以根據文件或目錄的 屬組 進行檢索。

有些時候,需要根據文件創建或修改的時間進行檢索。

Linux 系統中,與文件相關聯的時間參數有以下三種:

與此對應的是 find 命令中的 -mtime , -atime 和 -ctime 三個選項。

這三個選項的使用遵循以下示例中的規則:

find /usr -type f -mtime 2 檢索 /usr 下兩天前被修改過的文件

如果覺得 -mtime 等選項以 為單位時間有點長,還可以使用 -mmin , -amin , -cmin 三個選項:
find /usr -type f -mtime +50 -mtime -100 檢索 /usr 下 50 到 100 天之前修改過的文件
find /usr -type f -mtime 2 -amin 5 檢索 /usr 下兩天前被修改過且 5 分鍾前又讀取過的文件

-size 選項允許用戶通過文件大小進行搜索(只適用於文件,目錄沒有大小……)。

表示文件大小的單位由以下字元組成:

另外,還可以使用 + 或 - 符號表示 大於 小於 當前條件。

find / -size +1G 檢索文件大小高於 1 GB 的文件

find 命令可以使用 -perm 選項以文件許可權為依據進行搜索。

如需要檢索 /usr 目錄下許可權為 rwxr-xr-x 的文件,可以使用以下命令:
find /usr -perm u=rwx,g=rx,o=rx

搜索 /usr 目錄下所有許可權為 r-xr-xr-x (即系統中的所有用戶都只有讀寫許可權)的文件和目錄,可以使用以下命令:
find /usr -perm a=rx

很多時候,我們只想匹配文件許可權的一個 子集 。比如,檢索可以直接被任何用戶執行的文件,即只關心文件的執行許可權,而不用管其讀寫許可權是什麼。

上述的需求可以通過以下命令實現: find / -type f -perm /a=x
其中 a=x 前面的 / 符號即用來表示只匹配許可權的某個子集(執行許可權),而不用關心其他許可權的具體設置。

-perm 選項也支持數字形式的文件許可權標記。

find /usr -perm 644 搜索 /usr 目錄下許可權為 644 (即 rwxr-xr-x )的文件

find 命令默認是以 遞歸 的方式檢索項目的,這有時候會導致得到的結果數量非常巨大。可以使用 -maxdepth 限制 find 命令遞歸的層數。

find / -maxdepth 3 搜索時向下遞歸的層數最大為 3

在之前的例子中有出現多個搜索條件的 組合 以及對某個搜索條件的 反轉
實際上 find 命令支持 「and」 「or」 兩種邏輯運算,對應的命令選項分別是 -a 和 -o 。通過這兩個選項可以對搜索條件進行更復雜的組合。

此外還可以使用 小括弧 對搜索條件進行 分組 。注意 find 命令中的小括弧常需要用 單引號 包裹起來。因小括弧在 Shell 中有特殊的含義。

如檢索 /usr 下文件名以 python 開頭且類型為目錄的文件
find /usr -type d -name 'python*'

該命令等同於:
find /usr -type d -a -name 'python*'

更復雜的組合形式如:
find / '(' -mmin -5 -o -mtime +50 ')' -a -type f

-delete 選項可以用來刪除搜索到的文件和目錄。

如刪除 home 目錄下所有的空目錄:
find ~ -type d -empty -delete

-exec 選項可以對搜索到的結果執行特定的命令。

如需要將 home 目錄下所有的 MP3 音頻文件復制到移動存儲設備(假設路徑是 /media/MyDrive ),可使用下面的命令:
find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ''

其中的 大括弧 ( {} )作為檢索到的文件的 佔位符 ,而分號( ; )作為命令結束的標志。因為分號是 Shell 中有特殊含義的符號,所以需要使用單引號括起來。
每當 find 命令檢索到一個符合條件的文件,會使用其完整路徑取代命令中的 {} ,然後執行 -exec 後面的命令一次。

另一個很重要的用法是,在多個文件中檢索某個指定的字元串。
如在用戶主目錄下的所有文件中檢索字元串 hello ,可以使用如下命令:
find ~ -type f -exec grep -l hello {} ''

創建 Gzip 格式的壓縮文件的命令為: tar -czvf filename.tar.gz <list of files>

現在假設需要將用戶主目錄下所有的 MP3 文件添加到壓縮包 music.tar.gz 中,直觀的感覺是,其命令應為如下形式:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} ''

實際情況是,這樣得到的 music.tar.gz 其實只包含一個 MP3 文件。
原因是 find 命令 每次 發現一個音頻文件,都會再執行一次 -exec 選項後面的壓縮命令。導致先前生成的壓縮包被覆蓋。

可以先讓 find 命令檢索出所有符合條件的音頻文件,再將得到的 文件列表 傳遞給後面的壓縮命令。完整的命令如下:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} +

如果想瀏覽搜索到的文件(目錄)的詳細信息(如許可權和大小等),可以直接使用 -ls 選項。

find / -type file -size +1G -ls 瀏覽所有 1G 以上大小的文件的詳細信息

A Guide to the Linux 「Find」 Command
find 命令手冊 : man find

熱點內容
手機無線路由器怎麼設置密碼 發布:2025-05-12 05:18:28 瀏覽:815
渝人解壓密碼 發布:2025-05-12 05:18:12 瀏覽:768
備份網站資料庫備份 發布:2025-05-12 05:04:35 瀏覽:53
轉移的存儲卡 發布:2025-05-12 04:51:18 瀏覽:467
c語言大數相加 發布:2025-05-12 04:51:13 瀏覽:589
安卓內存大小有什麼影響 發布:2025-05-12 04:41:36 瀏覽:50
以下c語言常量錯誤的是 發布:2025-05-12 04:40:39 瀏覽:808
怎麼降低qq版本安卓80 發布:2025-05-12 04:40:39 瀏覽:190
一個密碼多少人知道後就不是秘密 發布:2025-05-12 04:26:07 瀏覽:521
ftp埠非21 發布:2025-05-12 04:09:09 瀏覽:229