2. Linux指令總結

-=-=Liunx基礎

1. vi和vim的三種模式

image-20200203171550721

2. vi和vim的操作

  1. 正常模式下 yy 複製(xyy:x可以爲數字)
  2. 正常模式下 p 粘貼
  3. 正常模式下 dd 刪除 (xdd:x可以爲數字)
  4. 命令行模式下 / 要查找的內容
  5. 命令行模式下 :set nu/nonu 設置/取消行號
  6. 正常模式下 u 撤銷
  7. 正常模式下 gg 最首行 G 最末行
  8. 編輯模式下如果esc失效,使用 Ctrl + C
  9. 正常模式下 xx shift g 跳轉指定行
  10. 注意退出時的 : 是英文輸入法下的
  11. source /etc/profile 修改過配置文件後刷新資源
  12. vi和vim區別
  13. img

3. 關機和重啓

  1. shutdown -h now 立即關機

  2. shutdown -h 1 一分鐘後關機

  3. shutdown -r now 立即重啓

  4. halt 關機

  5. reboot 重啓

  6. syn 將內存中的數據同步到磁盤(關機重啓之前使用)

  7. logout 註銷用戶

4. 用戶管理

  1. 添加用戶指令 useradd 用戶名
  2. 創建指定自錄的用戶 useradd -d /home/dd xd (useradd -d 自錄用戶名)
  3. 給用戶設置/修改密碼 passwd 用戶名輸入兩次密碼
  4. 刪除用戶(保留家目錄–推薦使用) usede1用戶名
  5. 刪除用戶以及家目錄 userde1 -r 用戶名
  6. 查看用戶 id 用戶名
  7. 切換用戶命令 su -用戶名
    不使用su切換用戶,只是用戶發生變化,當前的操作環境還是在之前的用戶下;
    使用su -切換用戶,不僅用戶變化,且操作環境也變成新用戶的環境
  8. 返回到原來的用戶 exit

5. 組管理

  1. 添加組 groupadd 組名
  2. 新建用戶指定組 useradd -g 組名 用戶名
  3. 修改用戶的組 usermod -g 新組名 用戶名

6. 三種配置文件

/etc/passwd文件

​ 用戶(user)的配置文件,記錄用戶的各種信息 ​
每行的含義: ​ 用戶名:口令:用戶標識號:組標識號:註釋性描述:主目錄:登錄 Shell

/etc/shadow文件

​ 口令的配置文件 ​
每行的含義: 登錄名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌

/etc/group文件

​ 組(group)的配置文件,記錄 Linux 包含的組的信息 ​
每行含義: ​ 組名:口令:組標識號:組內用戶列表

cat /etc/redhat-release 查看當前liunx版本
cat /proc/version 查看當前linux版本

7. 指定運行級別

​ 0:關機
1:單用戶【找回丟失密碼】
​ 2:多用戶狀態沒有網絡服務
​ 3:多用戶狀態有網絡服務
​ 4:系統未使用保留給用戶
​ 5:圖形界面
​ 6:系統重啓
常用運行級別是 3 和 5 ,要修改默認的運行級別可改文件/etc/inittab 的 id:5:initdefault:這一行中的數字。
CentOs6是通過init 數字來設置的,而CentOs7則比較複雜通過systemctl get-default來獲取當前運行級別,詳情搜索博客!

8. 面試題

  1. 如何找回 root 密碼(CentOs6),如果我們不小心,忘記 root 密碼,怎麼找回?
    思路:
    進入到 單用戶模式,然後修改 root 密碼。因爲進入單用戶模式,root 不需要密碼就可以登錄。

    總結:
    開機->在引導時輸入 回車鍵-> 看到一個界面輸入 e -> 看到一個新的界面,選中第二行(編輯內核)在輸入 e-> 在這行最後輸入 1 ,再輸入 回車鍵->再次輸入 b ,這時就會進入到單用戶模式。這時,我們就進入到單用戶模式,使用 passwd 指令來修改 root 密碼。

