文章目錄
- 一 系統相關
- 1. ifconfig
- 2. 快捷鍵
- 3. date 查看時間
- 4. su 切換用戶
- 5. clear 清屏
- 6. man 查看命令幫助
- 7. who 查看當前登錄用戶
- 8. uname 顯示系統的相關信息
- 9. last 查看最近登錄情況
- 10. dmesg 顯示系統開機信息
- 11. free 來顯示內存的信息
- 12. ps 查看進程信息
- 13. top 監控Linux系統狀況,比如cpu、內存的使用。
- 14. kill 殺死進程
- 14. 進程前後臺切換
- 15.查看內核版本
- 16.pidof 找到正在運行的程序的進程ID
- 17.findmt 顯示當前掛載的文件系統列表
- 18.watch
- 二 文件相關
- 1. pwd
- 2. cd
- 3. ls
- 4. find
- 5. chmod 修改文件權限
- 6. mv
- 7. cp 主要用於複製文件或目錄
- 8. scp 跨服務器複製
- 9. rm 刪除文件或文件夾
- 10. 解壓縮
- 11. stat 查看文件元信息
- 12. 軟連接
- 13. 硬連接
- 三 文本相關
- 四 網絡相關
一 系統相關
1. ifconfig
顯示或設置網絡設備
2. 快捷鍵
ctrl +c 強制終止
clear 或者 ctrl + l清屏
ctrl + u 刪除光標所在位置到行首
ctrl + a 光標移動到行首
ctrl + e 光標移動到行位
ctrl + z 把命令放入後臺,這個不是終止,而是放入後臺
ctrl + r 在歷史命令中搜索我們已經敲過的命令
3. date 查看時間
4. su 切換用戶
5. clear 清屏
6. man 查看命令幫助
7. who 查看當前登錄用戶
8. uname 顯示系統的相關信息
-n 顯示主機名稱
-a 顯示全部信息
-m 顯示系統CPU信息,類型
-s 顯示操作系統類型
-r 顯示內核版本
9. last 查看最近登錄情況
10. dmesg 顯示系統開機信息
11. free 來顯示內存的信息
12. ps 查看進程信息
13. top 監控Linux系統狀況,比如cpu、內存的使用。
14. kill 殺死進程
- kill -1 進程號 重啓進程
- kill -9 進程號 強制殺死進程
- kill -15 進程號 默認的,正常結束進程,如果發生問題,就會嘗試kill -9
14. 進程前後臺切換
和前端有交互的不能放後臺,否則就暫停不能執行。
⑴把進程放後臺的方法
- 命令 &
- 按下ctrl+z快捷鍵,放在後臺暫停
⑵jobs-l 查看後臺工作
⑶fg %工作號 將後臺暫停的工作恢復到前臺執行
⑷bg %工作號 將後臺暫停的工作恢復到後臺執行
⑸後臺命令脫離終端的方法
- 加入到/etc/rc.local文件
- 使用nohup
15.查看內核版本
在proc目錄下的version
cat version
Linux version 4.18.7-1.el7.elrepo.x86_64 (mockbuild@Build64R7) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)) #1 SMP Sun Sep 9 09:02:34 EDT 2018
內核版本4.18.7 紅帽Red Hat 4.8.5-28,安裝時間Sun Sep 9 09:02:34 EDT 2018
16.pidof 找到正在運行的程序的進程ID
[work(caibin)@tjtx145-93-90 ~]$ pidof java
1450 897
17.findmt 顯示當前掛載的文件系統列表
[work(caibin)@tjtx145-93-90 ~]$ findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/mapper/docker-8:3-6442806673-3698a36874aa9bd0cea886c5a44c7cfa11fda8dff8c374b8807a3c9e6a8293fd[/rootfs] xfs rw,relatime,nouuid,attr2,inode64,logbsize=256k,sunit=512,swidth=1024,noquota
├─/proc proc proc rw,nosuid,nodev,noexec,relatime
│ ├─/proc/bus proc[/bus] proc ro,nosuid,nodev,noexec,relatime
│ ├─/proc/fs proc[/fs] proc ro,nosuid,nodev,noexec,relatime
│ ├─/proc/irq proc[/irq] proc ro,nosuid,nodev,noexec,relatime
│ ├─/proc/sys proc[/sys] proc ro,nosuid,nodev,noexec,relatime
│ ├─/proc/sysrq-trigger proc[/sysrq-trigger] proc ro,nosuid,nodev,noexec,relatime
│ └─/proc/kcore tmpfs[/null] tmpfs rw,nosuid,mode=755
├─/dev tmpfs tmpfs rw,nosuid,mode=755
│ ├─/dev/pts devpts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666
│ ├─/dev/mqueue mqueue mqueue rw,nosuid,nodev,noexec,relatime
│ ├─/dev/shm shm tmpfs rw,nosuid,nodev,noexec,relatime,size=65536k
│ └─/dev/termination-log /dev/sda3[/wcloud/kubelet/pods/4e6d3ec4-369e-11ea-aded-246e96be23c4/containers/hbg-web-hugopenapi-2-0d360f/0b130025] xfs rw,relatime,attr2,inode64,noquota
├─/sys sysfs sysfs ro,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,relatime,mode=755
│ │ ├─/sys/fs/cgroup/systemd cgroup[/system.slice/docker-0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35.scope] cgroup ro,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups
│ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup[/system.slice/docker-0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35.scope] cgroup ro,nosuid,nodev,noexec,relatime,cpu,cpuacct
│ │ ├─/sys/fs/cgroup/pids cgroup cgroup ro,nosuid,nodev,noexec,relatime,pids
│ │ ├─/sys/fs/cgroup/rdma cgroup cgroup ro,nosuid,nodev,noexec,relatime,rdma
│ │ ├─/sys/fs/cgroup/cpuset cgroup[/system.slice/docker-0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35.scope] cgroup ro,nosuid,nodev,noexec,relatime,cpuset
│ │ ├─/sys/fs/cgroup/hugetlb cgroup[/system.slice/docker-0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35.scope] cgroup ro,nosuid,nodev,noexec,relatime,hugetlb
│ │ ├─/sys/fs/cgroup/net_cls,net_prio cgroup[/system.slice/docker-0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35.scope] cgroup ro,nosuid,nodev,noexec,relatime,net_cls,net_prio
│ │ ├─/sys/fs/cgroup/memory cgroup[/system.slice/docker-0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35.scope] cgroup ro,nosuid,nodev,noexec,relatime,memory
│ │ ├─/sys/fs/cgroup/freezer cgroup[/system.slice/docker-0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35.scope] cgroup ro,nosuid,nodev,noexec,relatime,freezer
│ │ ├─/sys/fs/cgroup/perf_event cgroup[/system.slice/docker-0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35.scope] cgroup ro,nosuid,nodev,noexec,relatime,perf_event
│ │ ├─/sys/fs/cgroup/blkio cgroup[/system.slice/docker-0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35.scope] cgroup ro,nosuid,nodev,noexec,relatime,blkio
│ │ └─/sys/fs/cgroup/devices cgroup[/system.slice/docker-0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35.scope] cgroup ro,nosuid,nodev,noexec,relatime,devices
│ └─/sys/devices/system/cpu/online /dev/sda3[/wcloud/config/core_resize/online_12] xfs rw,relatime,attr2,inode64,noquota
├─/run/secrets /dev/sda3[/wcloud/docker_graph/containers/0ef2e11dacfb476af671a46387e108081934d8d4b3ba8f0e88c78eb527259d35/secrets] xfs rw,relatime,attr2,inode64,noquota
├─/etc/resolv.conf /dev/sda3[/wcloud/docker_graph/containers/1002784bb8878e581affa36205442165a3f2ec5742bc7e6098ffd9459b47a278/resolv.conf] xfs rw,relatime,attr2,inode64,noquota
├─/etc/hostname /dev/sda3[/wcloud/docker_graph/containers/1002784bb8878e581affa36205442165a3f2ec5742bc7e6098ffd9459b47a278/hostname] xfs rw,relatime,attr2,inode64,noquota
├─/etc/hosts /dev/sda3[/wcloud/kubelet/pods/4e6d3ec4-369e-11ea-aded-246e96be23c4/etc-hosts] xfs rw,relatime,attr2,inode64,noquota
├─/new_proc/sys/net proc[/sys/net] proc rw,nosuid,nodev,noexec,relatime
├─/var/run/secrets/kubernetes.io/serviceaccount tmpfs tmpfs ro,relatime
└─/opt/web/hbg_web_hugopenapi/wf/logs /dev/sda3[/wcloud/logdata/hbg_web_hugopenapi/hbg-web-hugopenapi-2-336902a-1578986387990/1] xfs rw,relatime,attr2,inode64,noquota
18.watch
watch也是一個很重要的命令,可以觀測變化
//每隔一秒高亮顯示網絡鏈接數的變化情況
watch -n 1 -d netstat -ant
二 文件相關
1. pwd
以絕對路徑的方式顯示當前所在目錄
2. cd
- ⑴進入根目錄
cd
- ⑵ 進入上級目錄
cd..
3. ls
- 列出所有文件
ls -a
- 列出詳細信息
ls -l
- 列出以t開頭文件的詳細內容
ls -l t*
4. find
- 查找名字爲test的文件或目錄
find ./ -name test
- 查找文件名匹配*.c的文件,這裏會包括文件夾所有文件(不單單是子目錄)
find ./ -name \*.c
- 列出當前目錄以及子目錄下所有擴展名爲“.txt”的文件
find . -name "*.txt"
5. chmod 修改文件權限
chmod abc file
其中a,b,c各爲一個數字,分別表示User、Group、及Other的權限。
r=4,w=2,x=1
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=5。
6. mv
- 重命名 mv 原名字 目標名字
- 移動文件
.代表的是當前文件夾,下面的意思是把testmv移動到當前文件夾下面
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~/Documents$ mv '/home/mobvoi/Documents/cpcp2/testmv' .
7. cp 主要用於複製文件或目錄
- 目錄需要加上 -r
8. scp 跨服務器複製
9. rm 刪除文件或文件夾
rm -rf 文件夾
rm -f 文件
10. 解壓縮
- .tar.gz結尾的
壓縮
tar -zcvf 打包文件名(可以加絕對路徑) 被打包的文件
解壓縮
tar -zxvf
tar -zxvf 解壓縮文件 -C 目標位置 - .tar.bz2結尾的
壓縮
tar -jcvf 打包文件名(可以加絕對路徑) 被打包的文件
解壓縮
tar -jxvf
tar -jxvf 解壓縮文件 -C 目標位置
11. stat 查看文件元信息
[root@localhost ~]# stat test.bin
文件:"test.bin"
大小:2898689 塊:5664 IO 塊:4096 普通文件
設備:fd00h/64768d Inode:33971545 硬鏈接:1
權限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root)
環境:unconfined_u:object_r:admin_home_t:s0
最近訪問:2018-03-08 11:00:52.111316220 +0800
最近更改:2018-03-08 10:59:32.531174936 +0800
最近改動:2018-03-08 10:59:32.531174936 +0800
創建時間:-
12. 軟連接
ln -s 源文件 目標文件
13. 硬連接
- ⑴不允許給目錄創建硬連接
- ⑵只有在同一文件系統中的文件才能創建硬連接
ln 源文件 目標文件
三 文本相關
1. grep
把匹 配的行打印出來
- -i 不區分大小寫
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ grep -i 'line2' grep.txt
grep line2
grep LINE2
- -c統計匹配到的次數
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ grep -c 'line1' grep.txt
2
- -n顯示行號
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ grep -n 'line1' grep.txt
1:grep line1
6:grep line1
- -v查找不包含指定內容的行
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ grep -v 'line1' grep.txt
- -r逐層遍歷目錄查找
grep -r 字符串 文件名 - -A -B -C 後多少行,前多少行,前後多少行
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~/grep$ grep -A1 'line2' grep.txt
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~/grep$ grep -B1 'line2' grep.txt
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~/grep$ grep -C1 'line2' grep.txt
- -w 精確匹配單詞
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~/grep$ grep -w 'line1' grep.txt
grep line1
grep line1
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~/grep$ grep 'line1' grep.txt
grep line1
grep line1
grep line1line
- -e 與/或
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~/grep$ cat grep.txt
grep line1
grep LINE2
grep line1line
// 與
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~/grep$ grep -e 'line1\+line' grep.txt
grep line1line
// 或
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~/grep$ grep -e 'line1\|line2' grep.txt
grep line1
grep line1line
- 找到以grep開頭的行
grep$ grep '^grep' grep.txt
- 找到以line1結尾的行
grep 'line1$' grep.txt
- 找到空行
grep '^$' grep.txt
- 將grep的輸出到指定文件
grep 'line1$' grep.txt > heidou.txt
2. awk文本處理和報表生成
awk有3個不同版本: awk、nawk和gawk,未作特別說明,一般指gawk,gawk 是 AWK 的 GNU 版本。
- 打印某些列
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat marks.txt
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ awk '{print $3 "\t" $4}' marks.txt
Physics 80
Maths 90
Biology 87
English 85
History 89
- 打印包含a字符的行的第三列,第四列
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat marks.txt
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ awk '/a/ {print $3 "\t" $4}' marks.txt
Maths 90
Biology 87
English 85
History 89
3. sed
SED的英文全稱是 Stream EDitor,它是一個簡單而強大的文本解析轉換工具。
sed一次處理一行內容,除非重定向,否則不改變文件內容
⑴新增
如下,在第四行後面加一行:
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line2
sed line3
sed line4
sed line5
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ sed '4a line4.1' sed.txt
sed line1
sed line2
sed line3
sed line4
line4.1
sed line5
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line2
sed line3
sed line4
sed line5
⑵刪除
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line2
sed line3
sed line4
sed line5
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ sed '2d' sed.txt
sed line1
sed line3
sed line4
sed line5
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line2
sed line3
sed line4
sed line5
⑶修改
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line2
sed line3
sed line4
sed line5
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ sed '2c helloword' sed.txt
sed line1
helloword
sed line3
sed line4
sed line5
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line2
sed line3
sed line4
sed line5
⑷查詢
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ sed -n '3p' sed.txt
sed line3
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line2
sed line3
sed line4
sed line5
⑸操作多行
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line2
sed line3
sed line4
sed line5
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ sed -e '2d' -e '3d' sed.txt
sed line1
sed line4
sed line5
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line2
sed line3
sed line4
sed line5
⑹修改源文件
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line2
sed line3
sed line4
sed line5
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ sed -i '2d' sed.txt
mobvoi@mobvoi-Battle-Axe-C-B150M-HD:~$ cat sed.txt
sed line1
sed line3
sed line4
sed line5
4. cut提取列
CUT命令比AWK容易,也是用來提取列,但是默認是製表符,如果是空格分割則一般不用,因爲它會算空格個數
5. cat
cat命令是linux下的一個文本輸出命令,通常是用於觀看某個文件的內容的
- 一次顯示整個文件 cat filename
- 將幾個文件合併爲一個文件 cat file1 file2 > file
6. more
Linux more 命令類似 cat ,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與 vi 相似)
7. less
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,而且 less 在查看之前不會加載整個文件。
7. vim相關
- :set nu 設置行號
- :set nonu 取消行號
- 😒/a/b/g 替換當前行所有 a 爲 b
- dd 刪除所在行
- /string 搜索指定字符串(不需要獨立成一個完整單詞),忽略大小寫 :set ic 找下一個出現位置 n
- :w 保存修改
- :wq 保存退出
- q!不保存退出
- :wq!保存修改退出(文件所有者和root用戶)
6. head顯示前幾行
顯示文件前n行
[root@localhost douhei]# head -n 5 caibin.txt
顯示文件除了最後n行的全部內容
[root@localhost douhei]# head -n -5 caibin.txt
7. tail顯示後幾行
- -f 循環讀取
- -n <行數> 顯示行數 不加-n默認是顯示後10行
tail -n 1000:顯示最後1000行
tail -n +1000:從1000行開始顯示,顯示1000行以後的
四 網絡相關
1. 查看併發數
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
輸出:
LAST_ACK 5 (正在等待處理的請求數)
SYN_RECV 30
ESTABLISHED 1597 (正常數據傳輸狀態)
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057 (處理完畢,等待超時結束的請求數)
2. ping
Linux ping命令用於檢測主機
3. telnet
Linux telnet命令用於遠端登入
telnet 192.168.0.5 登錄IP爲 192.168.0.5 的遠程主機
4. netstat查詢網絡狀態
- -t 列出TCP協議端口
- -u 列出UDP協議端口
- -a 列出所有網絡連接
5. nslookup域名解析命令
查看本機DNS服務器:
caibindeMBP:java caibin$ nslookup
> server
Default server: 192.168.1.32
Address: 192.168.1.32#53