簡單的shell腳本代碼,Linux常用腳本命令總結

 2023-10-07 阅读 28 评论 0

摘要:基本操作通用操作1. export顯示所有的環境變量,也可以獲取到某個變量的詳細信息;export # 顯示所有 echo $SHELL # 只顯示SHELL 2. whereis使用系統自動構建的數據庫來搜索可執行文件;whereis python # 如果搜不到就不輸出 3. which它在環境變量PATH指定

基本操作

通用操作

1. export

顯示所有的環境變量,也可以獲取到某個變量的詳細信息;

export # 顯示所有
echo $SHELL # 只顯示SHELL

2. whereis

使用系統自動構建的數據庫來搜索可執行文件

whereis python # 如果搜不到就不輸出

3. which

它在環境變量PATH指定的目錄中搜索可執行文件。此命令將打印可執行文件的完整路徑。

which python # 如果搜不到就不輸出

4. clear

清除窗口上的內容。

文件操作

5. ls

ls # 顯示當前目錄下非隱藏文件與目錄
ls -a # 顯示當前目錄所有文件與目錄(包括非隱藏)
ls -lh  # 列出可讀文件和文件夾詳細信息
ls -lt  # 按最后修改時間列出文件和文件夾詳細信息
ls -ltr  # 以最后修改時間反序列出文件和文件夾詳細信息
ls -F  # 在每個輸出項后追加文件的類型標識符

6. touch

touch命令有兩個功能:一是用于把已存在文件的時間標簽更新為系統當前的時間(默認方式),它們的數據將原封不動地保留下來;二是用來創建新的空文件。

7. cat

cat命令連接文件并打印到標準輸出設備上,cat經常用來顯示文件的內容

注意:當文件較大時,文本在屏幕上迅速閃過(滾屏),用戶往往看不清所顯示的內容。簡單的shell腳本代碼?因此,一般用more等命令分屏顯示。為了控制滾屏,可以按Ctrl+S鍵,停止滾屏;按Ctrl+Q鍵可以恢復滾屏。按Ctrl+C(中斷)鍵可以終止該命令的執行,并且返回Shell提示符狀態。

cat file1 file2  # 同時打印file1和file2的內容
cat -n file1 # 在每行的前面加上行號
cat -n file1 file2 > file3 # 將同時打印file1和file2的內容合并到file3中

8. more

它以全屏幕的方式按頁顯示文本文件的內容

more -dc file # 顯示文件file的內容,但在顯示之前先清屏
more -c -10 file # 顯示文件file的內容,每10行顯示一次,而且在顯示之前先清屏

9. head

head命令用于顯示文件的開頭的內容。在默認情況下,head命令顯示文件的頭10行內容。運行shell腳本命令 sh。

head -n10 file  # 指定顯示頭部內容的行數
head -c10 file  # 指定顯示頭部內容的字符數

10. tail

tail命令用于輸入文件中的尾部內容。tail命令默認在屏幕上顯示指定文件的末尾10行

tail file (顯示文件file的最后10行) 
tail -n20 file (顯示文件file的最后20行) 
tail +20 file (顯示文件file的內容,從第20行至文件末尾) 
tail -c 10 file (顯示文件file的最后10個字符)

11. mv

mv命令用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。如果將一個文件移到一個已經存在的目標文件中,則目標文件的內容將被覆蓋。

