1. 程式人生 > >Linux系統常用命令及其使用方法

Linux系統常用命令及其使用方法

系統 運維

1.echo (printf)
echo - display a line of text - 顯示一行文本

常用選項:
-n:不換行;
-e:使 "\"生效;(eg:\n:換行,\t:水平制表符)
文本顏色標識方法:
\033:代表Ctrl鍵
[:控制字符和顏色代碼之間的分隔符;
所有顏色代碼都需要使用m結尾;

顏色代碼:
0:關閉顏色顯示屬性,恢復為黑白色;
1:加粗顯示文本字符;
4:為文本字符添加下劃線;
5:是文本字符閃爍;
7:將文本字符的背景顏色和前景顏色交換;
8:將文本字符的背景顏色設置為與前景色相同;

30-39:設置文本字符的前景色,38,39為保留,暫時未被使用;
40-49:設置文本字符的背景色,48,49為保留,暫時未被使用;
eg:~]# echo -e "\033[1;31mboom\033[0m"

2.cd
Change the shell working directory - 切換工作目錄

cd /PATH/TO/SOMEDIR:將工作目錄切換至參數所代表的目錄;
cd:將工作目錄切換至當前登錄用戶的家目錄;相當於cd ~;
cd -:將工作目錄切換至此前最後一次的工作目錄;
cd ~USERNAME:將工作目錄切換至指定用戶的家目錄中;

3.pwd
Print the name of the current working directory - 輸出當前工作目錄
shell提供了兩個變量:PWD,OLDPWD
PWD:當前工作目錄
OLDPWD:上一級工作目錄
4.ls
ls - list directory contents - ;列表文件內容
目錄的內容即是文件名;

常用選項:
-a, --all:顯示所有文件,包括隱藏文件;(在Linux的文件系統中,所有以"."作為文件名的起始字符的文件,都是隱藏文件)
-A, --almost-all:顯示除了"."和".."之外的所有文件,包括隱藏文件;
--color[=WHEN]:以不同的顏色來顯示查詢結果;
-h, --human-readable:在顯示文件的大小的時候,顯示為更加易讀的格式;通常與-l選項一同使用;
-l:使用長列表格式顯示文件的詳細屬性;
-rw-------. 1 root root 1458 12月 23 2016 anaconda-ks.cfg
-:表示文件類型;
rw-------:文件的權限位設置;
.:表示該文件是否具有特殊屬性或擴展屬性;
1:表示該文件被硬鏈接的次數;
root:文件的屬主(所有者)
root:文件的屬組
1458:表示文件的大小,在沒有使用-h選項時,其單位為字節;
12月 23 2016:文件的時間戳之一,表示最後一次被修改的時間;
anaconda-ks.cfg:文件名
對於設備文件:
~]# ls -l /dev/sr0
brw-rw----. 1 root cdrom 11, 0 9月 24 10:50 /dev/sr0
11, 0:major, minor
major:主設備號,用於標識設備類型,進而確定需要加載何種驅動程序;
minor:次設備號,用於標識同一種設備類型中的不同的設備;
設備號默認使用8位二進制表示,所以默認的設備號的範圍是0-255;
-r, --reverse:倒序輸出結果
-R, --recursive:遞歸顯示,如果目標目錄中有子目錄,則遞歸顯示子目錄的內容,依次遞歸下去;
-Z, --context:顯示文件的SELinux安全上下文標簽;

5.mkdir
mkdir - make directories - 創建新目錄
常用選項:
-p, --parents:在創建目錄的時候,如果其父目錄不存在,則優先創建之;
-v, --verbose:為每個被創建的目錄顯示一條信息;

6.rm
rm - remove files or directories - 刪除文件或目錄
常用選項:
-f, --force:暴力,強制刪除;不彈出詢問信息;
-r, -R, --recursive:遞歸刪除目錄及目錄中的內容;



7.touch
touch - change file timestamps - 修改文件的時間戳
常用選項:
-c, --no-create:不創建任何文件;
-a:僅修改文件的訪問時間戳;
-m:僅修改文件的修改時間戳;
-t STAMP:使用指定的STAMP替換文件的時間戳;
STAMP的格式為:[[CC]YY]MMDDhhmm[.ss]
如果沒有指定-c選項的話,touch命令可用作創建文件;


8.stat
stat - display file or file system status - 顯示文件或文件系統的狀態
常用選項:
-c, --format=FORMAT:以指定的格式顯示文件的指定狀態屬性;
FORMAT:
%b 文件的總數據塊
%d 文件系統中空閑文件節點數
%f 文件系統中的空閑塊
%i 文件的inode號
%l 文件名的最大長度
%n 文件名
%s 文件大小



9.nano:文本模式下的全屏編輯工具;
nano界面下:
^:脫字符,表示鍵盤上的Ctrl按鍵;
^+o:保存文檔內容;
^+x:退出編輯界面;

10.cat
cat - concatenate files and print on the standard output - 連接文件並在標準輸出顯示
常用選項:
-b, --number-nonblank:對非空白行進行編號輸出;
-n, --number:對所有行編號輸出;
-s, --squeeze-blank:合並連續的空白行;
-E, --show-ends:在行尾以$字符顯示;

tac - concatenate and print files in reverse - 基於cat命令反向輸出結果

註意:cat或tac命令,如果沒有給出參數,則所有的內容需要通過標準輸入(從鍵盤鍵入)完成;而後可以使用"^+c"或者"^+d"退出即可;

11.head
head - output the first part of files - 輸出文件的起始部分;
常用選項:
-c, --bytes=[-]K:以字節為單位顯示相應長度的內容;
-n, --lines=[-]K:以行為單位顯示相應長度的內容;
-# :顯示前#行

