1.檢測程序
?????? 程序都是進程在運行,進程里面有很多線程,面試經(jīng)常會問進程和線程的區(qū)別,線程可以訪問另一個線程的什么什么的,這些我都聽膩了,區(qū)別就是進程會分配程序需要的空間,創(chuàng)建線程需要的資源,用一個中二的說法:進程就是世界,線程是世界意志的執(zhí)行者。線程可以訪問進程的各種資源,但是不能訪問線程自己的堆棧。
??????? 查看進程的命令是ps,它有很多搭配的參數(shù),比如ps -e 輸出全部進程,ps -f顯示進程的完整信息,還可以組合ps -ef
?????? 實時檢測進程的運行情況:top
??????? 進程顯示的信息有哪些?
??????? UID 啟動這些進程的用戶
??????? PID 進程的ID號
??????? PPID 父進程的ID
??????? C 進程生命周期中CPU利用率
??????? STIME 進程啟動時的系統(tǒng)時間
??????? TTY 啟動進程時的終端時間
??????? CMD 啟動的程序名稱
?????? 使用ps -l會出現(xiàn)更多的字段,可以自行查詢
2.結束進程
??????? 我們需要知道進程的各種狀態(tài),根據(jù)情況結束進程,喚醒進程,掛起進程等等,進程是通過信號來通信。下面列舉了幾種信號對應的狀態(tài)
信號 | 名稱 | 描述 |
1 | HUP | 掛起 |
2 | INT | 中斷 |
3 | QUIT | 結束運行 |
9 | KILL | 無條件終止 |
11 | SEGV | 段錯誤 |
15 | TERM | 盡可能終止 |
17 | STOP | 無條件停止運行,但是不終止 |
18 | TSTP | 停止或者暫停,但繼續(xù)在后臺運行 |
19 | CONT | 在STOP或者TSTP后恢復運行 |
(1).kill命令
??? kill PID??
??????? 終止PID代表的進程,這是向進程發(fā)生TERM命令,有些進程會很調皮,無視這個命令,這個時候你可以強硬一點,使用kill -s PID,pid進程會立刻GG
(2). killall命令
kill需要pid,killall可以指定進程名字,還能用通配符
3.監(jiān)測磁盤空間
有時候我們還要處理LINUX系統(tǒng)空間,所以這也是一項基本技能。
1.掛載存儲媒體
LINUX文件系統(tǒng)把所有的磁盤并入到一個虛擬目錄下,把新的儲存媒體比如U盤放在虛擬目錄下,這樣的工作叫做掛載。
(1).mount命令
這是掛載媒體的命令,輸入mount,輸出當前系統(tǒng)上掛載的設備列表
mount命令提供四個部分的信息:
(1).媒體的設備文件名
(2).媒體掛載的虛擬目錄的掛載點
(3).文件系統(tǒng)類型
(4).已掛載媒體的訪問狀態(tài)
·修改掛載點 mount -t type device directory
type:格式化方法,有很多種,比如vfat,ios9660,ntfs
device:目前的掛載點
directory:修改到指定位置的掛載點
mount -t? vfat /dev/sdb1 /media/disk
把sdb1的掛載點修改到/media/disk
mount還可以搭配其他的參數(shù),完成更加復雜的命令,這里只介紹重要的-o
-o可以添加一些其他的命令,后面用逗號分割,
ro只讀掛載
rw讀寫掛載
user允許普通用戶掛載文件系統(tǒng)
check-none掛載時不檢測
loop掛載一個文件
2.umount移除掛載設備
從系統(tǒng)中移除一個可移動設備,需要先卸載。
umount [directory | device]
可以指定設備名字或者掛載點來移除設備,如果設備正在使用,則會失敗
3.df命令
查看掛載設備的內存使用情況
這個輸出很容易看懂,下面就是df的輸出,分別是設備的設備文件位置,塊(1M)的數(shù)量,已經(jīng)使用的塊,可以空間,使用率,掛載點
Filesystem???? 1K-blocks??? Used Available Use% Mounted on
/dev/root?????? 61054632 3911020? 54605344?? 7% /
devtmpfs????????? 781052?????? 0??? 781052?? 0% /dev
tmpfs???????????? 946812?????? 0??? 946812?? 0% /dev/shm
tmpfs???????????? 378728??? 1188??? 377540?? 1% /run
tmpfs?????????????? 5120?????? 4????? 5116?? 1% /run/lock
/dev/mmcblk0p1??? 261108?? 31228??? 229880? 12% /boot
tmpfs???????????? 189360????? 20??? 189340?? 1% /run/user/1000
df -h 輸出更明白
Filesystem????? Size? Used Avail Use% Mounted on
/dev/root??????? 59G? 3.8G?? 53G?? 7% /
devtmpfs??????? 763M???? 0? 763M?? 0% /dev
tmpfs?????????? 925M???? 0? 925M?? 0% /dev/shm
tmpfs?????????? 370M? 1.2M? 369M?? 1% /run
tmpfs?????????? 5.0M? 4.0K? 5.0M?? 1% /run/lock
/dev/mmcblk0p1? 255M?? 31M? 225M? 12% /boot
tmpfs?????????? 185M?? 20K? 185M?? 1% /run/user/1000
4.du命令
df是看整體的情況,則du是看某個指定文件夾下面的內存情況,某人情況下是看當前的文件夾,它會輸出指定文件夾下的子文件夾使用情況。這種輸出會從文件夾最底層開始,也就是最里面開始輸出。也許我們并不需要知道每個文件夾的情況。只需要知道指定的文件夾整體情況。
du -s 則輸出文件夾下的整體占用空間
du -h 輸出普通人看得明白的數(shù)據(jù),和上面那個一樣
du -c 輸出整體的情況,它是在末尾多了一個統(tǒng)計而已
我的桌面有一個Linux文件目錄
du -s linux #輸出Linux的文件大小
輸出:
6236??? linux
du -h linux
64K???? linux/.git/hooks
4.0K??? linux/.git/refs/heads
4.0K??? linux/.git/refs/tags
12K???? linux/.git/refs
8.0K??? linux/.git/info
4.0K??? linux/.git/branches
4.0K??? linux/.git/objects/info
4.0K??? linux/.git/objects/pack
12K???? linux/.git/objects
116K??? linux/.git
64K???? linux/linux-2.6/.git/hooks
4.0K??? linux/linux-2.6/.git/refs/heads
4.0K??? linux/linux-2.6/.git/refs/tags
12K???? linux/linux-2.6/.git/refs
8.0K??? linux/linux-2.6/.git/info
4.0K??? linux/linux-2.6/.git/branches
4.0K??? linux/linux-2.6/.git/objects/info
5.9M??? linux/linux-2.6/.git/objects/pack
5.9M??? linux/linux-2.6/.git/objects
6.0M??? linux/linux-2.6/.git
6.0M??? linux/linux-2.6
6.1M??? linux
64????? linux/.git/hooks
4?????? linux/.git/refs/heads
4?????? linux/.git/refs/tags
12????? linux/.git/refs
8?????? linux/.git/info
4?????? linux/.git/branches
4?????? linux/.git/objects/info
4?????? linux/.git/objects/pack
12????? linux/.git/objects
116???? linux/.git
64????? linux/linux-2.6/.git/hooks
4?????? linux/linux-2.6/.git/refs/heads
4?????? linux/linux-2.6/.git/refs/tags
12????? linux/linux-2.6/.git/refs
8?????? linux/linux-2.6/.git/info
4?????? linux/linux-2.6/.git/branches
4?????? linux/linux-2.6/.git/objects/info
6000??? linux/linux-2.6/.git/objects/pack
6008??? linux/linux-2.6/.git/objects
6112??? linux/linux-2.6/.git
6116??? linux/linux-2.6
6236??? linux
6236??? total
5. 處理數(shù)據(jù)文檔
(1) sort 對文檔的數(shù)據(jù)排序
默認情況是安裝字符串的升序排序,如果你的文檔是數(shù)字字符,然后你想按數(shù)字排序,可以用-n,如果開頭是時間,可以按時間排序,-r是降序,-t指定分隔符,-k指定排序的字段。-k和-t一起使用很有效。
理解一下:
du linux | sort -nr
6236??? linux
6116??? linux/linux-2.6
6112??? linux/linux-2.6/.git
6008??? linux/linux-2.6/.git/objects
6000??? linux/linux-2.6/.git/objects/pack
116???? linux/.git
64????? linux/linux-2.6/.git/hooks
64????? linux/.git/hooks
12????? linux/linux-2.6/.git/refs
12????? linux/.git/refs
12????? linux/.git/objects
8?????? linux/linux-2.6/.git/info
8?????? linux/.git/info
4?????? linux/linux-2.6/.git/refs/tags
4?????? linux/linux-2.6/.git/refs/heads
4?????? linux/linux-2.6/.git/objects/info
4?????? linux/linux-2.6/.git/branches
4?????? linux/.git/refs/tags
4?????? linux/.git/refs/heads
4?????? linux/.git/objects/pack
4?????? linux/.git/objects/info
4?????? linux/.git/branches
Linux文件下全部文件降序排列 ,|是管道符
sort -t ':' -k 3 /etc/passwdsystemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:103:109:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:104:110::/nonexistent:/usr/sbin/nologin
_rpc:x:105:65534::/run/rpcbind:/usr/sbin/nologin
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
statd:x:107:65534::/var/lib/nfs:/usr/sbin/nologin
avahi:x:108:113:Avahi mDNS daemon,,,:/run/avahi-daemon:/usr/sbin/nologin
dnsmasq:x:109:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
lightdm:x:110:114:Light Display Manager:/var/lib/lightdm:/bin/false
rtkit:x:111:116:RealtimeKit,,,:/proc:/usr/sbin/nologin
pulse:x:112:119:PulseAudio daemon,,,:/run/pulse:/usr/sbin/nologin
saned:x:113:122::/var/lib/saned:/usr/sbin/nologin
colord:x:114:123:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin
hplip:x:115:7:HPLIP system user,,,:/run/hplip:/bin/false
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
systemd-coredump:x:996:996:systemd Core Dumper:/:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
觀察一下,它把: 作為分割符號,分為很多個字段,指定第三個字段作為排序的指標,然后升序排列。
(2).搜索數(shù)據(jù):grep
他的使用方法很多,需要仔細研究。命令模式:
grep [options] pattern [file]
比如我們有一個文本test.txt,內容如下:
abc
def
123
456
grep a test.txt
輸出:abc
grep -v a test.txt #-v表示輸出不含查詢的字符
def
123
456
有很多選項,可以自己查詢
6.壓縮文件
有很多工具可以壓縮,比如bzip2,compress,gzip,zip
后綴名也各不一樣,分別對應.bz2,.z,.gz,.zip
介紹一下gzip,這是GUN的一個壓縮軟件
(1).gzip 壓縮文件
(2).gzcat 查看壓縮文件的內容
(3).gunzip 解壓
7.歸檔文件
雖然gzip可以壓縮文件,但是它是對單個文件使用,我們常常需要對一系列文件使用,所以需要tar命令。
tar function [option] object1 object2 object3
功能有很多
-A 把一個歸檔的文件追加到另一個中
-c 創(chuàng)建一個新的歸檔文件
-d 比較兩個歸檔文件的不同
-r 追加歸檔文件到末尾
-t 列出歸檔文件的內容
-u 更新,追加同名文件
-x 從歸檔文件中提取文件
選項也有很多
-C dir 切換到指定dir
-f file 輸出結果到文件file
-j 重定向輸出結果給bzip2來壓縮文件
-p 保留文件權限
-v 處理文件的時候顯示文件
-z 重定向給gzip命令來壓縮文件
比如壓縮三個文件a1,a2,a3
tar -cvf A.tar a1 a2 a3
把a1 a2 a3 的內容輸入到創(chuàng)建的文件A.tar中
查看壓縮文件
tar -tf A.tar
則輸出a1 a2 a3
?A.tar會被重新構建
解壓命令:文章來源:http://www.zghlxwxcb.cn/news/detail-727712.html
tar -zxvf A.tar文章來源地址http://www.zghlxwxcb.cn/news/detail-727712.html
到了這里,關于第1次 更多的bash shell命令的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!