mv file1 file2 # 將file1命名為file2
mv /uer/* .  # 將user目錄中的文件移動到當前目錄下

12. cp

cp命令用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。

注意:cp命令不能復制目錄,如果要復制目錄,則必須使用-R/-r選項,當“源文件”為多個文件時,要求“目標文件”為指定的目錄。shell腳本基本語法、

cp -p file1 file2 # 拷貝文件1到文件2,并保持文件的權限、屬主和時間戳
cp -i file1 file2 #拷貝file1到file2,如果file2存在會提示是否覆蓋
cp -r /usr/men /usr/zh # 將目錄/usr/men下的所有文件及其子目錄復制到目錄/usr/zh中

13. rm

rm命令可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。

rm -i file  # 刪除文件前先確認
rm -r *  # 刪除當前目錄下的所有文件和子目錄

14. diff

diff命令是以逐行的方式,比較文本文件的異同處。如果該命令指定進行目錄的比較,則將會比較該目錄中具有相同文件名的文件,而不會對其子目錄文件進行任何比較操作。

diff -w file1 file2 # 比較的時候忽略空白符

15. chmod

chmod命令用來變更文件或目錄的權限。

chmod ug+rwx file.txt # 給指定文件的屬主和屬組所有權限(包括讀、寫、執行)
chmod g-rwx file.txt # 刪除指定文件的屬組的所有權限
chmod -R ug+rwx dict # 修改目錄的權限,以及遞歸修改目錄下面所有文件和子目錄的權限

16. gzip

gzip是在Linux系統中經常使用的一個對文件進行壓縮和解壓縮的命令

gzip filename  # 壓縮文件
gzip dict  # 壓縮目錄下的文件
gzip -d filename # 解壓

17. gunzip

gunzip命令用來解壓縮文件。grep命令,gunzip是個使用廣泛的解壓縮程序,它用于解開被gzip壓縮過的文件,這些壓縮文件預設最后的擴展名為.gz。事實上gunzip就是gzip的硬連接,因此不論是壓縮或解壓縮,都可通過gzip指令單獨完成。

gzip –d /opt/etc.zip.gz |  gunzip /opt/etc.zip.gz  # 解壓當前目錄,效果相同
gzip -l /opt/etc.zip.gz  # 查看上述etc.zip.gz文件的壓縮信息。

19. lpr

lpr命令用于將文件發送給指定打印機進行打印,如果不指定目標打印機,則使用默認打印機。

lpr -P lp man1 man2  # 將man1和man2送到打印機lp進行打印(-P指定接受打印任務的目標打印機)

20. lpq

lpq命令用于顯示打印隊列中的打印任務的狀態信息。網絡命令及功能。

21. lprm

lprm命令用于刪除打印隊列中的打印任務。尚未完成的打印機任務會被放在打印機貯列之中,這個命令可用來將常未送到打印機的任務取消。

文本操作

22. awk

這個命令的作用特別多,其基本結構是BEGIN語句塊、能夠使用模式匹配的通用語句塊、END語句塊3部分組成,可選,任意一個都可以不出現在腳本中。

awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file

具體視題目而定,實在太多栗子。

23. grep

全面搜索正則表達式并把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。運行命令。

grep -i "the" demo_file  # 在文件中查找字符串(不區分大小寫)
grep -A 3 -i "example" demo_text  # 輸出成功匹配的行,以及該行之后的三行
grep -r "ramesh" *   #在當前目錄中遞歸查詢包含指定字符串的文件

參考文章

24. wc

wc命令用來計算數字。利用wc指令我們可以計算文件的Byte數、字數或是列數,若不指定文件名稱,或是所給予的文件名為“-”,則wc指令會從標準輸入設備讀取數據。

25. sed

sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用,功能不同凡響。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。linux基本命令的使用?文件內容并沒有 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。

參考文章

26. sort

將文件進行排序后輸出到標準輸出上。

這里比較常用的是-n-r-k,它們分別代表的是-n是按照數字大小排序,-r是以相反順序,-k是指定需要排序的欄位,-t指定欄位分隔符

#將CC列數字從大到小順序排列:
# sort -nrk 3 -t: sort.txt 
eee:40:5.4 
eee:60:5.1 
ddd:20:4.2ccc:50:3.3 bbb:10:2.5 aaa:30:1.6 AAA:BB:CC
# 只針對公司英文名稱的第二個字母進行排序,如果相同的按照員工工資進行降序排序:
$ sort -t ' ' -k 1.2,1.2 -nrk 3,3 facebook.txt 
baidu 100 5000 
google 110 5000 
sohu 100 4500 
guge 50 3000

由于只對第二個字母進行排序,所以我們使用了-k 1.2,1.2的表示方式,表示我們“只”對第二個字母進行排序。(如果你問“我使用-k 1.2怎么不行?”,當然不行,因為你省略了End部分,這就意味著你將對從第二個字母起到本域最后一個字符為止的字符串進行排序)。shell腳本命令,對于員工工資進行排 序,我們也使用了-k 3,3,這是最準確的表述,表示我們“只”對本域進行排序,因為如果你省略了后面的3,就變成了我們“對第3個域開始到最后一個域位置的內容進行排序” 了。

具體參考

27. uniq

通常和sort一起使用,在sort的參數中存在這么一個參數實現去除重復行

# 刪除重復行,下面三種方式都可以
uniq file.txt 
sort file.txt | uniq 
sort -u file.txt
# 只顯示出現一次的行
uniq -u file.txt 
sort file.txt | uniq -u
# 統計各行在文件中出現的次數:
sort file.txt | uniq -c
# 和前面相反的是,這里-d則找出重復的行 
sort file.txt | uniq -d

28. cut

比較重要的幾個選項是-f-d-c,它們分別代表的是顯示指定范圍的內容,指定字段的分隔符(之前默認的是空格),僅顯示指定范圍的字符

假定有如下信息:

cat test.txt 
#No Name Mark Percent 
#01 tom 69 91 
#02 jack 71 87 
#03 alex 68 98
# 輸出第二個到第三個的內容
cut -f2,3 test.txt 
#Name Mark 
#tom 69 
#jack 71 
#alex 68
# 假定文件內容發生了變化
#No;Name;Mark;Percent 
#01;tom;69;91 
#02;jack;71;87 
#03;alex;68;98
# 用;作區分,并且輸出第二個范圍的值
cut -f2 -d";" test2.txt 
#Name 
#tom 
#jack 
#alex
# 假定文件內容發生了變化
#abcd
#fghijk
#qrstu
# 打印第1個到第3個字符
cut -c1-3 test.txt
#abc
#fgh
#qrs

29. echo

echo命令用于在shell中打印shell變量的值,或者直接輸出指定的字符串。linux的echo命令,在shell編程中極為常用, 在終端下打印變量value的時候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。

30. fmt

fmt命令讀取文件的內容,根據選項的設置對文件格式進行簡單的優化處理,并將結果送到標準輸出設備。

31. tr

tr命令可以對來自標準輸入的字符進行替換、壓縮和刪除。腳本文件。

32. nl

nl命令讀取 file 參數(缺省情況下標準輸入),計算輸入中的行號,將計算過的行號寫入標準輸出。

33. egrep

egrep命令用于在文件內查找指定的字符串。

egrep Linux *

查找當前目錄下所有文件包含字符串中包含Linux的文件。

34. fgrep

fgrep命令是用來搜索 file 參數指定的輸入文件(缺省為標準輸入)中的匹配模式的行。

fgrep strcpy *.c

在當前目錄下所有以 .c 字符串結尾的文件中搜索字符串 strcpy。DOS命令?

目錄操作

35. mkdir

創建目錄

mkdir -m 700 /usr/meng/test

在目錄/usr/meng下建立子目錄test,并且只有文件主有讀、寫和執行權限,其他人無權訪問。

36. cd

切換目錄

cd 進入用戶主目錄; 
cd ~ 進入用戶主目錄; 
cd - 返回進入此目錄之前所在的目錄; 
cd .. 返回上級目錄(若當前目錄為“/“,則執行完后還在"/"".."為上級目錄的意思); 
cd ../.. 返回上兩級目錄;

37. pwd

pwd命令以絕對路徑的方式顯示用戶當前工作目錄。

SSH,系統信息 & 網絡操作

38. ssh

ssh命令是openssh套件中的客戶端連接工具,可以給予ssh加密協議實現安全的遠程登錄服務器。

39. whoami

whoami命令用于打印當前有效的用戶名稱,相當于執行id -un命令。

40. passwd

passwd命令用于設置用戶的認證信息,包括用戶密碼、密碼過期時間等。linux常用的20個命令、系統管理者則能用它管理系統用戶的密碼。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼。

41. quota

quota命令用于顯示用戶或者工作組的磁盤配額信息。

42. date

date命令是顯示或設置系統時間與日期。

date -d "1 day ago" +"%Y-%m-%d"

輸出昨天日期

44. uptime

uptime命令能夠打印系統總共運行了多長時間和系統的平均負載。100個必會的shell腳本、

45. w

w命令用于顯示已經登陸系統的用戶列表,并顯示用戶正在執行的指令。

46. finger

finger命令用于查找并顯示用戶信息。包括本地與遠端主機的用戶皆可,帳號名稱沒有大小寫的差別。

47. uname

uname命令用于打印當前系統相關信息(內核版本號、硬件架構、主機名稱和操作系統類型等)。

48. man

49. df

df命令用于顯示磁盤分區上的可使用的磁盤空間

50. du

du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看

51. last

last命令用于顯示用戶最近登錄信息。shell腳本基本命令大全、

52. ps

ps命令用于報告當前系統的進程狀態。

53. kill

kill命令用來刪除執行中的程序或工作。

54. killall

killall命令使用進程的名稱來殺死進程,使用此指令可以殺死一組同名進程。

55. top

top命令可以實時動態地查看系統的整體運行情況,是一個綜合了多方信息監測系統性能和運行信息的實用工具。

56. bg

bg命令用于將作業放到后臺運行,使前臺可以執行其他任務。腳本編寫?

57. fg

fg命令用于將后臺作業(在后臺運行的或者在后臺掛起的作業)放到前臺終端運行。

58. ping

ping命令用來測試主機之間網絡的連通性。

60. dig

dig命令是常用的域名查詢工具,可以用來測試域名系統工作是否正常。

61. wget

wget命令用來從指定的URL下載文件。

62. scp

scp命令用于在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的。

參考文章

10 分鐘學會Linux常用 bash命令W2School Linux 教程

轉載于:https://www.cnblogs.com/George1994/p/7299610.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息