LINUX常用100條命令總結(三)

2021-03-02 python運維實踐

十一、系統權限及用戶授權11.1 chmod

功能:改變文件或目錄權限。

語法:

chmod [參數] [文件]

參數:

-c	若該文件權限確實已經更改,才顯示其更改動作
-f 若該文件權限無法被更改也不顯示錯誤訊息
-v 顯示權限變更的詳細資料
-R 對目前目錄下的所有文件與子目錄進行相同的權限變更(即以遞迴的方式逐個變更)

實例:

[root@localhost ~]# chmod a+r test.txt
[root@localhost ~]# ll test.txt
-rw-r--r-- 1 root root 0 4月 17 07:51 test.txt
[root@localhost ~]#

[root@localhost mydirall]# chmod -R a+r *

[root@localhost ~]# chmod u+x test.txt
[root@localhost ~]# ll test.txt
-rwxr--r-- 1 root root 0 4月 17 07:51 test.txt
[root@localhost ~]#

11.2 chown

功能:改變文件或目錄的屬主和屬組。

語法:

chown [參數]

參數:

-R	對目前目錄下的所有文件與子目錄進行相同的擁有者變更
-c 若該文件擁有者確實已經更改,才顯示其更改動作
-f 若該文件擁有者無法被更改也不要顯示錯誤訊息
-h 只對於連結(link)進行變更,而非該 link 真正指向的文件
-v 顯示擁有者變更的詳細資料

實例:

[root@localhost ~]# ll file1
-rw-r--r-- 1 root root 0 4月 17 20:54 file1
[root@localhost ~]# chown tom file1
[root@localhost ~]# ll file1
-rw-r--r-- 1 tom root 0 4月 17 20:54 file1
[root@localhost ~]# chown .tom file1
[root@localhost ~]# ll file1
-rw-r--r-- 1 tom tom 0 4月 17 20:54 file1
[root@localhost ~]#
[root@localhost ~]# chown tom.tom file1
[root@localhost ~]# ll file1
-rw-r--r-- 1 tom tom 0 4月 17 20:54 file1
[root@localhost ~]#

11.3 chgrp

功能:更改文件用戶組

語法:

chgrp [參數] [目錄]

參數:

-c	效果類似」-v」參數,但僅回報更改的部分
-f 不顯示錯誤信息
-h 對符號連接的文件作修改,而不更動其他任何相關文件
-R 遞歸處理,將指定目錄下的所有文件及子目錄一併處理
-v 顯示指令執行過程
--reference 把指定文件或目錄的所屬群組全部設成和參考文件或目錄的所屬群組相同

實例:

[root@localhost ~]# ll file2
-rw-r--r-- 1 root root 0 4月 17 21:05 file2
[root@localhost ~]# chgrp tom file2
[root@localhost ~]# ll file2
-rw-r--r-- 1 root tom 0 4月 17 21:05 file2
[root@localhost ~]#

[root@localhost ~]# chgrp -R hr mytestdir
[root@localhost ~]# ll -d mytestdir
drwxr-xr-x 3 root hr 20 4月 17 21:09 mytestdir
[root@localhost ~]# ll -d mytestdir/mydir2/
drwxr-xr-x 2 root hr 6 4月 17 21:09 mytestdir/mydir2/

11.4 umask

功能:設定權限掩碼

語法:

umask [參數] [權限掩碼]

參數:

-S	以文字的方式來表示權限掩碼
-p 輸出的權限掩碼可直接作為指令來執行

實例:

[root@localhost ~]# umask
0022

[root@localhost ~]# umask u=,g=w,o=rwx

十二、查看系統用戶登陸信息的命令12.1 whoami

功能:列印當前登錄用戶,本指令相當於執行」id -un」指令。

實例:

[root@localhost ~]# id -un
root
[root@localhost ~]# whoami
root

12.2 who

功能:列印當前登錄用戶。

who命令的輸出信息默認來自文件「/var/log/utmp」和「/var/log/wtmp」。

語法:

who [參數] [選項]

參數:

-a	列印全面信息
-b 列印系統最近啟動時間
-d 列印死掉的進程
-l 列印系統登錄進程
-H 帶有列標題列印用戶名,登錄終端和登錄時間
-t 列印系統上次鎖定時間
-u 列印已登錄用戶列表

實例:

[root@localhost ~]# who -H
名稱 線路 時間 備註
(unknown) :0 2020-02-11 00:14 (:0)
root pts/0 2020-04-17 20:53 (123.183.158.11)
[root@localhost ~]#

[root@localhost ~]# who -b
系統引導 2020-02-11 00:13
[root@localhost ~]#

[root@localhost ~]# who -l

12.3 w

功能:顯示已登錄用戶。

語法:

w [參數]

參數:

-h/--no-header	不列印頭信息
-u/--no-current 當顯示當前進程和cpu時間時忽略用戶名
-s/--short 使用短輸出格式
-f/--from 顯示用戶從哪登錄
-o/--old-style 老式輸出
-i/--ip-addr 顯示IP位址而不是主機名(如果可能)

實例:

[root@localhost ~]# w
21:38:35 up 66 days, 21:25, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 123.183.158.11 20:53 3.00s 0.04s 0.00s w
[root@localhost ~]#

12.4 last