9. 幫助命令

  1. man
    man ls
  2. help
    help 命令

10. 文件目錄類指令

  1. 顯示當前工作目錄的絕對路徑 pwd

  2. ls
    -a
    -l == ll

    ​ -h

  3. cd 切換目錄

  4. mkdir 創建目錄

  5. mkdir -p 創建多級目錄

  6. rmdir 只能刪除空目錄
    rm -rf 遞歸刪除
    -r 遞歸刪除
    -f 強制刪除不提示

  7. touch 文件名稱 創建文件

  8. 複製命令 cp 原來的文件包括目錄 要複製到的目錄
    -r 遞歸複製整個文件夾

  9. mv 移動和改名指令

11. 查看文件指令

  1. cat 只能讀
    -n 顯示行號
    通常使用 cat 文件名 | more

  2. more 基於VI編輯器的文本過濾器,全屏按頁顯示

    q退出查看

  3. less 並不是一次將整個文件加載後顯示,可以通過PgUp,PgDn控制

12. 輸出重定向>和追加>>

13. echo指令

  1. echo $PATH 輸出環境變量到控制檯
  2. echo "字符串"

14. head指令

  1. head a.txt 用於顯示文件的開頭部分
  2. head -n 8 a.txt

15. tail 指令

  1. tail -n 20 /etc/profile 默認輸出文件後十行內容
  2. tail -f 文件名 實時查看文件

16. ln指令–軟連接

  1. ln -s /root/soft/tomcat/bin/startup.sh tomcatStarter
  2. 刪除: rm -rf tomcatStarter tomcatStarter後面不能加/

17. history指令

  1. history 查看所有的歷史指令
  2. history 10 查看最近使用過的10個指令
  3. !1021 執行編號爲1021的指令

18. 時間日期類指令

  1. date 顯示時間
  2. date +%Y 顯示年
  3. date +%M 顯示分
  4. Y m d H M S 年 月 日 時 分 秒
  5. date "+%Y %m %d %H:%M:%S"
  6. 設置日期
    date -s “字符串時間”
  7. 查看日曆
    cal 查看是當前月
    cal 2020 查看的是今年的

19. 搜索查找類指令

19.1 find指令

  1. find /xxx -yyy zzz
    搜索的範圍
    -name
    -user
    -size +20M大於20M -20M小於20M的文件
    • find / -name filename.txt根據名稱查找/目錄下的filename.txt文件。

19.2 grep指令–過濾查找

  1. | 管道 將前一個命令的處理結果輸出傳遞給後面的命令處理。
  2. grep lang anaconda-ks.cfg –color 在anaconda-ks.cfg 文件中查找 lang 並高亮顯示

20. 壓縮和解壓類

  1. gzip 文件 —> 文件.gz 壓縮後不會保留原來的文件
    gunzip 文件.gz —>

  2. zip -r myZip.zip /home/

    unzip -d /root/file/ myZip.zip

    -r:遞歸壓縮

    -d: 指定壓縮後的文件的存放目錄

  3. tar指令
    壓縮
    tar -zcvf myZip.tar.gz /root/file
    解壓
    tar -zxvf myZip.tar.gz
    tar -zxvf myZip.tar.gz -C /root/file/txt/

    ​ 如果不帶.gz意思是不壓縮

    ​ 打包時不壓縮 tar -xvf ...

    ​ 文件名.tar tar -cvf ...

    image-20200204134730730

21. 組管理和權限管理

21.1 三個重要概念

  • 所有着
  • 所在組
  • 其它組

21.2 新建用戶useradd

useradd -g police tom -g

  • police 組名
  • tom 角色名

passwd tom 給角色設置密碼

21.3 新建組groupadd

groupadd police
id fox 查看角色的信息

21.4 修改文件所在組chgrp

chgrp 組名 文件名

  1. 通過root用戶創建orange.txt文件
  2. chgrp police orange.txt 把orange.txt修改成police組

21.5 改變用戶所在組usermod

