Linux基礎教程之基礎命令總結
文件和目錄操作類
ls命令??list 列出指定目錄下的內容
語法格式: ls [OPTION]… [FILE]…
常用選項:
-a顯示所有文件和隱藏文件。
-A顯示除.和..之外的所有文件。
-l 長格式列表,顯示文件的詳細屬性信息
-h ?–human-readanle,把文件大小單位換算,換算后可能會是非精確值
-d ?查看目錄自身而非其內部文件列表
-r ?reverse,逆序顯示
-R ?recursive ?,遞歸顯示
-t ??顯示最后一次修改的文件
-n ?打印文件的UID和GID
-i ?顯示文件的inode信息
-t ?用文件和目錄的更改時間排序
-F ?在不同類型的文件的文件名結尾追加一個字符以示區別。可執行文件后加”*”,目錄后加”/”,管道文件后加”|”,套接字文件后加”=”,普通文件沒有后綴。比較有用。–full-time ?列出文件的完整時間格式
例如:顯示/etc里面所有的內容包含隱藏文件 ?ls ?-ali 最左邊一列是文件的inode信息。
出文件的完整時間格式 ls -ali –full-time
假如我在/tmp下面新建了一個hello.txt文件,可以用ls -lrt 進行逆序按時間排序出最下面找到它:
pwd命令???printing working directory 顯示當前工作目錄
cd 命令??change directory 切換目錄
cd ?不帶任何參數表示切換到家目錄
cd ?~ ?切回自己家目錄,波浪線~表示家目錄
cd ?~ ?USERNAME 切換到指定用戶家目錄
cd ?– ??上一次所在目錄和當前目錄之間來回切換
. ??????表示當前目錄
cd ?.. ??切換到當前目錄的上一級目錄
touch命令???用于創建一個新文件或修改文件時間戳
touch [OPTION]… FILE…
常用選項:
-c ??–no-create,指定的文件路徑不存在時不予創建
-a ??僅修改訪問時間access time
-m ?僅修改modify time(文件內容修改)
-t ??使用指定的日期時間,而非現在的時間
cp命令?copy 用于復制源文件或者目錄到
語法格式:單源復制:cp [OPTION]… [-T] SOURCE DEST
多源復制:cp [OPTION]… SOURCE… DIRECTORY
常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強制覆蓋目標文件;
-r, -R:遞歸復制目錄;
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a:-dR –preserve=all, archive,用于實現歸檔;
-p ??–preserv=
mode:權限
ownership:屬主和屬組
timestamps: 時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
保持指定的屬性(默認:模式,所有權,時間戳)
-P ??–no-dereference???不跟隨源文件中的符號鏈接
實例:單文件復制 復制/etc/fstab到tmp下 文件不存在時:
[root@dxl /tmp 14:35:16]# cp /etc/fstab .
[root@dxl /tmp 14:36:44]# ls
1.txt ?22 ?33 ?fstab ?functions ?hello.txt ?test.txt
復制目錄時目標文件夾存在,則把源目錄里面的內容復制到目標文件夾里面。要是目標不存在則創建。
mkdir命令??創建目錄make directories
語法格式: mkdir [OPTION]… DIRECTORY…
常用選項:
-p ?通俗地說對于不存在的父和子目錄一起創建出來
-v 顯示過程
-m 直接給定權限
注意:路徑基名方為命令的作用對象;基名之前的路徑必須得存在;
例如:在tmp下面創建目錄centos/a/b/c
[root@dxl /tmp 15:16:35]# mkdir -pv /tmp/centos/a/b/c
mkdir: created directory `/tmp/centos’
mkdir: created directory `/tmp/centos/a’
mkdir: created directory `/tmp/centos/a/b’
mkdir: created directory `/tmp/centos/a/b/c’
mv 移動命令,還可以對文件進行重命名
語法格式:mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用選項:-f強制移動
-i 交互式
例如:把tmp下面的1.txt移動到tom文件夾里面并命名為2.txt。
[root@dxl /tmp 15:23:17]# mv 1.txt ?./tom/2.txt
rm ? ?刪除命令remove
語法格式: rm [OPTION]… FILE…
常用選項:-f 強制刪除
-i ?交互
-r ?將參數中列出的全部目錄和子目錄均遞歸地刪除
注意:刪除命令是一個非常危險的操作,所有不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站),過段時間后,非常明確肯定不要了再刪除。
開關機類命令(線上服務器禁用)
shutdown 關機命令
語法格式 shutdown [OPTIONS…] [TIME] [WALL…]
常用選項:
-r ?關機后重啟
-h 將系統關機
-c ?取消關機
例如:shutdnow -h -now馬上關機 ?shutdnow ?+30 :30分鐘后關機
halt ? 關機
poweroff ?關閉系統并且切斷電源
-n:關閉操作系統時不執行sync操作;
-w:不真正關閉操作系統,僅在日志文件“/var/log/wtmp”中;
-d:關閉操作系統時,不將操作寫入日志文件“/var/log/wtmp”中添加相應的記錄;
-f:強制關閉操作系統;
-i:關閉操作系統之前關閉所有的網絡接口;
-h:關閉操作系統之前將系統中所有的硬件設置為備用模式。
如果確認系統中已經沒有用戶存在且所有數據都已保存,需要立即關閉系統,可以使用poweroff命令。
reboot 重啟命令??用來重新啟動正在運行的Linux操作系統
?
文本查看類命令
cat命令??concatenate查看文本文件內容
語法格式cat [OPTION]… [FILE]…
常用選項
-n 給每行編號,包括空行
-E 顯示空格符,包括空行
tac命令?將文件以行為單位反序輸出,最后一行先顯示
語法格式 tac [OPTION]… [FILE]…
less命令???翻屏查看文件
less file
按一下回車鍵往文件尾部查看一行,按空格鍵往文件尾部翻一屏
按pageup和pagedown鍵前后翻屏,按上下箭頭可以上下翻一行
more命令 ?從頭到尾查看文件,不可以回頭,不是很好用
head命令 ??顯示文件的前n行,默認是顯示前十行
語法格式:head?[參數]…?[文件]…
常用選項:-v?顯示文件名
-c<字節>?顯示字節數。??head ?-c 50 /etc/rc.d/init.d/functions 顯示前50字節,要是改為-50.則顯示文件后50字節。
-n<行數>?顯示的行數。顯示文件的前50行:head ?-50 /etc/rc.d/init.d/functions
tail命令??顯示指定文件末尾內容,不指定文件時,作為輸入信息進行處理。常用查看日志文件。
語法格式:tail [選項] ?文件
常用選項 -n ?:查看文件尾部n行
-f:查看文件尾部內容結束后不退出,接著顯示更新的行。很有用
例如: tail -3f ?/tmp/functions ?查看functions文件尾部3行后不退出
?stat命令:顯示文件和文件的系統熟性,包括文件名,大小,時間戳等信息,通俗地說就像我們看到windows右鍵,文件屬性看到的信息類似。
例如
[root@dxl ~ 10:30:55]# stat /tmp/functions
File: `/tmp/functions’
Size: 25427 ??????????Blocks: 56 ????????IO Block: 4096 ??regular file
Device: 803h/2051d ?????Inode: 391743 ?????Links: 1
Access: (0644/-rw-r–r–) ?Uid: ( ???0/ ???root) ??Gid: ( ???0/ ???root)
Access: 2017-09-17 10:18:47.899001385 +0800
Modify: 1982-09-19 08:08:39.000000000 +0800
Change: 2017-09-16 13:44:53.754984934 +0800
日期時間類
date命令??用來顯示或設定系統的日期與時間。只有root用戶可用。當系統正有一個以上的用戶在運行時,不要更改日期。
語法格式:Pdate [OTION]… [+FORMAT]
常用格式符:
%F 以年-月-日顯示 。例如
[root@dxl ~ 11:10:31]# date +%F
2017-09-17
%T ?時間,包含時分秒
%Y ?年份,四位顯示
%m ?月份,01-12顯示
%d ??日期,01-31顯示
%H ?小時,00-23顯示
%M ?分鐘00-59顯示
%S ?秒
%s: 從1970年1月1號(unix元年)0點0分0秒到命令執行那一刻經過的秒數;
設定日期格式:date [月日小時分鐘年(可用四位也可以兩位)][.秒]例如
[root@dxl ~ 11:32:25]# date 062811282010.10
Mon Jun 28 11:28:10 CST 2010
[root@dxl ~ 11:28:10]# date 0628112811.10
Tue Jun 28 11:28:10 CST 2011
clock=hwclock ??硬件時鐘命令??顯示或設定硬件時鐘
-s, –htocsys:以硬件為準,把系統調整為與硬件時間相同;
例如:我的系統時間不對了
[root@dxl ~ 12:09:29]# date
Tue Jun 28 12:09:33 CST 2011
[root@dxl ~ 12:09:33]# hwclock
Sun 17 Sep 2017 12:18:56 PM CST ?-0.783353 seconds
[root@dxl ~ 12:09:57]# hwclock -s
[root@dxl ~ 12:19:12]# datte
-bash: datte: command not found
[root@dxl ~ 12:19:14]# date
Sun Sep 17 12:19:20 CST 2017
-w, –systohc:以系統為準,把硬件時間調整為與系統時鐘相同;
網絡相關類
ifconfig ?或ip addr list??查看活動接口的ip地址
ss命令??ss是Socket?Statistics的縮寫。顧名思義,ss命令可以用來獲取socket統計信息,它可以顯示和netstat類似的內容。但ss的優勢在于它能夠顯示更多更詳細的有關TCP和連接狀態的信息,而且比netstat更快速更高效。
例如查看22端口狀態 :ss ?-tnl
[root@dxl ~ 12:35:54]# ss -tnl
State ?????Recv-Q Send-Q ???????Local Address:Port ?????????Peer Address:Port
LISTEN ????0 ?????128 ?????????????????????:::22 ?????????????????????:::*
LISTEN ????0 ?????128 ??????????????????????*:22 ??????????????????????*:*
LISTEN ????0 ?????100 ????????????????????::1:25 ?????????????????????:::*
LISTEN ????0 ?????100 ??????????????127.0.0.1:25 ??????????????????????*:*
ping命令??測試網絡的目標主機和當前主機的連通性 ?,例如
[root@dxl ~ 12:24:59]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39: icmp_seq=1 ttl=55 time=7.17 ms
64 bytes from 14.215.177.39: icmp_seq=2 ttl=55 time=6.11 ms
….
這表示網絡可以連通
?
用戶管理類
useradd ?添加用戶命令
例如~]# useradd -s /bin/tcsh centos7 ?添加一個叫centos7的用戶并指定它的shell為tcsh
搜索和查詢類
file命令??查看文件內容類型
例如
[root@dxl /tmp 16:56:00]# file /etc/fstab
/etc/fstab: ASCII text
可以知道fstab是一個標準的文本文件
type命令??判斷一個命令是外部命令還是內部命令
語法格式 type ?COMMAND
help命令?用于shell內部命令的幫助信息
語法格式 help COMMAND
man ?命令 ??幫助手冊
語法格式 man COMMAND
Info命令??在線獲取命令幫助
which命令??用于查找某個可執行的命令文件的位置
格式 which ?命令名稱
例如:
[root@dxl /tmp 17:13:02]# which passwd
/usr/bin/passwd
whereis命令?只能用于程序名的搜索,而且只搜索二進制文件??例如:whereis ls
語法格式whereis [options] name…
常用選項:
-b:僅搜索二進制程序路徑
-m:僅搜索使用手冊文件路徑;
who命令??識別當前登錄的用戶,顯示關于 當前在本地系統上的所有用戶的信息
w命令??顯示目前登入系統的用戶信息
語 法:w?[-fhlsuV][用戶名稱]
常用選項:
-f? 開啟或關閉顯示用戶從何處登入系統。
-h? 不顯示各欄位的標題信息列。
-l? 使用詳細格式列表,此為預設值。
-s? 使用簡潔格式列表,不顯示用戶登入時間,終端機階段作業和程序所耗費的CPU時間。
-u? 忽略執行程序的名稱,以及該程序耗費CPU時間的信息。
-V? 顯示版本信息。
history命令 ?命令歷史是bash基礎特性之一
history命令默認最大的保存條數是1000條,存放在用戶家目錄下.bash_history
控制history條數的環境變量:HISTSIZE 控制當前shell進程可保留的條數
HISTFILESIZE:控制命令歷史文件.bash_history保存的條數
HISTSIZE=100
HISTFILESIZE=100 ?這兩行追加到 當前用戶家目錄下的.bash_profile 文件中就可以改變默認值,要是都設為零,那么久禁用了歷史命令記錄。
命令用法:
history -c 清除當前shell進程中的命令記錄
history -d offset:刪除歷史記錄的第n條命令,例如:history -d5 刪除第五條命令記錄
history -r:從歷史文件列表到當前歷史記錄列表中
history -w:
調用命令歷史列表的命令
!!或ctrl+p :重復執行上一次命令
!n :執行歷史命令列表第n條命令,例如!5,執行命令列表第5條命令
!STRING:執行命令歷史列表中最近一個以STRING開頭的命令。還可以輸入Ctrl+R進行搜索。
小技巧:調用上一條命令的最后一個參數:
快捷鍵:ESC, .
字符串:!$
例如:我執行了ls /etc/sysconfig/network-scripts/ifcfg-eth后,然后在其他命令想再調用后面的參數/etc/sysconfig/network-scripts/ifcfg-eth ,先按下ESC鍵再按. ?就會引用進來。很實用。
其它類
tty ?顯示當前終端 ?例如
[root@dxl ~ 12:45:49]# tty
/dev/pts/0
偽終端是pty。
虛擬終端tty,centos7啟動后默認有6個tty1–tty6,alt+F1-F6鍵切換
串行終端ttyS:用于串行試逐位數據傳輸,常見有25針9針連接器。
物理終端,控制臺:console,
echo命令??打印或輸出內容,查詢變量值,常用于編程
[root@dxl ~ 12:46:19]# echo $HISTSIZE
1000
[root@dxl ~ 18:13:37]# echo $HISTFILESIZE
1000
語 法:echo [-ne][字符串]或 echo [–help][–version]
補充說明:echo會將輸入的字符串送往標準輸出。輸出的字符串間以空白字符隔開, 并在最后加上換行號。
參 數:-n 不要在最后自動換行
-e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般
文字輸出:
a 發出警告聲;
b 刪除前一個字符;
c 最后不加上換行符號;
f 換行但光標仍舊停留在原來的位置;
n 換行且光標移至行首;
r 光標移至行首,但不換行;
t 插入tab;
v 與f相同;
\ 插入字符;
nnn 插入nnn(八進制)所代表的ASCII字符;
–help 顯示幫助
–version 顯示版本信息export命令???設置或顯示環境變量。(比如我們要用一個命令,但這個命令的執行文件不在當前目錄,這樣我們每次用的時候必須指定執行文件的目錄,麻煩,在代碼中先執行export,這個相當于告訴程序,執行某某東西時,需要的文件或什么東東在這些目錄里)
語 法:export [-fnp][變量名稱]=[變量設置值]
補充說明:在shell中執行程序時,shell會提供一組環境變量。 export可新增,修改或刪除環境變量,供后續執行的程序使用。export的效力僅及于該此登陸操作。
參 數:
-f 代表[變量名稱]中為函數名稱。
-n 刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中。
-p 列出所有的shell賦予程序的環境變量。
一個變量創建時,它不會自動地為在它之后創建的shell進程所知。而命令export可以向后面的shell傳遞變量的值。當一個shell腳本調用并執行時,它不會自動得到原為腳本(調用者)里定義的變量的訪問權,除非這些變量已經被顯式地設置為可用。export命令可以用于傳遞一個或多個變量的值到任何后繼腳本。 —-《UNIX教程》startx??在虛擬終端接口輸入命令 startx &,可以啟動圖像界面接口
寫得不是很完善,有錯的地方請各位朋友幫指正。等到就業班課程看完程后再來個詳細的總結。