LINUX系統管理命令總結(精華篇)
一、常用系統工作命令
1.echo命令
echo命令用于在終端輸出字符串或變量提取后的值。
格式為“echo [字符串?|?$變量]”。
[root@goodpython?~]#echo?goodpython.cn
使用$變量的方式提取變量SHELL的值,并將其輸出到屏幕上:
[root@goodpython?~]#echo?$SHELL
/bin/bash
2.date命令
date命令用于顯示及設置系統的時間或日期,格式為“date [選項] [+指定的格式]”。
按照默認格式查看當前系統時間的date命令如下所示:
[root@localhost~]#date
2018年 03月 24日 星期六16:16:47 CST
按照“年-月-日 小時:分鐘:秒”的格式查看當前系統時間的date命令如下所示:
[root@localhost~]# date "+%Y-%m-%d %H:%M:%S"
2018-03-2416:19:27
將系統的當前時間設置為2018年4月1日8點30分的date命令如下所示:
[root@localhost~]# date -s "20180401 8:30:00"
2018年 04月 01日 星期日08:30:00 CST
[root@localhost~]# date
2018年 04月 01日 星期日08:30:06 CST
查看今天是當年中的第幾天。
[root@localhost~]# date "+%j"
083
3.reboot命令
reboot命令用于重啟系統。
4.poweroff命令
poweroff命令用于關閉系統。
5.wget命令
wget命令用于在終端中下載網絡文件,格式為“wget [參數] 下載地址”。
6.ps命令
ps命令用于查看系統中的進程狀態,格式為“ps [參數]”。
查看所有進程:
ps aux
查看系統中所有進程,使用BSD操作格式
ps -le
查看系統中所有進程,使用LINUX標準命令格式
選項:
a:顯示一個終端的所有進程,除了會話引線
u:顯示進程的歸屬用戶及內存的使用情況
x:顯示沒有控制終端的進程
-l:長格式顯示,顯示更加詳細的信息
-e:顯示所有進程,和-A作用一致
Ex:
[root@localhost~]# ps aux
USER??????? PID %CPU %MEM??? VSZ??RSS TTY????? STAT START?? TIME COMMAND
root????????? 1?0.0? 0.5 128108? 5444 ????????Ss?? 15:18?? 0:01 /usr/lib/systemd/sy
root????????? 2?0.0? 0.0????? 0????0 ???????? S??? 15:18??0:00 [kthreadd]
root????????? 3?0.0? 0.0????? 0????0 ???????? S??? 15:18??0:00 [ksoftirqd/0]
root????????? 7?0.0? 0.0????? 0????0 ???????? S??? 15:18??0:00 [migration/0]
上面命令的解釋:
USER??? 該進程是由哪個用戶產生的
PID 進程ID號
%CPU??? 該進程占用CPU資源的百分比,占用越高,進程越耗費資源
%MEM??? 內存占用率
VSZ 虛擬內存使用量(單位是KB)
RSS 占用的實際物理內存量(單位是KB)
TTY 所在終端,其中tty1-tty7代表本地控制臺終端,tty1-tty6是本地的字符界面終端,tty7是圖形終端。pts/0-255代表虛擬終端。
STAT??? 進程狀態?
??? 進程的狀態:
R:運行
S:睡眠
T:停止狀態
s:包含子進程
+:位于后臺
START?? 被啟動的時間
TIME??? 實際使用CPU的時間
COMMAND 命令名稱與參數
[root@localhost~]# ps -le
FS?? UID???PID?? PPID? C PRI?NI ADDR SZ WCHAN? TTY????????? TIME CMD
4S???? 0????? 1?????0? 0? 80?? 0- 32027 ep_pol ???????? 00:00:01 systemd
1S???? 0????? 2?????0? 0? 80?? 0-???? 0 kthrea ???????? 00:00:00 kthreadd
1S???? 0????? 3?????2? 0? 80?? 0-???? 0 smpboo ???????? 00:00:00 ksoftirqd/0
1S???? 0????? 7?????2? 0 -40?? - -????0 smpboo ???????? 00:00:00migration/0
7.top命令
top命令用于動態地監視進程活動與系統負載等信息,其格式為top。
[root@localhost~]# top
top -17:19:53 up? 2:01,? 3 users,?load average: 0.05, 0.03, 0.05
Tasks:185 total,?? 1 running, 184sleeping,?? 0 stopped,?? 0 zombie
%Cpu(s):? 0.0 us,?0.3 sy,? 0.0 ni, 99.7 id,? 0.0 wa,?0.0 hi,? 0.0 si,? 0.0 st
KiBMem :?? 999936 total,? ??97852free,?? 704712 used,?? 197372 buff/cache
KiBSwap:? 2098172 total,? 2092636 free,???? 5536 used.??? 93684 avail Mem
?? PID USER?????PR? NI??? VIRT???RES??? SHR S %CPU %MEM???? TIME+ COMMAND????????
???? 1 root?????20?? 0? 128108??4832?? 3024 S? 0.0?0.5?? 0:01.78 systemd????????
???? 2 root?????20?? 0?????? 0?????0????? 0 S? 0.0?0.0?? 0:00.01 kthreadd???????
???? 3 root?????20?? 0?????? 0?????0????? 0 S? 0.0?0.0?? 0:00.29 ksoftirqd/0????
???? 7 root?????rt?? 0?????? 0?????0????? 0 S? 0.0?0.0?? 0:00.00 migration/0????
???? 8 root?????20?? 0?????? 0?????0????? 0 S? 0.0?0.0?? 0:00.00 rcu_bh?????????
???? 9 root?????20?? 0?????? 0?????0????? 0 S? 0.0?0.0?? 0:00.97 rcu_sched??????
??? 10 root?????rt?? 0?????? 0?????0????? 0 S? 0.0?0.0?? 0:00.10 watchdog/0?????
??? 12 root?????? 0 -20?????? 0?????0????? 0 S? 0.0?0.0?? 0:00.00 khelper? ??
top命令執行結果的前5行為系統整體的統計信息,其所代表的含義如下:
?第1行:系統時間、運行時間、登錄終端數、系統負載(三個數值分別為1分鐘、5分鐘、15分鐘內的平均值,數值越小意味著負載越低)。
第2行:進程總數、運行中的進程數、睡眠中的進程數、停止的進程數、僵死的進程數。
?第3行:用戶占用資源百分比、系統內核占用資源百分比、改變過優先級的進程資源百分比、空閑的資源百分比等。
第4行:物理內存總量、內存使用量、內存空閑量、作為內核緩存的內存量。
?第5行:虛擬內存總量、虛擬內存使用量、虛擬內存空閑量、已被提前加載的內存量。
8.pidof命令
pidof命令用于查詢某個指定服務進程的PID值,格式為“pidof [參數]
[服務名稱]”。
查詢本機上sshd服務程序的PID:
[root@localhost~]# pidof sshd
4248 991
9.kill命令
kill命令用于終止某個指定PID的服務進程,格式為“kill [參數] [進程PID]”。
[root@goodpython?~]#?kill?4248
10.killall命令
killall命令用于終止某個指定名稱的服務所對應的全部進程,格式為:“killall [參數] [進程名稱]”。
11.vmstat命令
vmstat命令監控系統資源
[root@yunkzbd~]# vmstat 1 3
procs-----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
?r?b?? swpd?? free??buff? cache?? si??so??? bi??? bo??in?? cs us sy id wa st
?0?0????? 0 5556896?? 1156 9091336??? 0???0???? 1???? 4???4??? 0? 0? 0100? 0?0
?0?0????? 0 5556880?? 1156 9091352??? 0???0???? 0???? 0?120? 225?0? 0100? 0?0
?0?0????? 0 5556812?? 1156 9091352
上面命令解釋:
procs:進程信息字段
r:等待運行的進程數,數量越大,系統越忙
b:不可被喚醒的進程數量,數量越大,系統越繁忙
memory:內存信息字段
swpd:虛擬內存的使用情況,單位KB。
free:空閑的內存容量,單位KB。
buff:緩沖的內存容量,單位KB。
cache:緩存的內存容量,單位KB。
******
緩存和緩沖的區別
緩存cache是用來加速數據從硬盤中“讀取”的
緩沖buffer是用來加速數據“寫入”硬盤的。
******
swap:交換分區的信息字段:
si:從磁盤中交換到內存中數據的數量,單位KB。
so:從內存中交換到磁盤中的數據的數量,單位KB。
此兩個數越大,證明數據需要經常在磁盤間和內存之間交換,系統性能越差。
io:磁盤讀寫信息字段:
bi:從塊設備讀入數據的總量,單位是塊。
bo:寫到塊設備的數據的總量,單位是塊。
以上兩值越大,代表系統i/o越繁忙。
system:系統信息字段:
in:每秒被中斷的進程次數。
cs:每秒鐘進行的事件切換次數。
以上兩值越大,代表系統與接口設備的通信非常繁忙。
CPU:CPU信息字段:
us:非內核進程消耗CPU運算時間的百分比。
sy:內核進程消耗CPU運算時間的百分比。
id:空閑CPU的百分比。
wa:等待I/O所消耗的CPU百分比。
st:被虛擬機所盜用的CPU占比。
12.?dmesg命令
開機時內核檢測信息
[root@yunkzbd~]# dmesg | grep CPU
二、系統狀態檢測命令
1.ifconfig命令
ifconfig命令用于獲取網卡配置與網絡狀態等信息,格式為“ifconfig [網絡設備] [參數]”。
[root@yunkzbd~]# ifconfig
enp7s0f0:flags=4163? mtu 1500
??????? inet 192.168.150.121? netmask 255.255.255.0? broadcast 192.168.150.255
??????? inet6 fe80::fc6f:1c56:249c:1a4? prefixlen 64?scopeid 0x20
??????? ether f8:0f:41:f2:29:b0? txqueuelen 1000? (Ethernet)
??????? RX packets 3536883? bytes 4719325963 (4.3 GiB)
??? ????RX errors 0?dropped 250? overruns 0? frame 0
??????? TX packets 1125444? bytes 254325129 (242.5 MiB)
??????? TX errors 0? dropped 0 overruns 0? carrier 0?collisions 0
??????? device memory 0xfbc20000-fbc3ffff?
enp7s0f1:flags=4099?mtu 1500
??????? ether f8:0f:41:f2:29:b1? txqueuelen 1000? (Ethernet)
??????? RX packets 0? bytes 0 (0.0 B)
??????? RX errors 0? dropped 0?overruns 0? frame 0
??????? TX packets 0? bytes 0 (0.0 B)
??????? TX errors 0? dropped 0 overruns 0? carrier 0?collisions 0
??????? device memory 0xfbc00000-fbc1ffff?
enp9s0:flags=4099?mtu 1500
??????? ether f8:0f:41:f2:29:af? txqueuelen 1000? (Ethernet)
??????? RX packets 0? bytes 0 (0.0 B)
??????? RX errors 0? dropped 0?overruns 0? frame 0
??????? TX packets 0? bytes 0 (0.0 B)
??????? TX errors 0? dropped 0 overruns 0? carrier 0?collisions 0
??????? device interrupt 16? memory 0xfbb00000-fbb20000?
lo:flags=73? mtu65536
??????? inet 127.0.0.1? netmask 255.0.0.0
??????? inet6 ::1? prefixlen 128?scopeid 0x10
??????? loop?txqueuelen 1? (Local Loopback)
??????? RX packets 528388? bytes 70662683 (67.3 MiB)
??????? RX errors 0? dropped 0?overruns 0? frame 0
??????? TX packets 528388? bytes 70662683 (67.3 MiB)
??????? TX errors 0? dropped 0 overruns 0? carrier 0?collisions 0
virbr0:flags=4099?mtu 1500
??????? inet 192.168.122.1? netmask 255.255.255.0? broadcast 192.168.122.255
??????? ether 52:54:00:24:f3:f9? txqueuelen 1000? (Ethernet)
??????? RX packets 0? bytes 0 (0.0 B)
??????? RX errors 0? dropped 0?overruns 0? frame 0
??????? TX packets 0? bytes 0 (0.0 B)
??????? TX errors 0? dropped 0 overruns 0? carrier 0?collisions 0
2.uname命令
uname命令用于查看系統內核與系統版本等信息,格式為“uname [-a]”。
搭配上-a參數來完整地查看當前系統的內核名稱、主機名、內核發行版本、節點名、系統時間、硬件名稱、硬件平臺、處理器類型以及操作系統名稱等信息。
[root@yunkzbd~]# uname -a
Linuxyunkzbd 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64x86_64 GNU/Linux
3.uptime命令
uptime用于查看系統的負載信息,格式為uptime。
負載值越低越好,盡量不要長期超過1,在生產環境中不要超過5。
[root@yunkzbd~]# uptime
?07:58:55 up 8 days, 17:31,? 3 users,?load average: 0.00, 0.01, 0.05
4.free命令
free用于顯示當前系統中內存的使用量信息,格式為“free [-h]”。
[root@yunkzbd~]# free -h
????????????? total??????? used??????? free????? shared?buff/cache?? available
Mem:??????????? 15G??????? 1.5G??????? 6.1G??????? 815M??????? 7.8G???????? 12G
Swap:????????? 7.8G????????? 0B??????? 7.8G
5.who命令
who用于查看當前登入主機的用戶終端信息,格式為“who [參數]”。
這三個簡單的字母可以快速顯示出所有正在登錄本機的用戶的名稱以及他們正在開啟的終端信息。表2-9所示為執行who命令后的結果。
[root@goodpython?~]#?who
[root@yunkzbd~]# who
root???? :0?????????? 2018-03-22 09:20 (:0)
root???? pts/0??????? 2018-03-26 07:42 (192.168.150.92)
root???? pts/1??????? 2018-03-22 15:37 (:0)
6.last命令
last命令用于查看所有系統的登錄記錄,格式為“last [參數]”。
7.history命令
history命令用于顯示歷史執行過的命令,格式為“history [-c]”。
最近1000條命令記錄。
[root@yunkzbd~]# history
??? 1? ls
??? 2?yum install tigervnc tigervnc-server
??? 3? cd/lib
??? 4? ls
??? 5? cdsystemd
??? 6? ls
??? 7? cdsystem
??? 8? ls
??? 9? cdvncserver@.service
?? 10? vivncserver@.service
?? 11? cp/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
?? 12? cd/
[root@yunkzbd~]#?cat?~/.bash_history
要清空當前用戶在本機上執行的Linux命令歷史記錄信息,可執行如下命令
[root@yunkzbd~]#?history?-c
8.sosreport命令
sosreport命令用于收集系統配置及架構信息并輸出診斷文檔,格式為sosreport。
三、工作目錄切換命令
1.pwd命令
pwd命令用于顯示用戶當前所處的工作目錄,格式為“pwd [選項]”。
[root@yunkzbdmoonyun]# pwd
/home/moonyun
2.cd命令
cd命令用于切換工作路徑,格式為“cd [目錄名稱]”。
使用“cd -”命令返回到上一次所處的目錄
使用“cd..”命令進入上級目錄
使用“cd ~”命令切換到當前用戶的家目錄
使用“cd ~username”切換到其他用戶的家目錄。
3.ls命令
ls命令用于顯示目錄中的文件信息,格式為“ls [選項] [文件] ”。
使用ls命令的“-a”參數看到全部文件(包括隱藏文件)
使用“-l”參數可以查看文件的屬性、大小等詳細信息
將這兩個參數整合之后,再執行ls命令即可查看當前目錄中的所有文件并輸出這些文件的屬性信息:
[root@yunkzbdmoonyun]# ls -al
總用量4
drwxr-xr-x.10 root root? 168 3月? 10 15:37 .
drwxr-xr-x.? 4 root root??36 3月? 10 09:11 ..
drwx------.? 3 root root??73 3月? 17 14:29 ccnet
drwx------.? 2 root root?117 3月? 14 09:15 conf
drwxr-xr-x.? 2 root root??48 3月? 10 15:26 installed
drwxr-xr-x.? 2 root root?115 3月? 10 15:38 logs
drwxr-xr-x.?2 root root?? 46 3月? 17 14:29 pids
drwx------.? 8 root root?102 3月? 10 15:37 seafile-data
drwxr-xr-x.? 6 root root 4096 3月? 13 14:25seafile-server-6.2.5
lrwxrwxrwx.? 1 root root??20 3月? 10 15:32seafile-server-latest -> seafile-server-6.2.5
drwxr-xr-x.? 5 root root??52 3月? 12 11:50 seahub-data
如果想要查看目錄屬性信息,則需要額外添加一個-d參數。例如,可使用如下命令查看/etc目錄的權限與屬性信息:
[root@yunkzbdmoonyun]# ls -ld
drwxr-xr-x.
10 root root 168 3月? 10 15:37 .
四、文本文件編輯命令
1.cat命令
cat命令用于查看純文本文件(內容較少的),格式為“cat [選項] [文件]”。
在cat命令后面追加一個-n參數以顯示行號。
[root@yunkzbdconf]# cat seafile.conf -n
???? 1? [fileserver]
???? 2? port= 8082
???? 3?
???? 4? [database]
???? 5? type= mysql
???? 6? host= 127.0.0.1
???? 7? port= 3306
???? 8? user= myseafiledb
???? 9? password= 654312
??? 10? db_name= seafile-db
??? 11? connection_charset= utf8
12?
2.more命令
more命令用于查看純文本文件(內容較多的),格式為“more [選項]文件”。
?[root@yunkzbd logs]# more seafile.log
[03/10/1815:37:31] http-server.c(161): fileserver: worker_threads = 10
[03/10/1815:37:31] http-server.c(176): fileserver: fixed_block_size = 8388608
[03/10/1815:37:31] http-server.c(191): fileserver: web_token_expire_time = 3600
[03/10/1815:37:31] http-server.c(206): fileserver: max_indexing_threads = 1
[03/10/201803:37:32 PM] ../common/mq-mgr.c(54): [mq client] mq cilent is started
……
[03/10/201807:02:33 PM] size-sched.c(96): Repo size compute queue size is 0
[03/10/201807:07:33 PM] size-sched.c(96): Repo size compute queue size is 0
--More--(1%)
3.head命令
head命令用于查看純文本文檔的前N行,格式為“head [選項] [文件]”。
[root@yunkzbdconf]# head -n 10 httpd.conf
#
# Thisis the main Apache HTTP server configuration file.? It contains the
#configuration directives that give the server its instructions.
# See for detailed information.
# Inparticular, see
#
# fora discussion of each configuration directive.
#
# DoNOT simply read the instructions in here without understanding
# whatthey do.? They're here only as hints orreminders.? If you are unsure
[root@yunkzbdconf]#
4.tail命令
tail命令用于查看純文本文檔的后N行或持續刷新內容,格式為“tail [選項] [文件]”
當想要實時查看最新日志文件時的命令格式為“tail -f 文件名”
[root@yunkzbdconf]# tail -f /var/log/messages
Mar 2609:07:02 yunkzbd kernel: EDAC MC0: 95 CE memory read error onCPU_SrcID#0_Ha#0_Chan#3_DIMM#0 (channel:3 slot:0 page:0x77c04 offset:0x2c0grain:32 syndrome:0x0 -? OVERFLOWarea:DRAM err_code:0001:0093 socket:0 ha:0 channel_mask:8 rank:0)
Mar 2609:07:02 yunkzbd kernel: EDAC MC0: 51 CE memory read error onCPU_SrcID#0_Ha#0_Chan#3_DIMM#0 (channel:3 slot:0 page:0x468c10 offset:0xc0grain:32 syndrome:0x0 -? OVERFLOWarea:DRAM err_code:0001:0093 socket:0 ha:0 channel_mask:8 rank:0)
5.tr命令
tr命令用于替換文本文件中的字符,格式為“tr [原始字符] [目標字符]”。
把某個文本內容中的英文全部替換為大寫:
6.wc命令
wc命令用于統計指定文本的行數、字數、字節數,格式為“wc [參數] 文本”。
[root@yunkzbdconf]# wc -l httpd.conf
353httpd.conf
-l只顯示行數
[root@yunkzbdconf]# wc -l -c httpd.conf
? 353 11753 httpd.conf
-w只顯示單詞數
-c只顯示字節數
7.stat命令
stat命令用于查看文件的具體存儲信息和時間等信息,格式為“stat 文件名稱”。
[root@yunkzbdconf]# stat httpd.conf
? 文件:"httpd.conf"
? 大小:11753???? ? 塊:24???????? IO塊:4096?? 普通文件
設備:fd00h/64768d Inode:1431730???? 硬鏈接:1
權限:(0644/-rw-r--r--)? Uid:(??? 0/??? root)??Gid:(???0/??? root)
環境:system_u:object_r:httpd_config_t:s0
最近訪問:2018-03-26 09:04:57.830567327 +0800
最近更改:2017-10-20 00:44:27.000000000 +0800
最近改動:2018-03-10 15:17:59.211444708 +0800
創建時間:-
[root@yunkzbdconf]#
8.cut命令
cut命令用于按“列”提取文本字符,格式為“cut [參數] 文本”。
使用-f參數來設置需要看的列數,
使用-d參數來設置間隔符號。passwd在保存用戶數據信息時,用戶信息的每一項值之間是采用冒號來間隔的,接下來我們使用下述命令嘗試提取出passwd文件中的用戶名信息,即提取以冒號(:)為間隔符號的第一列內容:
[root@yunkzbdconf]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@yunkzbdconf]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
operator
games
ftp
nobody
systemd-bus-proxy
systemd-network
dbus
polkitd
abrt
unbound
tss
libstoragemgmt
rpc
colord
usbmuxd
saslauth
geoclue
rtkit
rpcuser
nfsnobody
radvd
qemu
ntp
chrony
setroubleshoot
sssd
pulse
gdm
gnome-initial-setup
sshd
avahi
postfix
tcpdump
ordkzbd
mysql
apache
9.diff命令
diff命令用于比較多個文本文件的差異,格式為“diff [參數] 文件”。
五、文件目錄管理命令
1.touch命令
touch命令用于創建空白文件或設置文件的時間,格式為“touch [選項] [文件]”。
2.mkdir命令
mkdir命令用于創建空白的目錄,格式為“mkdir [選項] 目錄”。
在Linux系統中,文件夾是最常見的文件類型之一。除了能創建單個空白目錄外,mkdir命令還可以結合-p參數來遞歸創建出具有嵌套疊層關系的文件目錄。
[root@yunkzbdgood]# mkdir -p a/b/c/d
3.cp命令
cp命令用于復制文件或目錄,格式為“cp [選項] 源文件 目標文件”。
在Linux系統中,復制操作具體分為3種情況:
?? 如果目標文件是目錄,則會把源文件復制到該目錄中;
?? 如果目標文件也是普通文件,則會詢問是否要覆蓋它;
?? 如果目標文件不存在,則執行正常的復制操作。
cp命令的參數及其作用
-p? 保留原始文件的屬性
-d? 若對象為“鏈接文件”,則保留該“鏈接文件”的屬性
-r? 遞歸持續復制(用于目錄)
-I?若目標文件存在則詢問是否覆蓋
-a? 相當于-pdr(p、d、r為上述參數)
4.mv命令
mv命令用于剪切文件或將文件重命名,格式為“mv [選項] 源文件 [目標路徑|目標文件名]”。
如果在同一個目錄中對一個文件進行剪切操作,其實也就是對其進行重命名:
5.rm命令
rm命令用于刪除文件或目錄,格式為“rm [選項] 文件”。
rm命令后跟上-f參數來強制刪除
要刪除一個目錄,需要在rm命令后面一個-r參數才可以,否則刪除不掉。
6.dd命令
dd命令用于按照指定大小和個數的數據塊來復制文件或轉換文件,格式為“dd [參數]”。
dd?命令的參數及其作用
if?輸入的文件名稱
of?輸出的文件名稱
bs?設置每個“塊”的大小
count?設置要復制“塊”的個數
用dd命令從/dev/zero設備文件中取出一個大小為240MB的數據塊,然后保存成名為outputme.txt的文件:
[root@yunkzbd~]# dd if=/dev/zero of=outputme.txt count=1 bs=240M
記錄了1+0 的讀入
記錄了1+0 的寫出
251658240字節(252 MB)已復制,0.99164 秒,254 MB/秒
7.file命令
file命令用于查看文件的類型,格式為“file 文件名”。
在Linux系統中,由于文本、目錄、設備等所有這些一切都統稱為文件,而我們又不能單憑后綴就知道具體的文件類型,這時就需要使用file命令來查看文件類型了。
六、打包壓縮與搜索命令
1.tar命令
tar命令用于對文件進行打包壓縮或解壓,格式為“tar [選項] [文件]”。
tar命令的參數及其作用:
-c? 創建壓縮文件
-x? 解開壓縮文件
-t? 查看壓縮包內有哪些文件
-z? 用Gzip壓縮或解壓
-j? 用bzip2壓縮或解壓
-v? 顯示壓縮或解壓的過程
-f? 目標文件名
-p? 保留原始的權限與屬性
-P? 使用絕對路徑來壓縮
-C? 指定解壓到的目錄
一般使用“tar -czvf 壓縮包名稱.tar.gz 要打包的目錄”
解壓命令為“tar -xzvf 壓縮包名稱.tar.gz”
2.grep命令
grep命令用于在文本中執行關鍵詞搜索,并顯示匹配的結果,格式為“grep [選項] [文件]”。
兩個最最常用的參數:
-n參數用來顯示搜索到信息的行號;
-v參數用于反選信息(即沒有包含關鍵詞的所有信息行)。
在Linux系統中,/etc/passwd文件是保存著所有的用戶信息,而一旦用戶的登錄終端被設置成/sbin/nologin,則不再允許登錄系統,因此可以使用grep命令來查找出當前系統中不允許登錄系統的所有用戶信息:
[[root@yunkzbda]# grep /sbin/nologin /etc/passwd
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
3.find命令
find命令用于按照指定條件來查找文件,格式為“find [查找路徑] 尋找條件 操作”。
find命令中的參數以及作用:
-name?? 匹配名稱
-perm?? 匹配權限(mode為完全匹配,-mode為包含即可)
-user? 匹配所有者
-group? 匹配所有組
-mtime-n +n?? 匹配修改內容的時間(-n指n天以內,+n指n天以前)
-atime-n +n?? 匹配訪問文件的時間(-n指n天以內,+n指n天以前)
-ctime-n +n?? 匹配修改文件權限的時間(-n指n天以內,+n指n天以前)
-nouser 匹配無所有者的文件
-nogroup?? 匹配無所有組的文件
-newerf1 !f2? 匹配比文件f1新但比f2舊的文件
--typeb/d/c/p/l/f 匹配文件類型(后面的字母參數依次表示塊設備、目錄、字符設備、管道、鏈接文件、文本文件)
-size?? 匹配文件的大小(+50KB為查找超過50KB的文件,而-50KB為查找小于50KB的文件)
-prune? 忽略某個目錄
-exec ……{}\; 后面可跟用于進一步處理搜索結果的命令