Linux基礎命令

單用戶操做系統和多用戶操做系統

  • 單用戶操做系統:指一臺計算機在同一時間 只能由一個用戶 使用,一個用戶獨自享用系統的所有硬件和軟件資源php

    • Windows XP 以前的版本都是單用戶操做系統
  • 多用戶操做系統:指一臺計算機在同一時間能夠由 多個用戶 使用,多個用戶共同享用系統的所有硬件和軟件資源linux

    • UnixLinux 的設計初衷就是多用戶操做系統

Linux目錄

root@toby:/# ll
total 92
drwxr-xr-x 22 root root  4096 Jun  3 16:38 ./
drwxr-xr-x 22 root root  4096 Jun  3 16:38 ../
drwxr-xr-x  2 root root  4096 Apr  8  2018 bin/
drwxr-xr-x  3 root root  4096 Apr  8  2018 boot/
drwxr-xr-x 19 root root  3740 Jun  3 16:38 dev/
drwxr-xr-x 88 root root  4096 Jun  3 16:38 etc/
drwxr-xr-x  2 root root  4096 Apr 13  2016 home/
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img -> boot/initrd.img-4.4.0-117-generic
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img.old -> boot/initrd.img-4.4.0-116-generic
drwxr-xr-x 20 root root  4096 Mar 26  2018 lib/
drwxr-xr-x  2 root root  4096 Mar 26  2018 lib64/
drwx------  2 root root 16384 Mar 26  2018 lost+found/
drwxr-xr-x  4 root root  4096 Mar 26  2018 media/
drwxr-xr-x  2 root root  4096 Aug  1  2017 mnt/
drwxr-xr-x  2 root root  4096 Aug  1  2017 opt/
dr-xr-xr-x 98 root root     0 Jun  3 16:38 proc/
drwx------  7 root root  4096 Jun  3 16:38 root/
drwxr-xr-x 19 root root   620 Jun  3 16:50 run/
drwxr-xr-x  2 root root 12288 Apr  8  2018 sbin/
drwxr-xr-x  2 root root  4096 Aug  1  2017 srv/
dr-xr-xr-x 13 root root     0 Jun  4  2019 sys/
drwxrwxrwt  7 root root  4096 Jun  3 16:45 tmp/
drwxr-xr-x 10 root root  4096 Mar 26  2018 usr/
drwxr-xr-x 11 root root  4096 Mar 26  2018 var/
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz -> boot/vmlinuz-4.4.0-117-generic
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz.old -> boot/vmlinuz-4.4.0-116-generic
複製代碼
  • /:根目錄,通常根目錄下只存放目錄,在 linux 下有且只有一個根目錄,全部的東西都是從這裏開始
    • 當在終端裏輸入 /home,實際上是在告訴電腦,先從 /(根目錄)開始,再進入到 home 目錄
  • /bin、/usr/bin:可執行二進制文件的目錄,如經常使用的命令 lstarmvcat
  • /boot:放置 linux 系統啓動時用到的一些文件,如 linux 的內核文件:/boot/vmlinuz,系統引導管理器:/boot/grub
  • /dev:存放linux系統下的設備文件,訪問該目錄下某個文件,至關於訪問某個設備,經常使用的是掛載光驅mount /dev/cdrom /mnt
  • /etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件有
    • /etc/inittab
    • /etc/fstab
    • /etc/init.d
    • /etc/X11
    • /etc/sysconfig
    • /etc/xinetd.d
  • /home:系統默認的用戶家目錄,新增用戶帳號時,用戶的家目錄都存放在此目錄下
    • ~ 表示當前用戶的家目錄
    • ~edu 表示用戶 edu 的家目錄
  • /lib、/usr/lib、/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程當中,須要調用一些額外的參數時須要函數庫的協助
  • /lost+fount:系統異常產生錯誤時,會將一些遺失的片斷放置於此目錄下
  • /mnt: /media:光盤默認掛載點,一般光盤掛載於 /mnt/cdrom 下,也不必定,能夠選擇任意位置進行掛載
  • /opt:給主機額外安裝軟件所擺放的目錄
  • /proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,因爲數據都存放於內存中,因此不佔用磁盤空間,比較重要的文件有:/proc/cpuinfo/proc/interrupts/proc/dma/proc/ioports/proc/net/*
  • /root:系統管理員root的家目錄
  • /sbin、/usr/sbin、/usr/local/sbin:放置系統管理員使用的可執行命令,如 fdiskshutdownmount 等。與 /bin 不一樣的是,這幾個目錄是給系統管理員 root 使用的命令,通常用戶只能"查看"而不能設置和使用
  • /tmp:通常用戶或正在執行的程序臨時存放文件的目錄,任何人均可以訪問,重要數據不可放置在此目錄下
  • /srv:服務啓動以後須要訪問的數據目錄,如 www 服務須要訪問的網頁數據存放在 /srv/www
  • /usr:應用程序存放目錄, 存放着一些用戶本身安裝的軟件,其實相似於 windows 下的Program Files目錄。
    • /usr/bin:存放應用程序
    • /usr/share:存放共享數據
    • /usr/lib:存放不能直接運行的,倒是許多程序運行所必需的一些函數庫文件
    • /usr/local:存放軟件升級包
    • /usr/share/doc:系統說明文件存放目錄
    • /usr/share/man:程序說明文件存放目錄
  • /var:放置系統執行過程當中常常變化的文件, (variable)存放着Linux下的一些日誌文件,在實際開發的時候有一些公司也習慣把Apache或者nginx的站點目錄也會放到這個目錄中。
    • /var/log:隨時更改的日誌文件
    • /var/spool/mail:郵件存放的目錄
    • /var/run:程序或服務啓動後,其 PID 存放在該目錄下

命令行介紹

root@toby:/#
複製代碼
  • root: 當前登陸的用戶
  • @: 表示
  • toby: 當前的主機名稱
  • /: 當前的工做目錄
  • #: 當前用戶的身份

注意:ios

在Linux中 # 表示超級管理員, $ 表示普通用戶nginx

終端命令格式

command [-options] [parameter]
複製代碼

說明:正則表達式

  • command:命令名,相應功能的英文單詞或單詞的縮寫
  • [-options]:選項,可用來對命令進行控制,也能夠省略
  • parameter:傳給命令的參數,能夠是 零個、一個 或者 多個

[] 表明可選apache

查閱命令幫助信息

--help

command --help
複製代碼

說明:vim

  • 顯示 command 命令的幫助信息

man

man command
複製代碼

說明:windows

  • 查閱 command 命令的使用手冊

man 是 manual 的縮寫,是 Linux 提供的一個 手冊,包含了絕大部分的命令、函數的詳細使用說明bash

使用 man 時的操做鍵:網絡

操做鍵 功能
空格鍵 顯示手冊頁的下一屏
Enter 鍵 一次滾動手冊頁的一行
b 回滾一屏
f 前滾一屏
q 退出
/word 搜索 word 字符串

Linux 下文件和目錄的特色

  • Linux 文件 或者 目錄 名稱最長能夠有 256 個字符
  • . 開頭的文件爲隱藏文件,須要用 -a 參數才能顯示
  • . 表明當前目錄
  • .. 表明上一級目錄

基本命令

語法格式: # 指令名稱 [選項] [操做的目標]

其中[]表示可選

基礎指令

1. ls

  • ls [路徑]

表示列出指定路徑下的文件夾和文件的名字,若是路徑沒有指定則列出當前路徑下的(list)

root@toby:~# cd /
root@toby:/# ls
bin   etc         initrd.img.old  lost+found  opt   run   sys  var
boot  home        lib             media       proc  sbin  tmp  vmlinuz
dev   initrd.img  lib64           mnt         root  srv   usr  vmlinuz.old
複製代碼
  • ls -l [路徑]

表示以列表的形式列出指定路徑下的文件夾和文件的名字

參數 含義
-a 顯示指定目錄下全部子目錄與文件,包括隱藏文件
-l 以列表方式顯示文件的詳細信息
-h 配合 -l 以人性化的方式顯示文件大小
root@toby:/# ls -l
total 84
drwxr-xr-x  2 root root  4096 Apr  8  2018 bin
drwxr-xr-x  3 root root  4096 Apr  8  2018 boot
drwxr-xr-x 19 root root  3740 Jun  3 16:38 dev
drwxr-xr-x 88 root root  4096 Jun  3 16:38 etc
drwxr-xr-x  2 root root  4096 Apr 13  2016 home
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img -> boot/initrd.img-4.4.0-117-generic
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img.old -> boot/initrd.img-4.4.0-116-generic
drwxr-xr-x 20 root root  4096 Mar 26  2018 lib
drwxr-xr-x  2 root root  4096 Mar 26  2018 lib64
drwx------  2 root root 16384 Mar 26  2018 lost+found
drwxr-xr-x  4 root root  4096 Mar 26  2018 media
drwxr-xr-x  2 root root  4096 Aug  1  2017 mnt
drwxr-xr-x  2 root root  4096 Aug  1  2017 opt
dr-xr-xr-x 96 root root     0 Jun  3 16:38 proc
drwx------  7 root root  4096 Jun  3 17:01 root
drwxr-xr-x 19 root root   620 Jun  3 23:34 run
drwxr-xr-x  2 root root 12288 Apr  8  2018 sbin
drwxr-xr-x  2 root root  4096 Aug  1  2017 srv
dr-xr-xr-x 13 root root     0 Jun  3 16:50 sys
drwxrwxrwt  7 root root  4096 Jun  3 23:35 tmp
drwxr-xr-x 10 root root  4096 Mar 26  2018 usr
drwxr-xr-x 11 root root  4096 Mar 26  2018 var
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz -> boot/vmlinuz-4.4.0-117-generic
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz.old -> boot/vmlinuz-4.4.0-116-generic
root@toby:/#
複製代碼
  • ls -la [路徑]
1.1 ls 通配符的使用
通配符 含義
* 表明任意個數個字符
? 表明任意一個字符,至少 1 個
[] 表示能夠匹配字符組中的任一一個
[abc] 匹配 a、b、c 中的任意一個
[a-f] 匹配從 a 到 f 範圍內的的任意一個字符

2. clear

清屏, 把內容頂上去了

快捷鍵: ctrl+l

3. su

切換用戶(switch user)

語法格式: #su 須要切換到的用戶名(用戶名能夠不寫,則表示切換到root用戶)

高權限往低切, 不須要密碼. 低權限往高切, 須要密碼. 而且只在當前的命令終端中. 其餘地方不變

4. cd

cd 是英文單詞 change directory 的簡寫,其功能爲更改當前的工做目錄,也是用戶最經常使用的命令之一

注意:Linux 全部的 目錄文件名 都是大小寫敏感的

cd 須要切換到的路徑(路徑能夠是相對路徑,也能夠是絕對路徑)
複製代碼

路徑能夠寫也能夠不寫,不寫則表示切換到當前用戶的家目錄。

注意:

低級用戶沒有訪問高級用戶的權限

相對路徑: 不以/開頭 絕對路徑: 以/開頭

命令 含義
cd 切換到當前用戶的主目錄(/home/用戶目錄)
cd ~ 切換到當前用戶的主目錄(/home/用戶目錄)
cd . 保持在當前目錄不變
cd .. 切換到上級目錄
cd - 能夠在最近兩次工做目錄之間來回切換

pwd

打印當前的路徑, 告訴咱們當前在哪

文檔的操做指令

1. touch

  • 建立文件或修改文件時間
    • 若是文件 不存在,能夠建立一個空白文件
    • 若是文件 已經存在,能夠修改文件的末次修改日期

語法: touch 路徑+文件名

2. mkdir

建立一個新的目錄

mkdir 路徑+文件夾
複製代碼
選項 含義
-p 能夠遞歸建立目錄

3. cp 和 mv(拷貝和移動文件)

序號 命令 對應英文 做用
01 tree [目錄名] tree 以樹狀圖列出文件目錄結構
02 cp 源文件 目標文件 copy 複製文件或者目錄
03 mv 源文件 目標文件 move 移動文件或者目錄/文件或者目錄重命名
3.1 tree

tree 命令能夠以樹狀圖列出文件目錄結構

選項 含義
-d 只顯示目錄
3.2 cp

cp 命令的功能是將給出的 文件目錄 複製到另外一個 文件目錄 中,至關於 DOS 下的 copy 命令

copy [-r] 要賦值的文件或者文件夾的路徑 指定的路徑` 可重命名
複製代碼
選項 含義
-i 覆蓋文件前提示
-r 若給出的源文件是目錄文件,則 cp 將遞歸複製該目錄下的全部子目錄和文件,目標文件必須爲一個目錄名
# 不會改變名稱
root@toby:/# cp /php.txt /home/admin/
# 會改變名稱
root@toby:/# cp /php.txt /home/admin/php2.txt
複製代碼
3.3 mv

mv 命令能夠用來 移動 文件目錄,也能夠給 文件或目錄重命名

選項 含義
-i 覆蓋文件前提示
# 移動文件
root@toby:/# mv /home/admin/php.txt /root/
# 重命名
root@toby:/# mv /root/php.txt /root/php.doc
複製代碼

注意: 若是不改變名稱 最後文件夾的後面的/必定要寫, 不然會重命名

4. rm

刪除文件或目錄

rm [-rf] 須要刪除的文檔
複製代碼
選項 含義
-f 強制刪除,忽略不存在的文件,無需提示
-r 遞歸地刪除目錄下的內容,刪除文件夾 時必須加此參數

使用 rm 命令要當心,由於文件刪除後不能恢復

查看文件內容

序號 命令 對應英文 做用
01 tail 文件的路徑 tail 查看一個文件的末n行
02 head 文件的路徑 head 查看一個文件的頭n行
03 cat 文件名 concatenate 查看文件內容、建立文件、文件合併、追加文件內容等功能 查看某個文件的所有內容(將內容所有輸出在命令行中)(正序)
04 tac 文件路徑1 文件路徑2 文件路徑3… tac 查看某個文件的所有內容(倒序的)
05 more 文件名 more 分屏顯示文件內容
06 grep 搜索文本 文件名 grep 搜索文本文件內容

1. tail

查看一個文件的末 n

tail -n 文件的路徑
複製代碼
選項 含義
-n -n能夠不寫,不寫,默認表示10行

2. head

查看文件的頭n行

head -n 文件的路徑
複製代碼

同上 tail

注意:若是不指定-n則默認頭10行

3. cat

cat 文件路徑1  文件路徑2  文件路徑3 …
複製代碼
  • cat 命令能夠用來 查看文件內容、建立文件、文件合併、追加文件內容 等功能
  • cat 會一次顯示全部的內容,適合 查看內容較少 的文本文件
  • 查看某個文件的所有內容(將內容所有輸出在命令行中)【正序】
選項 含義
-b 對非空輸出行編號
-n 對輸出的全部行編號

Linux 中還有一個 nl 的命令和 cat -b 的效果等價

4. tac

做用:查看某個文件的所有內容(倒序的)

語法:tac 文件路徑1 文件路徑2 文件路徑3…

能夠同時查看多個文件的內容

5. more

  • more 命令能夠用於分屏顯示文件內容,每次只顯示一頁內容
  • 適合於 查看內容較多 的文本文件

使用 more 的操做鍵:

操做鍵 功能
空格鍵 顯示手冊頁的下一屏
Enter 鍵 一次滾動手冊頁的一行
b 回滾一屏
f 前滾一屏
q 退出
/word 搜索 word 字符串

6. grep

  • Linux 系統中 grep 命令是一種強大的文本搜索工具
  • grep容許對文本文件進行 模式查找,所謂模式查找,又被稱爲正則表達式
選項 含義
-n 顯示匹配行及行號
-v 顯示不包含匹配文本的全部行(至關於求反)
-i 忽略大小寫
  • 經常使用的兩種模式查找

參數 | 含義 ^a | 行首,搜尋以 a 開頭的行 ke$ | 行尾,搜尋以 ke 結束的行

其餘

1. echo 文字內容

echo 會在終端中顯示參數指定的文字,一般會和 重定向 聯合使用

2. 重定向 > 和 >>

  • Linux 容許將命令執行結果 重定向到一個 文件
  • 將本應顯示在終端上的內容 輸出/追加 到指定文件中

其中

  • > 表示輸出,會覆蓋文件原有的內容
  • >> 表示追加,會將內容追加到已有文件的末尾

3. 管道 |

  • Linux 容許將 一個命令的輸出 能夠 經過管道 作爲 另外一個命令的輸入
  • 能夠理解現實生活中的管子,管子的一頭塞東西進去,另外一頭取出來,這裏 | 的左右分爲兩端,左端塞東西(寫),右端取東西(讀)

經常使用的管道命令有:

  • more:分屏顯示內容
  • grep:在命令執行結果的基礎上查詢指定的文本

關機重啓指令

1. reboot

重啓計算機, 部分狀況(除非自開機以來只有當前一個普通用戶登陸過)下普通用戶沒法執行

2. shutdown

做用:關機

語法:shutdown -h 時間 時間常見的值:

  • now:(shutdown -h now),表示當即關機
  • +m:(m表示minutes數字),例如+5,則表示五分鐘以後關機

3. halt

關機

進階指令

1. du

做用:du表示directory used,顯示出目錄所佔的磁盤空間大小的狀況。

語法:du -sh 目錄路徑

選項說明:

  • s:表示summary,彙總統計
  • h:表示以較高可讀性的形式顯示
root@toby:/# du -sh /etc/
4.5M	/etc/
root@toby:/# du -s /etc/
4532	/etc/
root@toby:/# ls -l
total 84
drwxr-xr-x  2 root root  4096 Apr  8  2018 bin
drwxr-xr-x  3 root root  4096 Apr  8  2018 boot
drwxr-xr-x 19 root root  3740 Jun  3 16:38 dev
drwxr-xr-x 88 root root  4096 Jun  3 16:38 etc
drwxr-xr-x  2 root root  4096 Apr 13  2016 home
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img -> boot/initrd.img-4.4.0-117-generic
lrwxrwxrwx  1 root root    33 Mar 26  2018 initrd.img.old -> boot/initrd.img-4.4.0-116-generic
drwxr-xr-x 20 root root  4096 Mar 26  2018 lib
drwxr-xr-x  2 root root  4096 Mar 26  2018 lib64
drwx------  2 root root 16384 Mar 26  2018 lost+found
drwxr-xr-x  4 root root  4096 Mar 26  2018 media
drwxr-xr-x  2 root root  4096 Aug  1  2017 mnt
drwxr-xr-x  2 root root  4096 Aug  1  2017 opt
dr-xr-xr-x 96 root root     0 Jun  3 16:38 proc
drwx------  7 root root  4096 Jun  3 17:01 root
drwxr-xr-x 19 root root   640 Jun  4 15:16 run
drwxr-xr-x  2 root root 12288 Apr  8  2018 sbin
drwxr-xr-x  2 root root  4096 Aug  1  2017 srv
dr-xr-xr-x 13 root root     0 Jun  3 16:50 sys
drwxrwxrwt  7 root root  4096 Jun  4 15:20 tmp
drwxr-xr-x 10 root root  4096 Mar 26  2018 usr
drwxr-xr-x 11 root root  4096 Mar 26  2018 var
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz -> boot/vmlinuz-4.4.0-117-generic
lrwxrwxrwx  1 root root    30 Mar 26  2018 vmlinuz.old -> boot/vmlinuz-4.4.0-116-generic
複製代碼

注意:

這裏咱們發現經過ls -l的命令查看的大小和du -sh查看的大小不一致, 由於ls -l只是統計了文件夾的大小, 不包含文件夾裏面的文件

df

做用:disk free,查看磁盤的剩餘空間的狀況

語法:df -hdf -m

選項說明:

  • h:表示以較高可讀性單位進行查看
  • m: 以MB爲單位

free

做用:查看內存的使用狀況

語法:free -mfree -g

選項含義:

  • m:表示以mb爲單位進行查看
  • g: 表示以g爲單位可是沒有什麼意義
root@toby:/# free -m
              total        used        free      shared  buff/cache   available
Mem:           2000          35        1517           2         447        1789
Swap:             0           0           0
root@toby:/#
複製代碼

解釋說明:

  • Mem: Memory, 是內存的各項數據
  • Swap: 交換空間, 當內存若是出現不夠用的狀況. 計算機會把這個交換空間2G的拿出來當內存使用
  • tobal: 總的內存大小
  • used: 已使用的內存大小
  • free: 空餘內存大小

第一行表示memory,是內存各項的數字。 其中,若是查看可用的剩餘內存,應該是3527的位置。 若是看的是剩餘的內存,則應該是3725的位置。

find

做用:表示根據條件去查詢文檔的所在位置。

語法:find 範圍路徑 選項 選項的值

常見的選項:

  • name:根據名字進行查詢
  • type:根據文檔的類型進行查詢。[d表示文件夾,f表示普通文件,s表示套接字文件,l表示鏈接文件(快捷方式),c表示字符設備文件,b表示塊狀設備文件(例如光驅和光盤)]
  • user:根據全部者進行查詢
  • group:根據所屬的用戶組進行查詢
  • size:根據大小進行查詢
#find / -name httpd.conf -type f
複製代碼

注意:

-name選項支持通配符, 好比(*)

假設我須要查詢磁盤中所有的.conf文件 則能夠寫成:#find / -name *.conf -type f

ps

做用:表示process show,查看進程

語法:ps -ef

選項含義:

  • e:等價於-A,all,表示所有
  • f:表示full,顯示所有的列
root@toby:~# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Jun03 ?        00:00:01 /sbin/init splash
root         2     0  0 Jun03 ?        00:00:00 [kthreadd]
root         3     2  0 Jun03 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 Jun03 ?        00:00:00 [kworker/0:0H]
root         7     2  0 Jun03 ?        00:00:06 [rcu_sched]
root         8     2  0 Jun03 ?        00:00:00 [rcu_bh]
root         9     2  0 Jun03 ?        00:00:00 [migration/0]
root        10     2  0 Jun03 ?        00:00:00 [watchdog/0]
root        11     2  0 Jun03 ?        00:00:00 [kdevtmpfs]
root        12     2  0 Jun03 ?        00:00:00 [netns]
root        13     2  0 Jun03 ?        00:00:00 [perf]
root        14     2  0 Jun03 ?        00:00:00 [khungtaskd]
root        15     2  0 Jun03 ?        00:00:00 [writeback]
root        16     2  0 Jun03 ?        00:00:00 [ksmd]
root        17     2  0 Jun03 ?        00:00:00 [khugepaged]
root        18     2  0 Jun03 ?        00:00:00 [crypto]
root        19     2  0 Jun03 ?        00:00:00 [kintegrityd]
root        20     2  0 Jun03 ?        00:00:00 [bioset]
root        21     2  0 Jun03 ?        00:00:00 [kblockd]
root        22     2  0 Jun03 ?        00:00:00 [ata_sff]
root        23     2  0 Jun03 ?        00:00:00 [md]
root        24     2  0 Jun03 ?        00:00:00 [devfreq_wq]
root        25     2  0 Jun03 ?        00:00:00 [kworker/u2:1]
root        28     2  0 Jun03 ?        00:00:00 [kswapd0]
root        29     2  0 Jun03 ?        00:00:00 [vmstat]
root        30     2  0 Jun03 ?        00:00:00 [fsnotify_mark]
root        31     2  0 Jun03 ?        00:00:00 [ecryptfs-kthrea]
root        47     2  0 Jun03 ?        00:00:00 [kthrotld]
root        48     2  0 Jun03 ?        00:00:00 [acpi_thermal_pm]
root        49     2  0 Jun03 ?        00:00:00 [vballoon]
root        50     2  0 Jun03 ?        00:00:00 [bioset]
root        51     2  0 Jun03 ?        00:00:00 [bioset]
root        52     2  0 Jun03 ?        00:00:00 [bioset]
root        53     2  0 Jun03 ?        00:00:00 [bioset]
root        54     2  0 Jun03 ?        00:00:00 [bioset]
root        55     2  0 Jun03 ?        00:00:00 [bioset]
root        56     2  0 Jun03 ?        00:00:00 [bioset]
root        57     2  0 Jun03 ?        00:00:00 [bioset]
root        58     2  0 Jun03 ?        00:00:00 [bioset]
root        59     2  0 Jun03 ?        00:00:00 [scsi_eh_0]
root        60     2  0 Jun03 ?        00:00:00 [scsi_tmf_0]
root        61     2  0 Jun03 ?        00:00:00 [scsi_eh_1]
root        62     2  0 Jun03 ?        00:00:00 [scsi_tmf_1]
root        68     2  0 Jun03 ?        00:00:00 [ipv6_addrconf]
root        81     2  0 Jun03 ?        00:00:00 [deferwq]
root        82     2  0 Jun03 ?        00:00:00 [charger_manager]
root       117     2  0 Jun03 ?        00:00:00 [bioset]
root       118     2  0 Jun03 ?        00:00:00 [bioset]
root       119     2  0 Jun03 ?        00:00:00 [bioset]
root       120     2  0 Jun03 ?        00:00:00 [bioset]
root       122     2  0 Jun03 ?        00:00:00 [bioset]
root       123     2  0 Jun03 ?        00:00:00 [bioset]
root       124     2  0 Jun03 ?        00:00:00 [bioset]
root       125     2  0 Jun03 ?        00:00:00 [kpsmoused]
root       126     2  0 Jun03 ?        00:00:00 [bioset]
root       127     2  0 Jun03 ?        00:00:00 [ttm_swap]
root       147     2  0 Jun03 ?        00:00:00 [kworker/0:1H]
root       150     2  0 Jun03 ?        00:00:00 [jbd2/vda1-8]
root       151     2  0 Jun03 ?        00:00:00 [ext4-rsv-conver]
root       190     1  0 Jun03 ?        00:00:00 /lib/systemd/systemd-journald
root       204     2  0 Jun03 ?        00:00:00 [kauditd]
root       234     1  0 Jun03 ?        00:00:00 /lib/systemd/systemd-udevd
root       394     1  0 Jun03 ?        00:00:01 /usr/lib/accountsservice/account
root       397     1  0 Jun03 ?        00:00:00 /usr/sbin/cron -f
daemon     398     1  0 Jun03 ?        00:00:00 /usr/sbin/atd -f
message+   404     1  0 Jun03 ?        00:00:00 /usr/bin/dbus-daemon --system --
root       420     1  0 Jun03 ?        00:00:00 /lib/systemd/systemd-logind
syslog     421     1  0 Jun03 ?        00:00:00 /usr/sbin/rsyslogd -n
root       608     1  0 Jun03 ?        00:00:00 /sbin/dhclient -1 -v -pf /run/dh
root       623     2  0 Jun03 ?        00:00:00 [edac-poller]
root       694     1  0 Jun03 ?        00:00:36 /usr/sbin/aliyun-service
ntp        732     1  0 Jun03 ?        00:00:04 /usr/sbin/ntpd -p /var/run/ntpd.
root       783     1  0 Jun03 tty1     00:00:00 /sbin/agetty --noclear tty1 linu
root       784     1  0 Jun03 ttyS0    00:00:00 /sbin/agetty --keep-baud 115200
root       907     1  0 Jun03 ?        00:00:00 /usr/sbin/sshd -D
root      1075     2  0 Jun03 ?        00:00:01 [kworker/0:1]
root      1294     1  0 Jun03 ?        00:00:25 /usr/local/aegis/aegis_update/Al
root      1334     1  0 Jun03 ?        00:03:22 /usr/local/aegis/aegis_client/ae
root     16726   907  0 15:16 ?        00:00:00 sshd: root@pts/0
root     16730     1  0 15:16 ?        00:00:00 /lib/systemd/systemd --user
root     16731 16730  0 15:16 ?        00:00:00 (sd-pam)
root     16751 16726  0 15:16 pts/0    00:00:00 -bash
root     16793   907  0 15:39 ?        00:00:00 sshd: root@pts/1
root     16811 16793  0 15:39 pts/1    00:00:00 -bash
root     16842   907  0 16:18 ?        00:00:00 sshd: root@pts/2
root     16860 16842  0 16:18 pts/2    00:00:00 -bash
root     16877     2  0 16:22 ?        00:00:00 [kworker/u2:2]
root     16878     2  0 16:22 ?        00:00:00 [kworker/0:0]
root     16890 16860  0 16:29 pts/2    00:00:00 ps -ef
root@toby:~#
複製代碼
  • UID:該進程的啓動用戶名;
  • PID:process id,進程的id號
  • PPID:parent process id,父級進程id號
  • C:表示的cpu的使用狀況
  • STIME:start time,啓動時間
  • TTY:終端的設備編號,「?」表示該進程不是由終端發起的
  • TIME:持續運行的時間
  • CMD:command,顯示進程的名稱或者位置

補充:結束進程的指令

#kill PID
複製代碼

service

做用:操做服務的(啓動/中止/重啓)

語法:service 服務名 start/stop/restart

案例:使用service指令啓動apache(httpd)

# service httpd start
複製代碼

注意

對於服務名是存在要求的,要求服務名必須存在於/etc/init.d目錄下

root@toby:~# cd /etc/init.d/
root@toby:/etc/init.d# ls
README                  hostname.sh              nscd          sendsigs
aegis                   hwclock.sh               ntp           single
apparmor                irqbalance               ondemand      skeleton
atd                     keyboard-setup.dpkg-bak  plymouth      ssh
bootmisc.sh             killprocs                plymouth-log  sysstat
checkfs.sh              kmod                     procps        udev
checkroot-bootclean.sh  mountall-bootclean.sh    rc            ufw
checkroot.sh            mountall.sh              rc.local      umountfs
console-setup           mountdevsubfs.sh         rcS           umountnfs.sh
cron                    mountkernfs.sh           reboot        umountroot
dbus                    mountnfs-bootclean.sh    resolvconf    urandom
grub-common             mountnfs.sh              rsync         uuidd
halt                    networking               rsyslog
root@toby:/etc/init.d#
複製代碼

除了能夠用service指令操做服務,還能夠經過以下語法:

/etc/init.d/服務名 start/stop/restart
複製代碼

因此剛纔apache的啓動指令還能夠寫成:

/etc/init.d/httpd start
複製代碼

grep

搜索、過濾. 主要用於對文件/內容進行篩選,選出須要的內容

語法: #grep [選項] 關鍵詞 文件路徑/內容

選項:

  • v:排除

示例:使用grep篩選出php2019.txt中的admin行

除了admin 都會被查找, 取反

擴展用法:

#grep -E 「關鍵詞1|關鍵詞2|…」 文件路徑或內容

選項:

  • E表示extension,該語法表示多條件篩選,「|」表示or

上述擴展用法等價於:

#egrep 「關鍵詞1|關鍵詞2|….」 文件的內容或路徑
複製代碼

建立2019.txt 添加內容

1412334
admin
kljsdakjdfkas
foiweroiqwefsd
複製代碼
root@toby:~# touch 2019.txt
root@toby:~# vim 2019.txt
root@toby:~# grep "admin" 2019.txt
admin
root@toby:~#
複製代碼

常見的選項: -v:排除 案例:使用grep篩選出php2018.txt中的admin行

wc

做用:word count,其做用是用於統計文件的各項數值(行、單詞數、字節數)

語法:#wc -lwc 文檔的路徑

選項含義:

  • -l:line,行數
  • -w:word,單詞數
  • -c:byte,字節數
root@toby:~# wc -lwc 2019.txt
 4  4 43 2019.txt
root@toby:~#
複製代碼

注意:

lwc選項的順序,不影響其指令輸出的結果的順序,結果順序必定是行 、 單詞 、字節

管道

管道嚴格意義上說其不是指令,其只是一個符號「|」。該符號主要起到輔助的做用,可以將多個指令合在一行上進行操做。主要用在搜索過濾等上面

語法:# 必須在終端中有輸出內容的指令 | 有輸入的指令[要求有讀取文件內容的需求]

管道的核心理解概念:管道前面的指令的輸出其實就是管道後面指令的輸入

案例:經過ps指令查看進程,只查看httpd的進程。

ps -ef | grep 「httpd」
複製代碼

示例: 「/etc/passwd」文件是存儲用戶信息的文件,該文件中一行即爲一個用戶,要求使用所學的指令統計出當前計算機中一共有多少個用戶?

cat /etc/passwd | wc -l
複製代碼

相關文章
相關標籤/搜索