命令優先級
- 別名-->內部命令-->外部命令
常見命令
a
-
alias name='command'
alias命令用來設置指令的別名
alias(選項)(參數)
-p:打印已經設置的命令別名。
別名設置寫在文件裏,有兩個⽂件可以寫,~/.bashrc⽂件僅當對當前⽤戶,/etc/bashrc⽂件是對所有⽤戶有效。
要刪除一個別名,可以使用 unalias 命令
如果不想使用別名,在命令前使用 \ 就可以了
在命令行中定義的別名,僅對當前shell進程有效
如果想永久有效,要定義在配置文件中:
> 1. 僅對當前用戶有效:~/.bashrc
> 2. 對所有用戶有效:/etc/bashrc
b
-
bc
Linux內置計算器
輸出二進制 obase=2
輸入二進制 ibase=2 -
basename
用於打印目錄或者文件的基本名稱
basename和dirname命令通常用於shell腳本中的命令替換來指定和指定的輸入文件名稱有所差異的輸出文件名稱
c
-
cd
切換工作目錄
cd 進入用戶主目錄;
cd ~ 進入用戶主目錄;
cd - 返回進入此目錄之前所在的目錄;
cd .. 返回上級目錄(若當前目錄爲“/“,則執行完後還在“/";".."爲上級目錄的意思);
cd ../.. 返回上兩級目錄;
cd !$ 把上個命令的參數作爲cd參數使用。 -
cp
將一個或多個源文件或者目錄複製到指定的目的文件或目錄。它可以將單個源文件複製成一個指定文件名的具體的文件或一個已經存在的目錄下。cp命令還支持同時複製多個文件,當一次複製多個文件時,目標文件參數必須是一個已經存在的目錄,否則將出現錯誤。
-i:覆蓋前提示
-n:不覆蓋,注意兩者順序
-r,-R:遞歸複製目錄及內部的所有內容
-a:歸檔,相當於-dR --perserv=all
-d --no-dereference --preserv=link=:不復制原文件,只複製鏈接名
-p:保留源文件或目錄的屬性
-b:覆蓋已存在的文件目標前將目標文件備份
-l:對源文件建立硬鏈接,而非複製文件 -
clock
調整內置硬件時間,執行這項指令獲取當前的時間
clock -s和clock -w 實現系統時間和硬件時間的同步
-
cal
顯示當前日曆,或者指定日期的日曆
cal(選項)(參數)
-y:顯示當前年的日曆 -
cat
顯示文件的內容
-n:有1開始對所有輸出的行數編號;
-b:和-n相似,只不過對於空白行不編號; -s:當遇到有連續兩行以上的空白行,就代換爲一行的空白行
cat m1 (在屏幕上顯示文件ml的內容)
cat m1 m2 (同時顯示文件ml和m2的內容)
cat m1 m2 > file (將文件ml和m2合併後放入文件file中)
d
-
df
用於顯示磁盤分區上的可使用的磁盤空間。
可以獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息。-a:包含全部的文件系統
-h:以可讀性較高的方式來顯示信息
-i:顯示inode的信息
-k:指定區塊大小的1024字節
-m:指定區塊大小爲1048576字節
--help:顯示幫助 -
date
顯示或設置系統時間與日期-d<字符串>:顯示字符串所指的日期與時間。字符串前後必須加上雙引號;
-s<字符串>:根據字符串來設置日期與時間。字符串前後必須加上雙引號
%H 小時,24小時制(00~23)
%I 小時,12小時制(01~12)
%k 小時,24小時制(0~23)
%l 小時,12小時制(1~12)
%M 分鐘(00~59)
%p 顯示出AM或PM
%r 顯示時間,12小時制(hh:mm:ss %p)
%s 從1970年1月1日00:00:00到目前經歷的秒數
%S 顯示秒(00~59)
%T 顯示時間,24小時制(hh:mm:ss)
%X 顯示時間的格式(%H:%M:%S)
%Z 顯示時區,日期域(CST)
%a 星期的簡稱(Sun~Sat)
%A 星期的全稱(Sunday~Saturday)
%h,%b 月的簡稱(Jan~Dec)
%B 月的全稱(January~December)
%c 日期和時間(Tue Nov 20 14:12:58 2012)
%d 一個月的第幾天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第幾天(001~366)
%m 月份(01~12)
%w 一個星期的第幾天(0代表星期天)
%W 一年的第幾個星期(00~53,星期一爲第一天)
%y 年的最後兩個數字(1999則是99)
[root@CentOS7 data]#date +%F
2019-03-07
-
dirname
去除文件名中的非目錄部分,僅顯示與目錄有關的內容。
dirname命令讀取指定路徑名保留最後一個/及其後面的字符,刪除其他部分,並寫結果到標準輸出。如果最後一個/後無字符,dirname 命令使用倒數第二個/,並忽略其後的所有字符。
e
-
exit
退出當前shell狀態
-
enable
臨時關閉或者激活指定的shell內部命令
-n:關閉指定的內部命令
-a:顯示所有激活的內部命令
-f:從指定文件中讀取內部命令 -
echo
輸出指定的字符串
-n:不自動換行
-e:激活轉義字符,啓用字符解釋功能
單引號'':六親不認
雙引號"":不識別命令,只識別變量
反引號``:命令識別 -
export
用於將shell變量輸出爲環境變量,或者將shell函數輸出爲環境變量
一個變量創建時,它不會自動地爲在它之後創建的shell進程所知。而命令export可以向後面的shell傳遞變量的值。當一個shell腳本調用並執 行時,它不會自動得到原爲腳本(調用者)裏定義的變量的訪問權,除非這些變量已經被顯式地設置爲可用。export命令可以用於傳遞一個或多個變量的值到任何後繼腳本。
[root@CentOS7 ~]#echo $HISTSIZE
1000
[root@CentOS7 ~]#export HISTSIZE=2000
[root@CentOS7 ~]#echo $HISTSIZE
2000
f
-
free
顯示當前系統未使用的和已使用的內存數目,還可以顯示被內核使用的內存緩衝區
-b:以Byte爲單位顯示內存使用情況;
-k:以KB爲單位顯示內存使用情況;
-m:以MB爲單位顯示內存使用情況;
-s<間隔秒數>:持續觀察內存使用狀況;
-t:顯示內存總和列;
-V:顯示版本信息。
h
-
history
單獨使用時顯示歷史命令,在命令行中,可以使用!執行指定序號的歷史命令。例如:要執行第n個歷史命令,則輸入!n
歷史命令是被保存在內存中的,當退出或登陸shell時,會自動保存或讀取。在內存中,歷史命令僅能夠存儲1000條歷史命令,該數量是由環境變量HISTSIZE進行控制的。
-c:清空當前歷史命令;
-a:將歷史命令緩衝區中命令寫入歷史命令文件中;
-r:將歷史命令文件中的命令讀入當前歷史命令緩衝區;
-w:將當前歷史命令緩衝區命令寫入歷史命令文件中。
history n:打印最近的n條歷史命令
-
hexdump
查看二進制文件的十六進制編碼
-
help
顯示shell內部命令的幫助信息
-
hash
哈希表:每當執行一條命令的時候,hash表會記錄下這條命令的路徑,相當於緩存。第一次執行命令,shell解釋器會從PATH路徑下尋找該命令的路徑,當第二次使用該命令時,shell解釋器首先會查看hash表,沒有該命令纔會去PATH路徑下尋找,大大提高了命令的速率。
-d name:清空name緩存
-r:清空所有緩存 -
hostname
主機名顯示,在環境變量HOSTNAME中也保存了當前的主機名
echo $HOSTNAME也可以查看主機名 -
hwclock
硬件時鐘工具,顯示當前時間
-
halt
關閉正在運行的Linux操作系統
-p:關閉系統後關閉電源
-
history
顯示歷史命令
-c:清空當前歷史命令
-d:刪除指定的某一條命令
-a:將歷史命令緩衝區中命令寫入歷史命令文件中
-r:將歷史命令文件中的命令讀入當前歷史命令緩衝區
-w:將當前歷史命令緩衝區命令寫入歷史命令文件中
-p:展開歷史參數成多行,但不存在歷史命令列表裏
-s:僞造歷史命令
i
-
info
Linux下info格式的幫助指令
-
init
進程初始化工具
運行級別:
#0 停機(千萬不能把initdefault 設置爲0)
#1 單用戶模式
#2 多用戶,沒有 NFS(和級別3相似,會停止部分服務)
#3 完全多用戶模式,字符界面
#4 沒有用到
#5 圖形化界面
#6 重新啓動(千萬不要把initdefault 設置爲6) -
id
id命令可以顯示真實有效的用戶ID(UID)和組ID(GID)
-g或--group 顯示用戶所屬羣組的ID
-u或--user 顯示用戶ID -
ifconfig
ifconfig命令用於顯示激活狀態的網絡設備信息
HWaddr表示網卡的物理地址(MAC地址),inet addr用來表示網卡的IP地址,broadcast用來表示廣播地址,netmask用來表示子網掩碼地址
lo表示主機的迴環地址 -
info
Linux下info格式的幫助指令。
l
-
lsblk
用於列出所有可用塊設備的信息,而且還能顯示他們之間的依賴關係
-a, --all 顯示所有設備。
-b, --bytes 以bytes方式顯示設備大小。
-e, --exclude <list> 排除設備 (default: RAM disks)。
-f, --fs 顯示文件系統信息。
-h, --help 顯示幫助信息。
-m, --perms 顯示權限信息。
-l, --list 使用列表格式顯示。
-n, --noheadings 不顯示標題。
-o, --output <list> 輸出列。
-P, --pairs 使用key="value"格式顯示。
-r, --raw 使用原始格式顯示。
-t, --topology 顯示拓撲結構信息。 -
lsb_release
查看當前系統的發行版信息
-v:查看LSB本身的版本信息
-a:打印本系統發行版的所有信息,比如發行版的ID,描述信息,具體版本,代號
-d -s:查看發行版的描述信息 -
lscpu
查看系統CPU的統計信息
也可通過cat /proc/cpuinfo 查看文件進行查看cpu信息
-
ln
創建鏈接文件,鏈接類型分爲硬鏈接和符號鏈接(也稱爲:軟鏈接)
-b或--backup:刪除,覆蓋目標文件之前的備份;
-d或-F或——directory:建立目錄的硬連接;
-f或——force:強行建立文件或目錄的連接,不論文件或目錄是否存在;
-i或——interactive:覆蓋既有文件之前先詢問用戶;
-n或--no-dereference:把符號連接的目的目錄視爲一般文件;
-s或——symbolic:對源文件建立符號連接,而非硬連接;
-S<字尾備份字符串>或--suffix=<字尾備份字符串>:用"-b"參數備份目標文件後,備份文件的字尾會被加上一個備份字符串,預設的備份字符串是符號“~”,用戶可通過“-S”參數來改變它;
-v或——verbose:顯示指令執行過程
硬鏈接和軟鏈接的區別:
1. 目錄不能硬鏈接,可以做軟連接
2. 硬鏈接不可以跨文件系統,軟連接可以
3. 刪除(重命名)原文件,對硬鏈接無影響,軟連接不可以
4. 原文件不存在,不可以做硬鏈接,可以做軟鏈接
5. 硬鏈接inode相同,軟鏈接inode不同
-
ls
ls命令用來顯示目標列表
-a:顯示所有檔案及目錄
-A:顯示除隱藏文件“.”和“..”以外的所有文件列表
-l:用單列格式輸出所有信息
-i:顯示文件索引節點號(inode)。一個索引節點代表一個文件
-k:以KB(千字節)爲單位顯示文件大小
-s:顯示文件和目錄的大小,以區塊爲單位
-R:遞歸處理
--full-time:列出完整的日期與時間
--color[=WHEN]:使用不同的顏色高亮顯示不同類型的
m
-
mkdir
用來創建目錄
-m<目標屬性>或--mode<目標屬性>建立目錄的同時設置目錄的權限;
-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一併建立上層目錄; -
mv
用來對文件和目錄重新命令,或者將文件從一個目錄移到另一個目錄中。
-b:當文件存在時,覆蓋前,爲其創建一個備份;
-f:若目標文件或目錄與現有的文件或目錄重複,則直接覆蓋現有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入”y”,表示將覆蓋目標文件;輸入”n”,表示取消對源文件的移動。 -
makewhatis
CentOS6中生成whatis數據庫(新安裝完的系統中無whatis數據庫,需要使用一段時間系統纔會自動生成whatis數據庫)
-
mandb
CentOS7中生成whatis數據庫,與makewhatis功能類似
-
man
Linux下的幫助指令,可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息
man章節:
1:用戶命令
2:系統調用
3:C庫調用
4:設備文件及特殊文件
5:配置文件格式
6:遊戲
7:雜項
8:管理類的命令
9:Linux 內核API
-a:列出所有章節
n
-
nano
字符終端的文本編輯器
p
-
pwd
以絕對路徑的方式顯示用戶當前工作目錄。
命令將當前目錄的全路徑名稱(從根目錄)寫入標準輸出。全部目錄使用/分隔。第一個/表示根目錄,最後一個目錄是當前目錄。
-
poweroff
關閉計算機操作系統並且切斷系統電源
-f:強制關閉操作系統
-
ping
使用ICMP傳輸協議,測試主機之間網絡的連通性
-i<間隔秒數>:指定收發信息的間隔時間
-c<完成次數>:設置完成要求迴應的次數
-s<數據包大小>:設置數據包的大小
-v:詳細顯示指令的執行過程
q
-
quit
退出當前shell狀態
r
-
rm
可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。對於鏈接文件,只是刪除整個鏈接文件,而原有文件保持不變。
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一併處理; -
reboot
重新啓動正在運行的Linux操作系統
-f:強制重新開機
s
-
scp
在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的。
-P:指定遠程主機的端口號;
-p:保留文件的最後修改時間,最後訪問時間和權限模式;
-q:不顯示覆制進度;
-r:以遞歸方式複製。 -
shutdown
關閉所有程序,並依用戶的需要,進行重新開機或關機的動作
-h:將系統關機
-r:shutdown之後重新啓動
立刻關機:shutdown -h now
-
screen
命令行終端切換的自由軟件,用戶可以通過該軟件同時連接多個本地或遠程的命令行會話,並在其間自由切換
-S <作業名稱> 指定screen作業的名稱,創建會話
-ls 列出當前所有的會話
-x 加入會話
-r 恢復會話
-d 將指定會話離線 -
source
source命令(從 C Shell 而來)是bash shell的內置命令
通常用於重新執行剛修改的初始化文件,使之立即生效,而不必註銷並重新登錄。
-
stat
顯示文件的狀態信息。
-L:支持符號連接;
-f:顯示文件系統狀態而非文件狀態;
-t:以簡潔方式輸出信息;
--help:顯示指令的幫助信息;
t
-
tree
列出指定目錄下的所有文件,包括子目錄裏的文件。
-
timedatectl status
查詢和更改系統時間
顯示系統的當前時間和日期
# timedatectl status
查看當前時區
# timedatectl | grep Time查看所有可用的時區
# timedatectl list-timezones設置時區
# timedatectl set-timezone
-
touch file
touch命令有兩個功能:一是用於把已存在文件的時間標籤更新爲系統當前的時間(默認方式),它們的數據將原封不動地保留下來;二是用來創建新的空文件。
-a:只更改存取時間
-m:只更該變動時間 -
type
顯示指定命令的類型,判斷給出的指令是內部指令還是外部指令
alias:別名。
keyword:關鍵字,Shell保留字。
function:函數,Shell函數。
builtin:內建命令,Shell內建命令。
unfound:沒有找到 -
tty
顯示當前終端
[root@CentOS7 named]#tty
/dev/pts/1 -
tr
轉換或刪除字符
-d:刪除指定字符
u
-
uname -r
打印當前系統相關信息(內核版本號、硬件架構、主機名稱和操作系統類型等)
-a或--all:顯示全部的信息
-r或--release:顯示操作系統的發行編號 -
unalias name
取消別名
-a:取消所有別名
w
-
who
顯示目前所有登錄系統的用戶信息,執行who命令可得知目前有那些用戶登入系統
-l 顯示登錄進程
-u 顯示空閒時間和PID信息
-b 顯示上一次重新啓動的日期
-H 爲每一列添加標題
-m 查看當前終端信息
-q 統計當前登錄用戶數量
-s 使用簡短的格式來顯示
-m -H 只顯示當前用戶
-T -H 顯示終端屬性
-l -H 顯示用戶登錄來源 -
which
查找並顯示給定命令的絕對路徑,命令對應的可執行程序
可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令查看pwd命令的絕對路徑
[root@CentOS7 named]#which pwd
/bin/pwd -
whereis
定位指令的二進制程序、源代碼文件和man手冊頁等相關文件的路徑
-b:只查找二進制文件
-m:只查找說明文件
-s:只查找原始代碼文件 -
whatis
用於查詢一個命令執行什麼功能,並將查詢結果打印到終端上
[dxy@CentOS7 home]$whatis cp
cp (1) - copy files and directories
cp (1p) - copy files -
w
w命令顯示已經登陸系統的用戶列表,並顯示用戶正在執行的指令
-
who am i
顯示“登錄用戶”的用戶名(用戶登錄時用過的id)
-
whoami
顯示當前“操作用戶”的用戶名,相當於執行id -un命令