功能:顯示用戶或終端的登錄情況

實例:

[root@localhost ~]# last
root pts/0 123.183.158.11 Fri Apr 17 20:53 still logged in
root pts/0 123.183.158.11 Fri Apr 17 07:35 - 10:16 (02:41)
root pts/0 123.183.158.11 Tue Feb 11 22:27 - 01:37 (03:10)

[root@localhost ~]# last -n 5 -R
root pts/0 Fri Apr 17 20:53 still logged in
root pts/0 Fri Apr 17 07:35 - 10:16 (02:41)
root pts/0 Tue Feb 11 22:27 - 01:37 (03:10)
root pts/0 Tue Feb 11 00:14 - 03:21 (03:06)
(unknown :0 Tue Feb 11 00:14 still logged in

wtmp begins Mon Apr 1 14:10:36 2019
[root@localhost ~]#

[root@localhost ~]# last -n 5 -a -i
root pts/0 Fri Apr 17 20:53 still logged in 123.183.158.11
root pts/0 Fri Apr 17 07:35 - 10:16 (02:41) 123.183.158.11
root pts/0 Tue Feb 11 22:27 - 01:37 (03:10) 123.183.158.11
root pts/0 Tue Feb 11 00:14 - 03:21 (03:06) 123.183.158.11
(unknown :0 Tue Feb 11 00:14 still logged in 0.0.0.0

wtmp begins Mon Apr 1 14:10:36 2019
[root@localhost ~]#

12.5 lastlog

功能:顯示用戶最近一次登錄信息

參數:

-b <天數>	顯示指定天數前的登錄信息
-t <天數> 顯示指定天數以來的登錄信息
-u <用戶名> 顯示指定用戶的最近登錄信息

實例:

[root@localhost ~]# lastlog
用戶名 埠 來自 最後登陸時間
root pts/0 123.183.158.11 六 4月 18 08:20:06 +0800 2020
bin **從未登錄過**
daemon **從未登錄過**
adm **從未登錄過**

[root@localhost ~]# lastlog -b 2

[root@localhost ~]# lastlog -t 7
用戶名 埠 來自 最後登陸時間
root pts/0 123.183.158.11 六 4月 18 08:20:06 +0800 2020
[root@localhost ~]#

[root@localhost ~]# lastlog -u tom
用戶名 埠 來自 最後登陸時間
tom pts/1 六 4月 18 08:24:21 +0800 2020

12.6 users

功能:顯示當前登錄的用戶

實例:

[root@localhost ~]# users
(unknown) root root
[root@localhost ~]#

12.7 finger

功能:查詢其他使用者的資料

參數:

-l	列出該用戶的帳號名稱、真實姓名、用戶根目錄、登錄所用的 shell、登錄時間、郵件地址、電子郵件狀態等
-m 排除查找用戶的真實姓名
-s 列出該用戶的帳號名稱,真實姓名,登入終端機,閒置時間,登入時間以及地址和電話
-p 列出該用戶的帳號名稱,真實姓名,用戶專屬目錄,登入所用的Shell,登入時間,轉信地址,電子郵件狀態,但不顯示該用戶的計劃文件和方案文件內容

實例:

Login: root           			Name: root
Directory: /root Shell: /bin/bash
On since 六 4月 18 08:20 (CST) on pts/0 from 123.183.158.11
5 seconds idle
On since 六 4月 18 08:26 (CST) on pts/2 from 123.183.158.11
5 minutes 16 seconds idle
New mail received 四 4月 18 08:43 2019 (CST)
Unread since 三 4月 17 17:57 2019 (CST)
No Plan.
[root@localhost ~]#

[root@localhost ~]# finger -m root@121.42.11.190
[121.42.11.190]
finger: connect: 拒絕連接
[root@localhost ~]#

十三、內置命令相關13.1 echo

功能:輸出字符串或提取Shell變量的值

語法:

echo [參數] [字符串]

參數:

-n	不輸出結尾的換行符
-e 「\a」 發出警告音
-e 「\b」 刪除前面的一個字符
-e 「\c」 結尾不加換行符
-e 「\f」 換行,光標扔停留在原來的坐標位置
-e 「\n」 換行,光標移至行首
-e 「\r」 光標移至行首,但不換行
-E 禁止反斜槓轉移,與-e參數功能相反

實例:

[root@localhost ~]# echo "www.haopython.cm"
www.haopython.cm
[root@localhost ~]#

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/www/wdlinux/mysql/bin:/root/bin
[root@localhost ~]#

[root@localhost ~]# echo \$PATH
$PATH
[root@localhost ~]#

[root@localhost ~]# echo "It is a test" > mytest.txt
[root@localhost ~]# cat mytest.txt
It is a test
[root@localhost ~]#

 
[root@localhost ~]# echo `date`

2020年 04月 18日 星期六 08:47:14 CST

[root@localhost ~]# date

2020年 04月 18日 星期六 08:47:17 CST

[root@localhost ~]#

[root@localhost ~]# echo -e "abc\ncdef\nghi"
abc
cdef
ghi
[root@localhost ~]#

13.2 printf

功能:格式化 shell 輸出

語法:

 printf [格式控制字符串] [參數]

參數:

\a	警告字符,通常為ASCII的BEL字符
\n 換行
\r 回車
\0ddd 表示1到3位的八進位值字符
\ddd 表示1到3位數八進位值的字符。僅在格式字符串中有效

實例:

[root@localhost ~]# printf "HELLO WORLD\n"
HELLO WORLD
[root@localhost ~]#

[root@localhost ~]# cat test.sh
printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 楊過 男 48.6543
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
[root@localhost ~]#

[root@localhost ~]# sh test.sh
姓名 性別 體重kg
郭靖 男 66.12
楊過 男 48.65
郭芙 女 47.99
[root@localhost ~]#

13.3 rpm

功能:RPM軟體包管理器

rpm命令包含了五種基本功能:安裝、卸載、升級、查詢和驗證。

語法:

rpm [參數] [軟體包]

參數:

-a	查詢所有的軟體包
-b或-t 設置包裝套件的完成階段,並指定套件檔的文件名稱;
-c 只列出組態配置文件,本參數需配合」-l」參數使用
-d 只列出文本文件,本參數需配合」-l」參數使用
-e或--erase 卸載軟體包
-f 查詢文件或命令屬於哪個軟體包
-h或--hash 安裝軟體包時列出標記
-i 顯示軟體包的相關信息
--install 安裝軟體包
-l 顯示軟體包的文件列表
-p 查詢指定的rpm軟體包
-q 查詢軟體包
-R 顯示軟體包的依賴關係
-s 顯示文件狀態,本參數需配合」-l」參數使用
-U或--upgrade 升級軟體包
-v 顯示命令執行過程
-vv 詳細顯示指令執行過程

[root@localhost ~]# rpm -ivh packge.rpm

[root@localhost ~]# rpm --force -ivh package.rpm

[root@localhost ~]# rpm -qa

[root@localhost ~]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default

[root@localhost ~]# rpm -e package.rpm

[root@localhost ~]# rpm -U file.rpm

13.4 yum

功能:基於RPM的軟體包管理器

語法:

yum [參數]

參數:

-y	對所有的提問都回答「yes」
-c 指定配置文件
-q 安靜模式
-v 詳細模式
-t 檢查外部錯誤
-d 設置調試等級(0-10)
-e 設置錯誤等級(0-10)
-R 設置yum處理一個命令的最大等待時間
-C 完全從緩存中運行,而不去下載或者更新任何頭文件
install 安裝rpm軟體包
update 更新rpm軟體包
check-update 檢查是否有可用的更新rpm軟體包
remove 刪除指定的rpm軟體包
list 顯示軟體包的信息
search 檢查軟體包的信息
info 顯示指定的rpm軟體包的描述信息和概要信息
clean 清理yum過期的緩存
shell 進入yum的shell提示符
resolvedep 顯示rpm軟體包的依賴關係
localinstall 安裝本地的rpm軟體包
localupdate 顯示本地rpm軟體包進行更新
deplist 顯示rpm軟體包的所有依賴關係

實例:

[root@localhost ~]# yum install yum-fastestmirror
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
正在解決依賴關係
--> 正在檢查事務
---> 軟體包 yum-plugin-fastestmirror.noarch.0.1.1.31-40.el7 將被 升級
---> 軟體包 yum-plugin-fastestmirror.noarch.0.1.1.31-52.el7 將被 更新
--> 解決依賴關係完成

[root@localhost ~]# yum install yumex

[root@localhost ~]# yum clean packages
已加載插件:fastestmirror, langpacks
正在清理軟體源:base docker-ce-stable epel extras updates
1527 package 文件已移除
[root@localhost ~]#

[root@localhost ~]# yum remove vim-common.x86_64  
已加載插件:fastestmirror, langpacks

[root@localhost ~]# yum list available 'foo*' 
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
可安裝的軟體包
foomatic.x86_64 4.0.9-9.el7 base
foomatic-db.noarch 4.0-41.20130911.el7 base
foomatic-db-filesystem.noarch 4.0-41.20130911.el7 base
foomatic-db-ppds.noarch 4.0-41.20130911.el7 base
foomatic-filters.x86_64 4.0.9-9.el7 base
[root@localhost ~]#

[root@localhost ~]# yum grouplist  
已加載插件:fastestmirror, langpacks
沒有安裝組信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
可用的環境分組:
最小安裝
基礎設施伺服器
計算節點
文件及列印伺服器
Cinnamon 桌面環境
MATE 桌面環境
基本網頁伺服器
虛擬化主機
帶 GUI 的伺服器
GNOME 桌面
KDE Plasma Workspaces
開發及生成工作站
可用組:
Cinnamon
Fedora Packager
Haskell
LXQt 桌面環境
MATE
Milkymist
TurboGears 應用程式構架
Xfce
傳統 UNIX 兼容性
兼容性程序庫
圖形管理工具
安全性工具
開發工具
控制臺網際網路工具
教育軟體
智慧卡支持
電子實驗室
科學記數法支持
系統管理
系統管理工具
通用桌面

[root@localhost ~]# yum info httpd.x86_64   
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
已安裝的軟體包
名稱 :httpd
架構 :x86_64
版本 :2.4.6
發布 :90.el7.centos
大小 :9.4 M
源 :installed
來自源:base
簡介 :Apache HTTP Server
網址 :http://httpd.apache.org/
協議 :ASL 2.0
描述 :The Apache HTTP Server is a powerful, efficient, and extensible
: web server.

[root@localhost ~]#

13.5 watch

功能:周期性的執行給定的命令,並將命令的輸出以全屏方式顯示

語法:

watch [參數] [命令]

參數:

-n/--interval	watch默認每2秒運行一下程序,可以用-n或-interval來指定間隔的時間
-d/--differences 用-d或--differences 選項watch 會高亮顯示變化的區域。而-d=cumulative選項會把變動過的地方(不管最近的那次有沒有變動)都高亮顯示出來
-t/--no-title 關閉watch命令在頂部的時間間隔、命令、當前時間的輸出

實例:

[root@localhost ~]# watch uptime

[root@localhost ~]# watch -n 1 -d netstat -ant

[root@localhost ~]# watch -n 10 'cat /proc/loadavg'

[root@localhost ~]#  watch -n 1 "df -i;df"

[root@localhost ~]# watch -d 'ls -l|grep test.txt'

13.6 history

功能:查看命令執行的歷史紀錄。

語法:

history [參數] [目錄]

參數:

-a	將當前shell會話的歷史命令追加到命令歷史文件中,命令歷史文件是保存歷史命令的配置文件
-c 清空當前歷史命令列表
-d 刪除歷史命令列表中指定序號的命令
-n 從命令歷史文件中讀取本次Shell會話開始時沒有讀取的歷史命令
-r 讀取命令歷史文件到當前的Shell歷史命令內存緩衝區
-s 將指定的命令作為單獨的條目加入命令歷史內存緩衝區。在執行添加之前先刪除命令歷史內存緩衝區中最後一條命令
-w 把當前的shell歷史命令內存緩衝區的內容寫入命令歷史文件

[root@localhost ~]# history 10
800 yum info httpd.x86_64
801 yum info nginx
802 watch uptime
803 watch -n 1 -d netstat -ant
804 watch -n 1 -d netstat -ant > a.txt
805 cat a.txt
806 watch -n 10 'cat /proc/loadavg'
807 watch -n 1 "df -i;df"
808 watch -d 'ls -l|grep test.txt'
809 history 10
[root@localhost ~]#

[root@localhost ~]# history -w

[root@localhost ~]# history -r

[root@localhost ~]# history -a

root@localhost ~]# history -c

13.7 nc

功能:功能強大的網絡工具。

語法:

nc [參數]

參數:

-l	使用監聽模式,管控傳入的資料
-p 設置本地主機使用的通信埠
-s 設置本地主機送出數據包的IP位址
-u 使用UDP傳輸協議
-v 顯示指令執行過程
-w 設置等待連線的時間
-z 使用0輸入/輸出模式,只在掃描通信埠時使用

實例:

[root@localhost ~]# nc -nvv 10.128.25.130 80
Ncat: Version 6.40 ( http://nmap.org/ncat )
libnsock nsi_new2(): nsi_new (IOD #1)
libnsock nsock_connect_tcp(): TCP connection requested to 10.128.25.130:80 (IOD #1) EID 8
libnsock nsock_trace_handler_callback(): Callback: CONNECT SUCCESS for EID 8 [10.128.25.130:80]
Ncat: Connected to 10.128.25.130:80.
libnsock nsi_new2(): nsi_new (IOD #2)
libnsock nsock_read(): Read request from IOD #1 [10.128.25.130:80] (timeout: -1ms) EID 18
libnsock nsock_readbytes(): Read request for 0 bytes from IOD #2 [peer unspecified] EID 26

[root@localhost ~]# nc -u -w2 10.128.25.130 1-1000

[root@localhost ~]# nc -v -w2 10.128.25.130 1-1000
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection refused.
[root@localhost ~]#

13.8 type

功能:顯示指定命令的類型

語法:

type [參數] [命令]

參數:

lias	別名
keyword 關鍵字,Shell保留字
function 函數,Shell函數
builtin 內建命令,Shell內建命令
file 文件,磁碟文件,外部命令
unfound 沒有找到

實例:

[root@localhost ~]# type ls
ls 是 `ls --color=auto' 的別名
[root@localhost ~]# type ll
ll 是 `ls -l --color=auto' 的別名
[root@localhost ~]#

[root@localhost ~]# type cd
cd 是 shell 內嵌
[root@localhost ~]#

[root@localhost ~]# type if
if 是 shell 關鍵字
[root@localhost ~]#

13.9 bc

功能:浮點運算

語法:

bc [選項]

參數:

-i	強制進入交互式模式
-l 定義使用的標準數學庫
-w 定義使用的標準數學庫
-q 列印正常的GNU bc環境信息

實例:

[root@localhost ~]# echo "1.212*3" | bc 
3.636
[root@localhost ~]# echo "1.212*3"
1.212*3

[root@localhost ~]# echo "scale=2;3/8" | bc
.37
[root@localhost ~]#

[root@localhost ~]# echo "10^10" | bc
10000000000
[root@localhost ~]# echo "sqrt(100)" | bc
10

13.10 time

功能:指令執行時所消耗的時間

語法:

time [參數] [命令]

參數:

-o	設定結果輸出檔。這個選項會將 time 的輸出寫入 所指定的檔案中。
-a 配合 -o 使用,會將結果寫到檔案的末端,而不會覆蓋掉原來的內容。
-f FORMAT 以 FORMAT 字串設定顯示方式。

實例:

[root@localhost ~]# time date
2020年 04月 18日 星期六 10:00:27 CST

real 0m0.001s
user 0m0.000s
sys 0m0.001s
[root@localhost ~]#

十四、關機 /重啟 / 註銷14.1 shutdown

功能:關閉伺服器

語法:

shutdown [選項] [參數]

參數:

-c	當執行「shutdown -h 11:50」指令時,只要按+鍵就可以中斷關機的指令
-f 重新啟動時不執行fsck
-F 重新啟動時執行fsck
-h 將系統關機
-k 只是送出信息給所有用戶,但不會實際關機
-n 不調用init程序進行關機,而由shutdown自己進行
-r shutdown之後重新啟動
-t 送出警告信息和刪除信息之間要延遲多少秒

實例:

[root@localhost ~]# shutdown -h now

[root@localhost ~]#  shutdown +5 "System will shutdown after 5 minutes" 
Shutdown scheduled for 六 2020-04-18 10:13:03 CST, use 'shutdown -c' to cancel.
[root@localhost ~]#
Broadcast message from root@localhost.localdomain (Sat 2020-04-18 10:08:03 CST):

System will shutdown after 5 minutes
The system is going down for power-off at Sat 2020-04-18 10:13:03 CST!

[root@localhost ~]# shutdown -c

Broadcast message from root@localhost.localdomain (Sat 2020-04-18 10:08:13 CST):

The system shutdown has been cancelled at Sat 2020-04-18 10:09:13 CST!

[root@localhost ~]#

[root@localhost ~]# shutdown -r now

[root@localhost ~]# shutdown -h hours:minutes

14.2 halt

功能:關機

halt命令會先檢測系統的runlevel,若runlevel為0或6,則關閉系統,否則即調用shutdown來關閉系統。

參數:

-w	並不是真正的重啟或關機,只是寫wtmp(/var/log/wtmp)紀錄
-d 不寫wtmp紀錄(已包含在選項[-n]中)
-f 沒有調用shutdown而強制關機或重啟
-i 關機(或重啟)前關掉所有的網絡接口
-p 該選項為預設選項,就是關機時調用poweroff

實例:

[root@localhost ~]# halt -p

[root@localhost ~]# halt -f

14.3 poweroff

功能:關閉作業系統並切斷電源

語法:

poweroff [參數]

參數:

-n	關閉作業系統時不執行sync操作
-w 不真正關閉作業系統,僅在日誌文件「/var/log/wtmp」中
-d 關閉作業系統時,不將操作寫入日誌文件「/var/log/wtmp」中添加相應的記錄
-f 強制關閉作業系統
-i 關閉作業系統之前關閉所有的網絡接口
-h 關閉作業系統之前將系統中所有的硬體設置為備用模式

實例:

[root@localhost ~]# poweroff

[root@localhost ~]# poweroff -h

14.4 logout

功能:退出系統

實例:

[root@localhost ~]# logout

14.5 exit

功能:退出shell

執行exit可使shell以指定的狀態值退出。若不設置狀態值參數,則shell以預設值退出。狀態值0代表執行成功,其他值代表執行失敗。狀態值參數多用於腳本中,在終端狀態下,直接輸入「exit」 退出終端 。

快捷鍵:ctrl+d

參數:

0	執行成功
1 執行失敗
$? 參照上一個狀態值

實例:

[tom@localhost root]$ exit
exit
[root@localhost ~]#

十五、進程管理相關命令15.1 runlevel

功能:顯示系統的運行級

runlevel命令是讀取/var/run/utmp/文件或指定的其他文件,檢索其中最近的運行級記錄,顯示系統先前與當前的運行級。

如果運行級記錄中沒有先前的運行級,則使用字符N表示先前的運行級。如果找不到運行級記錄,runlevel將會輸出一條表示不知道的錯誤信息,然後退出,返回一個非0的結束狀態。

實例:

[root@localhost ~]# runlevel
N 5

15.2 jobs

功能:查看當前有多少在後臺運行的命令

語法:

 jobs [參數] [目錄]

參數:

-l	顯示作業列表時包括進程號
-n 顯示上次使用jobs後狀態發生變化的作業
-p 顯示作業列表時僅顯示其對應的進程號
-r 僅顯示運行的(running)作業
-s 僅顯示暫停的(stopped)作業

實例:

[root@localhost ~]# jobs

[root@localhost ~]# jobs -l

[root@localhost ~]# jobs -r

[root@localhost ~]# jobs -s

[root@localhost ~# jobs -n

15.3 kill

功能:殺死進程

kill命令可將指定的信號發送給相應的進程或工作。kill命令默認使用信號為15,用於結束進程或工作。如果進程或工作忽略此信號,則可以使用信號9,強制殺死進程或作業。

語法:

kill [參數] [進程號]

參數:

-l	列出系統支持的信號
-s 指定向進程發送的信號
-a 處理當前進程時不限制命令名和進程號的對應關係
-p 指定kill命令只列印相關進程的進程號,而不發送任何信號

實例:

[root@localhost ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
[root@localhost ~]#

[root@localhost ~]# ps
PID TTY TIME CMD
25357 pts/1 00:00:00 bash
25572 pts/1 00:00:00 ps
[root@localhost ~]# kill -9 25337
[root@localhost ~]#

15.4 killall

功能:使用進程名稱來殺死一組進程

參數:

killall [參數]

語法:

-e	對長名稱進行精確匹配
-l 列印所有已知信號列表
-p 殺死進程所屬的進程組
-i 交互式殺死進程,殺死進程前需要進行確認
-r 使用正規表達式匹配要殺死的進程名稱
-s 用指定的進程號代替默認信號「SIGTERM」
-u 殺死指定用戶的進程

實例:

[root@localhost ~]# killall -9 httpd

[root@localhost ~]# killall -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED
[root@localhost ~]#

15.5 pkill

功能:pkill命令可以按照進程名殺死進程。pkill和killall應用方法差不多,也是直接殺死運行中的程序。如果想殺掉單個進程,請用kill來殺掉。

語法:

pkill [參數]

參數:

-o	僅向找到的最小(起始)進程號發送信號
-n 僅向找到的最大(結束)進程號發送信號
-P 指定父進程號發送信號
-g 指定進程組
-t 指定開啟進程的終端

實例:

[root@localhost ~]# pkill -o

[root@localhost ~]# pkill -n

[root@localhost ~]# pkill httpd

15.6 ps

功能:顯示進程狀態

語法:

ps [參數]

參數:

-a	顯示所有終端機下執行的程序,除了階段作業領導者之外
a 顯示現行終端機下的所有程序,包括其他用戶的程序
-A 顯示所有程序
-c 顯示CLS和PRI欄位
c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,選項或常駐服務的標示
-C <指令名稱> 指定執行指令的名稱,並列出該指令的程序的狀況
-d 顯示所有程序,但不包括階段作業領導者的程序
-e 此選項的效果和指定」A」選項相同
e 列出程序時,顯示每個程序所使用的環境變量
-f 顯示UID,PPIP,C與STIME欄位
f 用ASCII字符顯示樹狀結構,表達程序間的相互關係
-g <群組名稱> 此選項的效果和指定」-G」選項相同,當亦能使用階段作業領導者的名稱來指定
g 顯示現行終端機下的所有程序,包括群組領導者的程序
-G <群組識別碼> 列出屬於該群組的程序的狀況,也可使用群組名稱來指定
h 不顯示標題列
-H 顯示樹狀結構,表示程序間的相互關係
-j或j 採用工作控制的格式顯示程序狀況
-l或l 採用詳細的格式來顯示程序狀況
L 列出欄位的相關信息
-m或m 顯示所有的執行緒
n 以數字來表示USER和WCHAN欄位
-N 顯示所有的程序,除了執行ps指令終端機下的程序之外
-p <程序識別碼> 指定程序識別碼,並列出該程序的狀況
p <程序識別碼> 此選項的效果和指定」-p」選項相同,只在列表格式方面稍有差異
r 只列出現行終端機正在執行中的程序
-s <階段作業> 指定階段作業的程序識別碼,並列出隸屬該階段作業的程序的狀況
s 採用程序信號的格式顯示程序狀況
S 列出程序時,包括已中斷的子程序資料
-t <終端機編號> 指定終端機編號,並列出屬於該終端機的程序的狀況
t <終端機編號> 此選項的效果和指定」-t」選項相同,只在列表格式方面稍有差異
-T 顯示現行終端機下的所有程序
-u <用戶識別碼> 此選項的效果和指定」-U」選項相同
u 以用戶為主的格式來顯示程序狀況
-U <用戶識別碼> 列出屬於該用戶的程序的狀況,也可使用用戶名稱來指定
U <用戶名稱> 列出屬於該用戶的程序的狀況
v 採用虛擬內存的格式顯示程序狀況
-V或V 顯示版本信息
-w或w 採用寬闊的格式來顯示程序狀況
x 顯示所有程序,不以終端機來區分
X 採用舊式的Linux i386登陸格式顯示程序狀況
-y 配合選項」-l」使用時,不顯示F(flag)欄位,並以RSS欄位取代ADDR欄位
-- <程序識別碼> 此選項的效果和指定」p」選項相同
--cols <每列字符數> 設置每列的最大字符數
--columns <每列字符數> 此選項的效果和指定」--cols」選項相同
--cumulative 此選項的效果和指定」S」選項相同
--deselect 此選項的效果和指定」-N」選項相同
--forest 此選項的效果和指定」f」選項相同
--headers 重複顯示標題列
--help 在線幫助
--info 顯示排錯信息
--lines <顯示列數> 設置顯示畫面的列數
--no-headers 此選項的效果和指定」h」選項相同,只在列表格式方面稍有差異
--group <群組名稱> 此選項的效果和指定」-G」選項相同
--Group <群組識別碼> 此選項的效果和指定」-G」選項相同
--pid <程序識別碼> 此選項的效果和指定」-p」選項相同
--rows <顯示列數> 此選項的效果和指定」--lines」選項相同
--sid <階段作業> 此選項的效果和指定」-s」選項相同
-tty <終端機編號> 此選項的效果和指定」-t」選項相同
--user <用戶名稱> 此選項的效果和指定」-U」選項相同
--User <用戶識別碼> 此選項的效果和指定」-U」選項相同
--version 此選項的效果和指定」-V」選項相同
--widty <每列字符數> 此選項的效果和指定」-cols」選項相同

實例:

[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 43164 3636 ? Ss 2月11 0:45 /usr/lib/systemd/systemd --system --deserialize 13
root 2 0.0 0.0 0 0 ? S 2月11 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 2月11 0:01 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 2月11 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 2月11 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 2月11 0:00 [rcu_bh]

[root@localhost ~]# ps -A
PID TTY TIME CMD
1 ? 00:00:45 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:01 ksoftirqd/0
5 ? 00:00:00 kworker/0:0H
7 ? 00:00:00 migration/0

[root@localhost ~]# ps -ef | grep ssh
root 1784 1 0 2月11 ? 00:00:00 /usr/sbin/sshd
root 23126 1784 0 08:19 ? 00:00:00 sshd: root@pts/0
root 23325 1784 0 08:26 ? 00:00:00 sshd: root@pts/2
root 25351 1784 0 11:10 ? 00:00:00 sshd: root@pts/1
root 25413 1784 0 11:12 ? 00:00:00 sshd: root@pts/3
root 25728 25357 0 11:34 pts/1 00:00:00 grep --color=auto ssh
[root@localhost ~]#

[root@localhost ~]#  ps -u root
PID TTY TIME CMD
1 ? 00:00:45 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:01 ksoftirqd/0
5 ? 00:00:00 kworker/0:0H
7 ? 00:00:00 migration/0

[root@localhost ~]# ps aux | sort -nk 3
avahi 767 0.0 0.1 57752 2256 ? Ss 2月11 0:02 avahi-daemon: running [linux.local]
avahi 790 0.0 0.0 57624 384 ? S 2月11 0:00 avahi-daemon: chroot helper

[root@localhost ~]# ps aux | sort -rnk 4 
gdm 3348 0.0 6.1 1509084 115020 ? Sl 2月11 10:54 gnome-shell --mode=gdm

15.7 crontab

功能:定時任務命令

語法:

crontab [參數]

參數:

-e	編輯該用戶的計時器設置
-l 列出該用戶的計時器設置
-r 刪除該用戶的計時器設置
-u 指定要設定計時器的用戶名稱
--help 顯示幫助信息

實例:

[root@localhost ~]# crontab -e  
no crontab for root - using an empty one
crontab: no changes made to crontab

[root@192 ~]# crontab -l  
*/2 * * * * /usr/sbin/ntpdate 58.220.207.226 &> /dev/null
00 02 * * * sh auto_backup.sh &> /dev/null

[root@localhost ~]# crontab -r

15.8 nohup

功能:後端運行程序

nohup命令的全稱為「no hang up」,該命令可以將程序以忽略掛起信號的方式運行起來,被運行的程序的輸出信息將不會顯示到終端。

無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 文件中。如果當前目錄的 nohup.out 文件不可寫,輸出重定向到$HOME/nohup.out文件中。如果沒有文件能創建或打開以用於追加,那麼 command 參數指定的命令不可調用。如果標準錯誤是一個終端,那麼把指定的命令寫給標準錯誤的所有輸出作為標準輸出重定向到相同的文件描述符。

語法:

nohup [參數]

參數:

--help	在線幫助
--version 顯示版本信息

實例:

[root@localhost ~]# nohup bash test.sh&

 


請留下你指尖的溫度

讓太陽擁抱你

微信ID:haopython

相關焦點

  • Linux文件的常用操作命令
    linux文件操作常用指令1、系統命令runlevel # 查看當前的運行級別systemctl status firewalld # 開啟網絡服務功能stop # 關閉restart # 重啟reload # 重載reboot # 重啟halt # 關機poweroff # 關機2、查看文件常用命令cat # 在命令提示符下查看文件內容more # 在命令提示符中分頁查看文件內容
  • Linux常用命令:Linux more命令使用方法
    more 是我們最常用的工具之一,最常用的就是顯示輸出的內容,然後根據窗口的大小進行分頁顯示,然後還能提示文件的百分比。
  • linux作業系統常用命令及常用問題
    一、linux作業系統常用命令>linux作業系統詳解(linux不再難懂)●man :任何時候你覺得對一個命令行不是很確定,都可以通過輸入「man + 命令」了解這個命令能確切是做什麼的。
  • Linux常用命令 - sed
    使用 sed 搜索和替換文本的一般形式如下:sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE-i 將其輸出寫入標準輸出seds 替代命令,可能是 sed 中使用最多的命令-/分隔符字符。
  • LINUX常用100條命令總結(一)
    help語法:命令 --help實例: [root@node02~]#ls--help二、文件和目錄操作命令2.1 ls功能:是列出目錄的內容及其內容屬性信息語法: ls[-alrtAFR][name...]
  • linux最常用的命令
    【cd命令】 -- cd 目錄名 意為切換目錄 常用例子:cd ~ 進入家目錄cd ..為a.txt建立一個連結(快捷方式)【cat命令】 -- 三個功能。常用命令:tail -f 循環讀取 常用於查看遞增的日誌文件tail -n 10 1.log 從後向前讀10行文件內容【which命令】 --- 搜索 查找 在linux中查找某個文件,但不知道放哪裡了,可以使用which命令常用命令:which ls 查看ls命令是否存在which which 查看which
  • 【Linux】常用命令之 awk 常用實例
    awk命令允許使用「-F分隔符」的形式來指定分隔符。二、awk命令用法示例1)按行輸出文本1、輸出所有內容[linuxmi@linux:~/linuxmi迷]$ awk '{print}' linuxmi.py[linuxmi@linux:~/linuxmi迷]$ awk '{print
  • linux常用命令總結
    Linux常用命令查詢一文件目錄操作二 查看文件內容三 文本內容處理命令在目錄/etc中查找以init開頭的,且後面有三位的文件注意:模糊匹配的條件,建議使用單引號或雙引號括起來。如果*被轉義,可使用 單雙引號括住查詢條件,或者使用\*。eg: # find .
  • Linux常用命令 awk 入門基礎教程
    awk命令允許使用「-F分隔符」的形式來指定分隔符。3)通過管道,雙引號調用Shell命令1、調用「wc -l」命令統計使用「bash」的用戶個數[linuxmi@linux:~/linuxmi迷]$ awk -F
  • Linux GCC常用命令
    後面那條指令,是直接在命令行窗口中輸出預處理後的代碼。gcc的-E選項,可以讓編譯器在預處理後停止,並輸出預處理結果。在本例中,預處理結果就是將stdio.h 文件中的內容插入到test.c中了。假設有一個由test1.c和 test2.c兩個源文件組成的程序,為了對它們進行編譯,並最終生成可執行程序test,可以使用下面這條命令: gcc test1.c test2.c -o test 如果同時處理的文件不止一個,GCC仍然會按照預處理、編譯和連結的過程依次進行。
  • 20分鐘吃掉Linux常用命令40式
    #切換到上級目錄, linux中一個點表示當前路徑,二個點表示當前路徑上級路徑例2:cd ~ #切換到主目錄例3:cd /User/liangyun03/ # 切換到某個絕對路徑,linux中以/開頭的路徑表示絕對路徑例4:cd
  • Linux常用命令詳解
    常用查看日誌文件。which命令在linux要查找某個文件,但不知道放在哪裡了,可以使用下面的一些命令來搜索:which     查看可執行文件的位置。它將首先匹配所有的文件然後再進入子目錄中查找find / -name "CON.FILE" -depth -printchmod命令用於改變linux系統文件或目錄的訪問權限。用它控制文件或目錄的訪問權限。該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
  • Linux常用命令 - curl
    將輸出保存到文件中若要保存 curl 命令的結果,請使用-o 或-O 選項。在下面的例子中 curl 將下載 Go 二進位文件,並將下載速度限制在1 mb:curl --limit-rate 1m-O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz此選項有助於防止 curl
  • Linux 文件與目錄管理常用命令
    現在我們來看一下處理目錄的常用命令1、 Ls:列出目錄:在linux系統當中,ls命令會常常被運行,而它的使用方法是:2、 Cd:切換目錄:Cd是change directory的縮寫,這是用來切換工作目錄的命令。
  • 面試題linux命令之awk
    無論是在測試還是開發崗位的面試招聘中,都會被提問到:是否了解linux系統,經常使用linux命令有哪些,接著可能會出一道題目,找出下列文本中的哪些值
  • Linux常用命令-解壓縮篇
    前言Linux常用命令中,有很多用於對文件的壓縮或解壓,本文將介紹這些解壓縮命令中不常見卻非常實用的用法。tartar是linux中最常用的解壓縮命令。tar命令可用於處理後綴名為tar,tar.gz,tgz,.tar.Z,tar.bz2的文件。
  • XshellPortable——linux優秀連接工具教程(帶常用命令)
    ---最後進行命令即可哦常用的命令:suse linux 常用命令 (1) 命令ls——列出文件 ls 顯示當前目錄文件 ls -la 給出當前目錄下所有文件的一個長列表,包括以句點開頭的「隱藏」文件 ls a* 列出當前目錄下以字母a開頭的所有文件 ls -l *.doc 給出當前目錄下以
  • Linux的介紹以及常用命令
    linux常用命令(基礎):①lslist(全稱)查看當前文件夾下的內容:-1:ls -a顯示隱藏文件,前面帶有"."的是隱藏文件.-2:ls -l顯示其他目錄中的文件(後可加參數).搜索文件:locate 文件名,[注意]發現這個命令找不到新建的文件,所以我們必須要使用這個命令.搜索文件之前,必須自己更新一下資料庫,使用"updatedb",更新資料庫需要一段時間.
  • Linux系統入門命令學習經驗
    我大學的專業是電氣工程及其自動化,平時的課程也涉及不到linux,所以旁邊也沒有掌握linux的同學能夠一塊交流,通過自己這段時間的學習,我覺得有些學習總結可以簡單的介紹給大家,供大家在開始業餘學習linux的時候能夠作為一點參考。
  • Linux shell命令總結大全
    但是實際上在使用的時候,會遇到各種各樣的問題,前幾天我在我們的項目上需要做一個功能,根據進程名字殺死這個進程,下面是過程1、我們正常需要的操作是$ps |grep xxx $kill -9 xx2、kill命令是常用的,但是用killall