usermod -g 組名 用戶名
usermod -d 目錄名 用戶名 改變該用戶登錄的初始目錄

22. 權限的基本介紹

- 普通文件
d 目錄

22.1 rwx權限詳解

一、修改權限的兩種方式chmod
one:

chmod u=rwx,g=rwx,o=rwq 文件目錄名
​ ||
chmod a=rwx 文件目錄名

chmod o-x 文件目錄名

two:

chmod 777 文件目錄名 常用

二、修改文件所有者chown

chown newowner file
​ ||
​ newowner:newgroup

三、修改文件所在組chown/chgrp

chgrp newgroup file
chown :newgroup file

23. 任務調度crond

任務調度:是指系統在某個時間執行的特定的命令或程序。

crontab

​ -e 編輯crontab定時任務(可以配合着shell腳本來使用)

​ -l 查詢crontab任務

​ -r 刪除當前用戶的所有的crontab任務

  1. 任務調度文件 vim /etc/crontab
  2. 設置定時任務 crontab -e
  3. 重啓任務調度 service crond restart

24. Linux 磁盤分區、掛載

1EB=1024 PB,1PB=1024 TB

  • Linux 來說無論有幾個分區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的文件結構 , Linux 中每個分區都是用來組成整個文件系統的一部分。

  • Linux 採用了一種叫“載入”的處理方法,它的整個文件系統中包含了一整套的文件和目錄, 且將一個分區和一個目錄聯繫起來。這時要載入的一個分區將使它的存儲空間在一個目錄下獲得。

  1. lsblk -f 查看系統的分區和掛載情況 (老師不離開)
  2. mount 設備名稱 掛載目錄 取消掛載使用umount
  3. df -lh 查詢系統整體磁盤使用情況
  4. du -h /目錄 查詢指定目錄的磁盤佔用情況,默認爲當前目錄
    • -s 指定目錄佔用大小彙總
    • -h 帶計量單位
    • -a 含文件
    • –max-depth=xx 子目錄深度
    • -c 列出明細的同時,增加彙總值

一、磁盤情況-工作實用指令

1) 統計/root 文件夾下文件的個數

ls -l /root | grep "^-" | wc -l

2) 統計/root 文件夾下目錄的個數

ls -l /root | grep "^d" | wc -l

3)統計/home 文件夾下文件的個數,包括子文件夾裏的

ls -lR /root | grep "^-" | wc -l

4)統計文件夾下目錄的個數,包括子文件夾裏的

ls -lR /root | grep "^d" | wc -l

5)以樹狀顯示目錄結構

yum install tree

tree

25. 網絡配置 ifconfig

ipconfig–>DOS

ifconfig–>Linux 顯示網絡設備

  1. ping 目的主機 測試主機之間網絡連通
  2. ifconfig eth0 up 啓用 eth0 網卡
  3. ifconfig eth0 down 停用 eth0 網卡
  4. netstat 查看網絡端口
  5. netstat -an | grep 3306 查詢 3306 端口占用情況

26. 進程管理ps

ps -aux | more

  • -a 顯示當前終端的所有的進程信息
  • -u 以用戶的格式顯示進程信息
  • -x 顯示後臺進程運行的參數

image-20200204160458821

ps -ef 以全格式顯示當前所有的進程

Linux下顯示系統進程的命令ps,最常用的有ps -ef 和ps aux。這兩個到底有什麼區別呢?

​ 兩者沒太大差別,討論這個問題,要追溯到Unix系統中的兩種風格,System V風格和BSD 風格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,兩者輸出略有不同。現在的大部分Linux系統都是可以同時使用這兩種方式的。

一、終止進程kill

kill 進程號

kill -9 進程號 強制殺死進程

二、查看進程樹 pstree

pstree -p 樹狀的形式顯示進程的 pid

pstree -u 樹狀的形式進程的用戶

三、服務管理

