本節内容
基礎指令:
ls
man
pwd
cd
mkdir
echo
touch
cp
mv
rm
rmdir
cat
more
less
head
tail
clear
poweroff
reboot
進階指令(下一章節):
alias
unalias
uname
su
hostname
history
which
wc
w
who
whoami
ping
kill
killall
pkill
seq
du
df
free
date
pidof
ps
top
ip
uptime
wget
curl
tr
dd
tar
grep
find
指令詳解
1. ls
作用:列出檔案資訊,預設為目前目錄下
常用選項:
-a: 列出所有的檔案,包括所有以.開頭的隐藏檔案
-d: 列出目錄本身,并不包含目錄中的檔案
-h: 和-l一起使用,檔案大小人類易讀
-l: 長輸出
執行個體1:列出所有的檔案
[root@ken ~]# ls -a /root
. .bash_logout k .pki .viminfo
.. .bash_profile keys.sh .ssh wordpress
.ansible .bashrc manpages-zh-1.5.1 .tcshrc zabbix_agentd.conf
apache-tomcat-8.5.35.tar.gz .config manpages-zh-1.5.1.tar.gz test
執行個體2:列出目錄
[root@ken ~]# ls -d /root
/root
執行個體3:長輸出
[root@ken ~]# ls -l /root
total 85452
-rw-r--r-- 1 root root 9642757 Dec 15 17:44 apache-tomcat-8.5.35.tar.gz
-rw-r--r-- 1 root root 50 Dec 2 17:34 auto_ins.retry
-rw-r--r-- 1 root root 259 Dec 2 17:50 auto_ins.yml
-rw------- 1 root root 293691 Jan 9 11:26 dead.letter
-rw-r--r-- 1 root root 75541986 Nov 14 13:58 jenkins-2.138.3-1.1.noarch.rpm
-rw-r--r-- 1 root root 93 Jan 9 11:19 k
-rw-r--r-- 1 root root 873 Dec 20 13:11 keys.sh
執行個體4:人類易讀
[root@ken ~]# ls -lh /root
total 8.0K
-rw-------. 1 root root 1.2K Feb 26 22:25 anaconda-ks.cfg
-rw-r--r--. 1 root root 517 Feb 26 22:36 test.sh
2.man
作用:指令幫助使用手冊
在man指令幫助資訊的界面中,所包含的常用操作按鍵及其用途如表2-2所示。
表2-2 man指令中常用按鍵以及用途
按鍵 | 用處 |
空格鍵 | 向下翻一頁 |
PaGe down | |
PaGe up | 向上翻一頁 |
home | 直接前往首頁 |
end | 直接前往尾頁 |
/ | 從上至下搜尋某個關鍵詞,如“/linux” |
? | 從下至上搜尋某個關鍵詞,如“?linux” |
n | 定位到下一個搜尋到的關鍵詞 |
N | 定位到上一個搜尋到的關鍵詞 |
q | 退出幫助文檔 |
一般來講,使用man指令檢視到的幫助内容資訊都會很長很多,如果讀者不了解幫助文檔資訊的目錄結構和操作方法,乍一看到這麼多資訊可能會感到相當困惑。man指令的幫助資訊的結構如表2-3所示。
表2-3 man指令幫助資訊的結構以及意義
結構名稱 | 代表意義 |
NAME | 指令的名稱 |
SYNOPSIS | 參數的大緻使用方法 |
DESCRIPTION | 介紹說明 |
EXAMPLES | 示範(附帶簡單說明) |
OVERVIEW | 概述 |
DEFAULTS | 預設的功能 |
OPTIONS | 具體的可用選項(帶介紹) |
ENVIRONMENT | 環境變量 |
FILES | 用到的檔案 |
SEE ALSO | 相關的資料 |
HISTORY | 維護曆史與聯系方式 |
3.pwd
顯示出目前/活動目錄的名稱
執行個體:
[root@ken ~]# pwd
/root
4. cd
切換目錄
執行個體1:切換至/tmp目錄下
[root@ken ~]# cd /tmp
[root@ken tmp]# pwd
/tmp
執行個體2:切換至上次所處的目錄
[root@ken tmp]# cd -
/root
[root@ken ~]# pwd
/root
執行個體3:切換至上級目錄
[root@ken ~]# mkdir -p /1/2/3
[root@ken ~]# cd /1/2/3
[root@ken 3]# cd ..
[root@ken 2]# pwd
/1/2
執行個體4:切換至家目錄(或者一個cd也可以)
[root@ken 2]# cd ~
[root@ken ~]# pwd
/root
5. mkdir
建立目錄
-p: 根據需要建立父目錄
執行個體1:
[root@ken ~]# mkdir ken
[root@ken ~]# ls -ld ken
drwxr-xr-x 2 root root 6 Jan 13 11:10 ken
執行個體2:
[root@ken ~]# mkdir /2/3/2 -p
[root@ken ~]# ls -ld /2/3/2/
drwxr-xr-x 2 root root 6 Jan 13 11:11 /2/3/2/
6.echo
輸出并顯示一行文本
-e: 允許對下面列出的加反斜線轉義的字元進行解釋.
[root@ken ~]# echo "this is ken"
this is ken
\n換行符,如果不加-e不能進行解釋,會當做普通字元進行輸出
[root@ken ~]# echo "this is ken \nnice to meet you"
this is ken \nnice to meet you
[root@ken ~]# echo -e "this is ken \nnice to meet you"
this is ken
nice to meet you
執行個體3:輸出顔色
[root@ken ~]# echo -e "\033[32mthis is ken \nnice to meet you\033[0m"
this is ken
nice to meet you
7.touch
修改時間戳
平時都是用來建立普通檔案
[root@ken ~]# touch test
[root@ken ~]# ls -l test
-rw-r--r-- 1 kl root 1116 Jan 13 11:16 test
8.cp
複制檔案和目錄
-p: 保持屬性不變
-r: 遞歸複制目錄
-a: 複制時,盡可能保持檔案的結構和屬性. 等同于 -dpR
執行個體1:複制檔案到目錄
[root@ken ~]# cp t.sh ken
執行個體2:複制檔案并改名
[root@ken ~]# cp t.sh test1.sh
執行個體3:複制目錄
[root@ken ~]# cp -a ken ken1
[root@ken ~]# cp -r ken ken2
執行個體4:複制多個檔案到目錄
[root@ken ~]# cp test test1.sh test.sh ken
[root@ken ~]# ls ken
test test1.sh test.sh t.sh
9.mv
移動 (改名) 檔案
執行個體1:移動檔案到目錄
[root@ken ~]# mv k ken
執行個體2:移動多個檔案到目錄
[root@ken ~]# mv {1..4}.sh ken
執行個體3: 改名
[root@ken ~]# mv ken ken3
10.rm
移除檔案或者目錄
-f: 不作确認提示
-r: 或者 -R 遞歸地移除目錄樹
執行個體1:删除一個檔案
[root@ken ~]# rm test
rm: remove regular file ‘test’? y
執行個體2:強制删除檔案(不提示)
[root@ken ~]# rm -f test1.sh
執行個體3:删除目錄
[root@ken ~]# rm ken2
rm: cannot remove ‘ken2’: Is a directory
[root@ken ~]# rm -rf ken2
11.rmdir
删除空目錄
[root@ken ~]# rmdir 1.txt
[root@ken ~]# rmdir ken3
rmdir: failed to remove ‘ken3’: Directory not empty
12. cat
連接配接檔案并在标準輸出上輸出(用于内容較少的)
-n: 輸出行号
[root@ken ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@ken ~]# echo "this is the first txt" >1
[root@ken ~]# echo "this is the second txt" >2
[root@ken ~]# cat 1 2
this is the first txt
this is the second txt
13.more
在顯示器上閱讀檔案的過濾器(檢視内容較多的)
more指令會在最下面使用百分比的形式來提示您已經閱讀了多少内容
[root@ken ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
--More--(52%)
14. less
less 與 more 類似,但使用 less 可以随意浏覽檔案,而 more 僅能向前移動,卻不能向後移動(pgup鍵),而且 less 在檢視之前不會加載整個檔案
15.head
輸出檔案的開始部分(預設前10行)
-n: 指定行
執行個體1:預設列印十行
[root@ken ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
執行個體2:指定列印行數量
[root@ken ~]# head -n 5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@ken ~]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
16. tail
輸出檔案的末尾部分(預設十行)
-f: 當檔案增長時,輸出後續添加的資料(持續重新整理)
-n: 指定列印行數量
[root@ken ~]# tail -f t.sh
[root@ken ~]# tail -n 5 /etc/passwd
lll:x:1003:1003::/root/jjj:/bin/bash
kl:x:1004:1004::/root/kl:/bin/bash
tt:x:450:450::/home/tt:/bin/bash
ken:x:1005:1005::/home/ken:/bin/bash
ttt:x:1006:1006::/home/ttt:/bin/bash
17. clear
清屏
快捷鍵ctrl+l
18. poweroff
關機
19. reboot
重新開機