K may have a multiplier suffix:b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.
如果不使用任何選項,則默認顯示指定文件內容的前10行;

12.tail
tail - output the last part of files - 輸出文件的最終部分;
常用選項:
-c, --bytes=[-]K:以字節為單位顯示相應長度的內容;
-n, --lines=[-]K:以行為單位顯示相應長度的內容;可以使用-#K方式替換-n #K;
-f, --follow[={name|descriptor}]:監控文件末尾的變化;
eg: ~]# tail -f /etc/a.txt 占用標準輸出持續監控該文件的變化

13.more
more - file perusal filter for crt viewing - 分頁顯示文檔內容,過濾;

交互式編輯方法:
可以使用"/"根據後續給出的字符串組合進行查找過濾;
可以使用"n"找到下一個匹配項;
使用"q"退出more模式;
使用Enter,可以向下翻一行;
使用Space,可以向下翻一頁;

14.less
less - opposite of more - 與more相對應的命令

交互式編輯方法:
可以使用"/"或"?"根據後續給出的字符串組合進行查找過濾;
可以使用"n"或"N"找到下一個匹配項;
使用"q"退出more模式;
使用Enter,可以向下翻一行;
使用Space,可以向下翻一頁;

15.date
操作系統時間,簡稱系統時間;使用軟件模式的時鐘記錄的時間;
date - print or set the system date and time - 打印或設置系統日期和時間

常用選項:
-s, --set STRING:設置系統時間為指定的時間;
兩種格式:
1) MMDDHHmm[[CC]YY][.ss]
2) "CCYY-MM-DD HH:mm:ss"或"CCYY/MM/DD HH:mm:ss"
eg:~]# date -s 2018-4-3 +20:55:22
FORMAT:
%F:表示完整的年月日格式,即:YY-mm-dd
%T:表示完整的時分秒格式,及:HH:MM:SS
%Y:表示完整年份
%m:表示月份
%d:表示日期
%H:表示小時
%M:表示分鐘
%S:表示秒鐘
%s:時間戳,從1970-01-01 00:00:00到當前系統時間所經歷的秒數;
註意:1970年1月1日作為Unix元年;
此時間戳是由32位二進制表示的,所以其表示的最大範圍0~4294967295;

16.clock/hwclock
hwclock - query or set the hardware clock (RTC) - 查詢或設置硬件時鐘(RTC)

常用選項:
-s, --hctosys:根據硬件時鐘設置系統時間;
-w, --systohc:根據系統時間設置硬件時鐘;(不推薦)

17.cal - 顯示一個日歷


18.cp
cp - 復制文件和目錄
格式:cp [OPTION]... [-T] SOURCE DEST:單源復制
cp [OPTION]... SOURCE... DIRECTORY:多源復制

1) cp命令至少要接兩個參數;
2) 最後一個參數,通常是此次復制到的目標位置;
3) 如果在復制時給出的目標是目錄,則直接將文件復制到指定的目錄中,保留原文件名;如果在復制非目錄文件時,給出的目標時非目錄的文件,則此次操作時復制並改名;

常用選項:
-R, -r, --recursive:遞歸地復制目錄文件;
-d same as --no-dereference --preserve=links
復制的源文件是符號鏈接文件時,-d選項可以保留該符號鏈接文件作為此次的源文件被復制,而不會復制該符號鏈接文件所指向的那個文件;
-p same as --preserve=mode,ownership,timestamps
復制的源文件中的權限位、所有權及時間戳屬性會保留下來;
-a, --archive same as -dR --preserve=all
相當於-dpr的組合;
-f, --force:如果目標文件已經存在,則強制復制並且不提示;想要使該選項生效,執行cp命令時,需要在cp前面加上"\",即:# \cp Source_file Destination_file

19.mv
mv - move (rename) files - 移動或重命名文件
格式:
mv [OPTION]... [-T] SOURCE DEST:單源移動
mv [OPTION]... SOURCE... DIRECTORY:多源移動

常用選項:
-f, --force:移動文件並強制覆蓋目標位置同名文件;不給提示;
-n, --no-clobber:移動文件時,如果源文件與目標位置中的文件重名,則不移動;

20.alias
alias - 定義或顯示別名。
格式:alias [-p] [名稱[=值] ... ]
註意:如果alias命令不帶任何選項和參數,則表示顯示所有已經定義並生效的別名設置;

# alias ALIAS='COMMAND [OPTION]... [ARGUMENT]...'

unalias
unalias - 從別名定義列表中刪除每一個"名字"。
格式:unalias [-a] 名稱 [名稱 ...]

註意:
無論使用alias命令還是使用unalias命令,其功能都會立即生效;此二命令的生命期僅為當前shell的生命期;一旦註銷登錄,相當於關閉了bash,則使用alias命令定義的別名或使用unalias命令刪除的別名操作,會立即失效;

對於每個用戶來說,都有一個私有的bash的配置文件,就在用戶的家目錄中的一個隱藏文件,文件名為".bashrc",其主要功能就是用來保存命令的別名的定義;

註意:
在對於此文件中的命令別名進行編輯並保存之後,在當前已經運行的bash中並不會立即生效,需要重新加載此文件才能使配置生效,以下兩種操作皆可實現:
1.重啟bash:註銷之後再次登錄即可;
2.執行文件中定義的命令:使用source命令,或者.命令;
eg:~]# source .bashrc

source - 在當前 shell 中執行一個文件中的命令。
. - 在當前 shell 中執行一個文件中的命令。

Linux系統常用命令及其使用方法