​ 服務(service) 本質就是進程,但是是運行在後臺的,通常都會監聽某個端口,等待其它程序的請求,比如(mysql , sshd 防火牆等),因此我們又稱爲守護進程,是 Linux 中非常重要的知識點。

  • service 服務名 [start | stop | restart | reload | status]

  • 在 CentOS7.0 後 不再使用 service ,而是 systemctl

  • systemctl命令是系統服務管理器指令,它實際上將service和chkconfig這兩個命令組合到一起。

  • systemctl [start | stop | restart | reload | status] 服務名
  • systemctl list-units --type=service 顯示所有已啓動的服務
  • systemctl enable 服務名 設置開機自啓動

四、徹底關閉防火牆

​ sudo systemctl status firewalld.service

​ sudo systemctl stop firewalld.service

​ sudo systemctl disable firewalld.service(之前的是iptables)

五、動態監控進程

top 與 ps 命令很相似。它們都用來顯示正在執行的進程。top 與 ps 最大的不同之處,在於 top 在執行一段時間可以更新正在運行的的進程。

top

​ -d 秒數 指定top每隔幾秒更新 默認是三秒

​ -i 不顯示閒置或者僵死進程

​ -p 指定監控進程的ID僅僅監控某個進程的狀態

a. 監視待定用戶

top:輸入此命令,按回車鍵,查看執行的進程。
u:然後輸入“u”回車,再輸入用戶名,即可

b. 終止指定的進程

top:輸入此命令,按回車鍵,查看執行的進程。

k:然後輸入“k”回車,再輸入要結束的進程 ID 號

六、查看系統網絡情況 netstat

netstat -anp

​ -an 按一定順序排列輸出

​ -p 顯示哪個進程在調用

​ 配合着| grep 使用。

27. RPM和 YUM

27.1 RPM

​ RPM 是 RedHat Package Manager(RedHat 軟件包管理工具)的縮寫,類似 windows 的 setup.exe,這一文件格式名稱雖然打上了 RedHat 的標誌,但理念是通用的。Linux 的分發版本都有采用(suse,redhat, centos 等等),可以算是公認的行業標準了。

  1. rpm -qa 查詢已安裝的 rpm 列表

  2. rpm -qa | grep tomcat

  3. rpm -qi 軟件包名 查詢軟件包信息

  4. rpm -ql 軟件包名 查詢軟件包中的文件

  5. rpm -qf 文件全路徑名 查詢文件所屬的軟件包

  6. rpm -e rpm包的名稱 卸載 rpm 包

    • 如果其它軟件包依賴於您要卸載的軟件包,卸載時則會產生錯誤信息
    • 需要使用 rpm -e --nodeps rpm包的名稱
  7. rpm -ivh rpm包全路徑名稱 安裝 rpm 包

    • i=install 安 裝

    • v=verbose 提 示

    • h=hash 進度條

一個 rpm 包名:

firefox-45.0.1-1.el6.centos.x86_64.rpm

  • 名稱:firefox

  • 版本號:45.0.1-1

  • 適用操作系統: el6.centos.x86_64

表示 centos6.x 的 64 位系統

如果是 i686、i386 表示 32 位系統,noarch 表示通用。

27.2 YUM

​ Yum 是一個 Shell 前端軟件包管理器。基於 RPM 包管理,能夠從指定的服務器自動下載 RPM 包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包。使用 yum 的前提是可以聯網。

  1. yum install xxx 下載安裝
  2. yum list
  3. yum list | grep xx
  4. wget 地址 下載

28. 系統管理命令

  1. free 顯示內存狀態

  2. free –m 以 mb 單位顯示內存組昂頭

  3. du 顯示目錄或文件的大小。

  4. du –h 顯示當前目錄的大小

  5. who 顯示目前登入系統的用戶信息。

  6. hostname 查看當前主機名 ( 修改:vi /etc/sysconfig/network )

  7. uname 顯示系統信息。

  8. uname -a 顯示本機詳細信息。

  9. 依次爲:內核名稱(類別),主機名,內核版本號,內核版本,內核編譯日期,硬件名,處理器類型,硬件平臺類型,操作系統名稱

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章