Linux

VMware

使用虛擬機安裝Centos系統的時候,一定要在安裝后期的步驟中開啟網絡,否則只能通過vi修改配置文件

遠程服務器管理

  1. 通過ip addr查看網卡ip地址

ip addr

  1. 通過ifconfig查看網卡 ip 地址

最小化安裝 CentOs 后是沒法直接用 ifconfig、netstat 命令的,如果要用 ifconfig、netstat 等
命令需要安裝 net-tools。

yum install -y net-tools

  1. yum 軟件包查找

yum search ifconfig 然后結果是在net-tools包種

安裝的時候忘記開啟網絡我們可以在配置文件中開啟網絡

vi /etc/sysconfig/network-scripts/ifcfg-ens33 (有可能ifcfg-ens33是別的名字)
找到ONBOOT='no'修改為 yes

Linux 常用命令、shell 技巧、目錄結構介紹

  • Linux 常用命令

  1. init 0 關機
  2. init 6 重啟
  3. ls 、 ls -l 、 ll 列出出當前目錄下的文件
  4. cd 切換目錄
  5. pwd 查看當前路徑
  6. cd - 切換最近使用過的兩個目錄
  7. ctrl+c 中斷當前程序
  8. ctrl+l / (clear) 清屏
  9. ip addr / ifconfig 查看網卡信息
  10. ping 127.0.0.1 看網絡是否通暢

  • Linux shell 命令技巧

  1. tab 補全
    • 命令+(1 次)tab
    • 命令+(2 次)tab
  2. 上下鍵盤 查看最近的歷史命令
  3. history
    • 查看命令歷史:!22 調用歷史中編號為 22 的命令
  4. !h : 調用歷史中最后一次以 h 開頭的命令
  • 獲取幫助:ls --help / man ls

  • Linux 目錄結構介紹

  • root 目錄:linxu 超級權限 root 的主目錄。*
  • home 目錄:系統默認的用戶主目錄,如果添加用戶是不指定用戶的主目錄,默認在/home下創建與用戶同名的文件夾。 *
  • bin 目錄:存放系統所需要的重要命令,比如文件或目錄操作的命令 ls、cp、mkdir 等,另外
    /usr/bin 也放了一些系統命令。這些命令對應著文件都是可以執行的。 *
  • sbin 目錄:存放只有 root 超級管理員才能執行的程序 *
  • boot 目錄:存放著 linux 啟動時內核及引導系統程序所需要的核心文件,內核文件和 grub
    系統引導管理器都位于此目錄。
  • dev 目錄:存放這 linux 系統下的設備文件,如光驅等。
  • etc 目錄:存放系統的配置文件,作為一些軟件啟動時默認配置文件讀取的目錄,如/etc/fstal
    存放系統分析信息。 * mnt 目錄: 臨時文件掛載目錄、 也可以說是測試目錄
  • opt 目錄: 第三方軟件存放目錄* media 目錄:即插即用型設備掛載點,光盤默認掛載點,通常光* 盤掛載于/mnt/cdrom 下。
  • tmp 目錄:臨時文件夾。*
  • usr 目錄:應用程序存放目錄,安裝 linux 軟件包是默認安裝到/usr/local 目錄下。 *
  • var 目錄:目錄經常變動,/var/log 存放系統日志,/var/log 存放系統庫文件。*

Linux 文件管理 目錄管理

Linux 文件管理


  1. 創建文件
    touch file1
  2. 刪除文件
    • rm -rf file11
    • -r:遞歸的刪除目錄下面文件以及子目錄下文件。
    • -f:強制刪除,忽略不存在的文件,從不給出提示
  3. 修改文件名:mv file1 file11
  4. 查看文件內容:cat file1
  5. 復制文件:cp file2 file22
  6. 移動文件:mv file1 file11
  7. 編輯文件:vi file1
  8. 批量創建刪除文件
    • touch file{1..10}
    • rm -rf file{1..10}
  9. 查看文件前 3 行
    • | 把前面的執行結構給后端
    • cat file1 | head -3
  10. 查看文件后 3 行:cat file1 | tail -3
  11. liunx 服務器上面查找文件
    1. find
    • find / -name httpd.conf
    • find 目錄 -name 文件名
    1. updatedb 查找速度快
    • 建立一個小型數據庫 updatedb
    • 再數據庫里面搜索 locate httpd.conf
    • yum install mlocate -y
    • mlocate 是新型的 locate 比 updatedb 速度更快。
  12. 查找文件里面內容 找到 httpd.conf 里面有 listen
    • cat httpd.conf | grep listen
    • cat httpd.conf | grep -ignore listen / cat httpd.conf | grep -i listen 忽略大小寫
  13. 查找文件里面內容 vi 搜索(注意是命令行模式下,不是編輯模式下)
    • vi httpd.conf
    • 輸入 /Listen 搜索 Listen N 下一個

Vi/Vim 快速入門

vi 是 Unix 和類 Unix 環境下的可用于創建文件的屏幕編輯器。vi 有兩種工作模式:命令模式
和文本輸入模式。vim 是 vi 的升級版本,它不僅兼容 vi 的所有指令,而且還有一些新的特性在里面。


圖1.png
  1. 退出vi命令模式


    圖2.png
  2. 命令模式下文本修改


    圖3.png
圖4.png

Linux 目錄操作


  1. 創建目錄: mkdir dir1 dir2 dir3
  2. 刪除目錄
    • rm -rf dir1 dir2
    • -r:遞歸的刪除目錄下面文件以及子目錄下文件。
    • -f:強制刪除,忽略不存在的文件,從不給出提示
      rm -rf dir* 以 dir 開頭的所有文件刪除
  3. 重命名目錄或移動目錄:mv dir1 dir11
  4. 查看目錄:ls
  5. 遞歸創建目錄:mkdir -p a/b/c/d/e/f/g
  6. 遞歸查看目錄:tree a
  7. 復制目錄:cp -rf wwwroot/ mywwwroot/
  8. tree 命令不存在的話需要安裝

yum install tree -y


Linux ll 顯示的文件類型

Linux 下可以用 ll 命令來判斷文件類型,主要是根據每行的首個字符來判斷


  • -rw-r—r— "-“開頭的都是普通文件;
  • drw-r—r— "d"開頭的是目錄文件;
  • brw-r—r— "b"開頭的文件都是塊設備文件;
  • crw-r—r— "c"開頭的文件都是字符設備文件;
  • srw-r—r— "s"開頭的文件都是 socket 文件; (e.g. srwxrwxrwx 1 mysql mysql 0 Sep 9
    13:49 mysql.sock)
  • prw-r—r— "p"開頭的文件都是管道文件;
  • lrw-r—r— "l"開頭的文件都是軟鏈接文件;

Linux 打包壓縮 別名管理

Linux 打包壓縮命令

目前 linux 中打包和壓縮的命令很多,最常用的方法有 zip、gzip、bzip2、xz、tar

  1. zip 壓縮包

  1. 制作

zip -r public.zip public
-r 遞歸 表示將指定的目錄下的所有子目錄以及文件一起處理

  1. 解壓

unzip public.zip

unzip public.zip -d dir

  1. 查看: unzip -l public.zip
  2. 安裝 zip 減壓軟件

yum install -y unzip zip


  1. gz 壓縮包: (源代碼壓縮)

Linux 下最常用的打包程序就是 tar 了,使用 tar 程序打出來的包我們常稱為 tar 包,tar
包文件的命令通常都是以.tar 結尾的。生成 tar 包后,就可以用其它的程序來進行壓縮了,
所以首先就來講講 tar 命令的基本用法。gz包是在tar包的基礎上生成的。


  1. 制作 gz 包
    tar czvf public.tar.gz public
  2. 解壓 gz 包
    tar xzvf public.tar.gz
  3. 查看 gz 包
    tar tf public.tar.gz
  4. 制作 tar 包
    tar cvf wwwroot.tar wwwroot 僅打包,不壓縮!
  5. 解壓 tar 包
    tar xvf wwwroot.tar

參數:
特別注意,在參數的下達中, c/x/t 僅能存在一個!不可同時存在!因為不可能同時壓
縮與解壓縮。

  • -c :建立一個壓縮檔案的參數指令(create 的意思) -x :解開一個壓縮檔案的參數指令!
  • -t :查看 tarfile 里面的檔案!
  • -z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
  • -j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
  • -v :壓縮的過程中顯示檔案!這個常用,但不建議用在背景執行過程!
  • -f :使用檔名,請留意,在 f 之后要立即接檔名喔!不要再加參數!

  1. xz 壓縮包

對于 xz 這個壓縮相信很多人陌生,但 xz 是絕大數 linux 默認就帶的一個壓縮工具,xz
格式比 7z 還要小


  1. 制作
  • tar cvf xxx.tar xxx // 這樣創建 xxx.tar 文件先,
  • xz xxx.tar //將 xxx.tar 壓縮成為 xxx.tar.xz 刪除原來的 tar 包
  • xz -k xxx.tar //將 xxx.tar 壓縮成為 xxx.tar.xz 保留原來的 tar 包
  1. 解壓
  • xz -d ***.tar.xz //先解壓 xz 刪除原來的 xz 包
  • xz -dk ***.tar.xz //先解壓 xz 保留原來的 xz 包
  • tar -xvf ***.tar //再解壓 tar
  1. 查看: xz -l ***.tar.xz //先解壓 xz

別名管理


  1. 添加別名
    alias chttp='cat /etc/httpd/conf/httpd.conf' chttp
  2. 刪除別名
    unalias chttp
  3. 查看別名
    alias

用戶管理 和 用戶權限管理 chmod、ACL、visudo

用戶管理

Linux 系統同時可以支持多個用戶,每個用戶對自己的文件設備有特殊的權利,能夠保
證用戶之間互不干擾。就像手機開了助手一樣,同時登陸多個 qq 賬號,當硬件配置非常高
時,每個用戶還可以同時執行多個任務,多個線程同時工作,提高效率。多用戶是 Linux 優
于其他操作系統的一大特點


  1. 添加用戶
    useradd lisi
  2. 設置密碼
    passwd lisi
  3. 刪除用戶

userdel -r lisi -r:遞歸的刪除目錄下面文件以及子目錄下文件。

備注:刪除用戶的時候用戶組被刪除

  1. 查看用戶:id user
  2. 把用戶加入組

gpasswd -a testuser root

把用戶 testuser 加入到 root 組,加入組后 testuser 獲取到 user 組及 root 組所有權限

  • 移出組

gpasswd -d testuser root


用戶權限 用戶分類

網站發布到 linux 服務器下面一般要設置權限,不然的話可能沒法上傳圖片,或者沒法寫入
文件。Windows 中權限沒有那么明顯可以含糊的過去,linux 里面對權限管控非常嚴格。

用戶權限:
drwxr-x---. 2 root root 6 4 月 11 2018 mnt

對應說明:
d 表示目錄
rwx root 對 mnt 目錄具有讀、寫和執行的權限
r-x root 組內其他用戶對 mnt 目錄具有讀和執行權限
--- other 其他所有用戶對 mnt 目錄沒有任何權限
. 表示 ACL 的屬性
2 mnt 里面的目錄數量
root 當前目錄所屬用戶
root 當前目錄所屬組
6 文件文件大小(以字節為單位) 這個字段表示文件大小,如果是一個文件夾,則表示該
文件夾的大小.請注意是文件夾本身的大小,而不是文件夾以及它下面的文件的總大小!很多
人不能理解文件夾是一個特殊的文件的含義,這樣的話理解文件夾大小的含義就比較困難了. 4 月 文件創建月份
11 2018 文件創建時間
mnt 目錄名稱
權限:就是人對文件所擁有權限,權限就是是哪個 讀、寫、執行
用戶群體: 所有者 user u 、所屬組 group g 、其他用戶 other o 、所有用戶 all a
權限:
r 讀
w 寫
x 執行
用戶:
所有者 user u
所屬組 group g
其他用戶 other o
所有用戶 all a u+g+o=a(表示所有人)
目錄的 rwx
r 查看目錄里面的文件(4)
w 在目錄里創建或刪除文件(2)
x 切換進目錄(1)
文件的 rwx
r 查看文件內容
w 在文件里寫內容
x 執行該文件(文件不是普通文件,是程序或腳本)

chmod 權限分配


  1. +增加權限 -刪除權限
  • chmod u+x my.sh 給當前用戶分配執行 my.sh 的權限
  • chmod o+r,o+w file.txt 給其他用戶分配對 file.txt 的讀寫權限
  • chmod o+r,o+w,o+x mnt 給所有其他用戶分配對 mnt 目錄的進入、讀取、寫入權限
  • chmod -R o+r,o+w,o+x mnt 修改目錄下的所有文件的權限為可讀、可修改、可執行
  • chmod 755 file
  • 755 表示-rwxr-xr-x
  • chmod -R 777 wwwroot/ 修改目錄下的所有文件的權限為可讀、可修改、可執行
  • 需求 1:讓其他人對 mnt 目錄沒有任何權限
  • chmod o-r,o-w,o-x mnt
  • 需求 2:所有人對 test.sh 文件具有 x 的權限
  • chmod a+x test.sh
  • 需求 3:讓所有用戶對 test.sh 都沒有 x 權限
  • chmod a-x test.sh
  • 需求 4:讓所有用戶對 mnt 以及 mnt 里面的所有文件和文件夾都有 w 權限
  • chmod o-r,o-w,o-x root
  • chmod -R a+w mnt/

用戶權限管理 ACL


  • 需求 5:讓 zhangsan 對 opt 目錄具有 rx 權限,讓 lisi 對 opt 目錄具有 rwx 的權限
    -m 修改

[root@localhost /]# setfacl -m u:zhangsan:rx opt/
[root@localhost /]# setfacl -m u:lisi:rwx opt/

  1. 查看 opt 擁有的 acl 權限

getfacl opt

  1. 設置 opt 的 acl 權限

setfacl -m u:zhangsan:rwx opt

  1. 刪除 opt 的 user1 擁有的 acl 權限

setfacl -x u:zhangsan opt -x 刪除權限

  1. 刪除 opt 上所設置過的所有 acl 權限

setfacl -b opt/


用戶權限管理 visudo


which 命令


圖5.png

sbin 下面的命令執行權限

  1. 設置
  • 輸入: visudo
  • 編輯 %zhangsan localhost=/usr/sbin/useradd
    %zhangsan localhost=/usr/sbin/userdel
  1. 使用 普通用戶家 sudo
  • sudo useradd wangwu
  • sudo userdel wangwu

Linux 軟件安裝調試 rpm 包管理以及 yum

rpm 安裝和卸載軟件

在 Linux 操作系統下,幾乎所有的軟件均通過 RPM 進行安裝、卸載及管理等操作。RPM 的
全稱為 Redhat Package Manager ,是由 Redhat 公司提出的,用于管理 Linux 下軟件包的軟件。Linux 安裝時,除了幾個核心模塊以外,其余幾乎所有的模塊均通過 RPM 完成安裝


  1. 掛載光盤
  • 必須把把光盤放在光驅中
  • 光驅必須放連上電腦
  • mount dev/cdrom /media 掛載
  • df 查看光盤是否掛載
  • 查找 ls | grep httpd
  1. 安裝
  1. 卸載軟件
  • rpm -e httpd httpd 表示要卸載的軟件包
  • rpm -q httpd 查找 httpd
  1. 升級包
    rpm -Uvh 軟件

Yum 安裝軟件

Yum(全稱為 Yellow dog Updater, Modified)是一個在 Fedora 和 RedHat 以及 CentOS 中的 Shell前端軟件包管理器。基于 RPM 包管理,能夠從指定的服務器自動下載 RPM 包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。


  1. yum 安裝 rpm 包
  • yum install -y net-tools 包括 netstat ifconfig 等命令
  • yum install -y unzip zip zip 壓縮減壓
  • yum install -y mlocate updatedb
  • yum install -y wget
  • yum -y install psmisc pstree | grep httpd 查看進程 pstree -p 顯示進程以及子進程
  1. yum 卸載 rpm 包
  • yum -y remove wget
  1. yum 搜索 npm 包
  • yum search 名稱
  1. yum 查看 rpm 包
  • yum list
  • yum list | grep httpd
  • yum list updates 列出所有可更新的軟件包
  • yum list installed 列出所有已安裝的軟件包
  1. yum 顯示 rpm 包信息
  • yum info package1
  • 如:
  • yum info httpd
  • yum info zip
  • yum info unzip
  1. yum 遠程安裝 Apache
  • yum -y install httpd service httpd start 安裝啟動 apache
  1. yum 本地安裝 Apache RPM 包
  • yum localinstall httpd-2.4.6-80.el7.centos.x86_64.rpm

Yum 倉庫設置

  1. yum 的主配置文件 etc/yum.conf (了解)
[main] 
cachedir=/var/cache/yum
//yum 緩存的目錄,yum 在此存儲下載的 rpm 包和數據庫,默認設置為/var/cache/yum
keepcache=0
//安裝完成后是否保留軟件包,0 為不保留(默認為 0),1 為保留
debuglevel=2
//Debug 信息輸出等級,范圍為 0-10,缺省為 2
logfile=/var/log/yum.log
//yum 日志文件位置。用戶可以到/var/log/yum.log 文件去查詢過去所做的更新。
pkgpolicy=newest
//包的策略。一共有兩個選項,newest 和 last,這個作用是如果你設置了多個 repository,而同一軟
件在不同的 repository 中同時存在,yum 應該安裝哪一個,如果是 newest,則 yum 會安裝最新的那個版
本。如果是 last,則 yum 會將服務器 id 以字母表排序,并選擇最后的那個服務器上的軟件安裝。一般都
是選 newest。
distroverpkg=redhat-release
//指定一個軟件包,yum 會根據這個包判斷你的發行版本,默認是 redhat-release,也可以是安裝的
任何針對自己發行版的 rpm 包。
tolerant=1
//有 1 和 0 兩個選項,表示 yum 是否容忍命令行發生與軟件包有關的錯誤,比如你要安裝 1,2,3 三個
包,而其中 3 此前已經安裝了,如果你設為 1,則 yum 不會出現錯誤信息。默認是 0。
exactarch=1
//有 1 和 0 兩個選項,設置為 1,則 yum 只會安裝和系統架構匹配的軟件包,例如,yum 不會將 i686
的軟件包安裝在適合 i386 的系統中。默認為 1。
retries=6
//網絡連接發生錯誤后的重試次數,如果設為 0,則會無限重試。默認值為 6. obsoletes=1
//這是一個 update 的參數,具體請參閱 yum(8),簡單的說就是相當于 upgrade,允許更新陳舊的 RPM
包。
plugins=1
//是否啟用插件,默認 1 為允許,0 表示不允許。我們一般會用 yum-fastestmirror 這個插件。
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_ page.php?category=yum
# Note: yum-RHN-plugin doesn't honor this. metadata_expire=1h
installonly_limit = 5
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
  1. yum 的倉庫配置文件 /etc/yum.repo.d/*.repo (了解)

yum 倉庫就是使用 yum 命令下載軟件的鏡像地址
我們通常使用 yum install 命令來在線安裝 linux 系統的軟件, 這種方式可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,但是經常會遇到從國外鏡像下載速度慢,無法下載的情況.那么此時我們就需要把我們的 yum 源改為國內的鏡像, centOs 中 yum 的配置文件在 /etc/yum.repos.d 目錄下, 其中有多個配置文件,每一個配置文件中都可以配置一個或多個
repository, 但是最終會被合并為一個交給系統,所以多個文件只是為了方便管理。

  • Yum 安裝 Nginx

  1. 安裝 nginx 源

sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

  1. 查看 Nginx 源是否配置成功
  • 通過 yum search nginx 看看是否已經添加源成功。如果成功則執行下列命令安裝 Nginx。
    或者 npm info nginx 也可以看看 nginx 源是否添加成功
  1. 安裝 Nginx
  • sudo yum install -y nginx 3、啟動 Nginx 并設置開機自動運行
  • sudo systemctl start nginx.service
  • sudo systemctl enable nginx.service

防火墻


CentOS7使用firewalld打開關閉防火墻與端口實戰

  1. firewalld的基本使用
  • 啟動: systemctl start firewalld
  • 關閉: systemctl stop firewalld
  • 查看狀態: systemctl status firewalld
  • 開機禁用 : systemctl disable firewalld
  • 開機啟用 : systemctl enable firewalld
  1. systemctl是CentOS7的服務管理工具中主要的工具,它融合之前service和chkconfig的功能于一體。
  • 啟動一個服務:systemctl start firewalld.service
  • 關閉一個服務:systemctl stop firewalld.service
  • 重啟一個服務:systemctl restart firewalld.service
  • 顯示一個服務的狀態:systemctl status firewalld.service
  • 在開機時啟用一個服務:systemctl enable firewalld.service
  • 在開機時禁用一個服務:systemctl disable firewalld.service
  • 查看服務是否開機啟動:systemctl is-enabled firewalld.service
  • 查看已啟動的服務列表:systemctl list-unit-files|grep enabled
  • 查看啟動失敗的服務列表:systemctl --failed
  1. 配置firewalld-cmd
  • 查看版本: firewall-cmd --version

  • 查看幫助: firewall-cmd --help

  • 顯示狀態: firewall-cmd --state

  • 查看所有打開的端口: firewall-cmd --zone=public --list-ports

  • 更新防火墻規則: firewall-cmd --reload

  • 查看區域信息: firewall-cmd --get-active-zones

  • 查看指定接口所屬區域: firewall-cmd --get-zone-of-interface=eth0

  • 拒絕所有包:firewall-cmd --panic-on

  • 取消拒絕狀態: firewall-cmd --panic-off

  • 查看是否拒絕: firewall-cmd --query-panic

  • 那怎么開啟一個端口呢

  • 添加

  • firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,沒* 有此參數重啟后失效)

  • 重新載入

  • firewall-cmd --reload

  • 查看

  • firewall-cmd --zone= public --query-port=80/tcp

  • 刪除

  • firewall-cmd --zone= public --remove-port=80/tcp --permanent


Linux軟件安裝調試 源代碼包編譯安裝和二進制包配置

linux 下源代碼(C 語言)如何編譯(安裝)

  1. 先安裝源代碼編譯的軟件 gcc,make,openssl 如下:

  • yum install -y gcc make gcc-c++ openssl-devel
  • 檢查系統中是否已經安裝 gcc:
  • rpm -qa | grep gcc / rpm -ql gcc

  1. 三步走編譯安裝 linux 源代碼

  1. 生成編譯配置文件(Makefile)
  2. 開始編譯(make)
  3. 開始安裝(make install)
    安裝 httpd-2.2.9.tar.gz 源代碼:
    • 減壓并 cd 到對應目錄
    • ./configure --prefix=/usr/local/apache 安裝路徑設置為/usr/local/apache
    • make / make -j4
    • make install

  1. 卸載源代碼安裝的軟件

  1. 結束進程
  • pstree|grep httpd
  • pkill httpd
  1. 刪除源代碼
  • cd /usr/local/
  • 直接刪除源代碼 rm -rf apache/

linux 下源代碼安裝 nodejs


  1. 下載 nodejs 源碼包
  2. 減壓到 usr/local/nodejs 目錄
  3. ./configure
  4. make / make -j4
  5. make install

linux 下源代碼安裝 Apache


  1. 減壓 httpd-2.2.9.tar.gz 到對應目錄
  2. ./configure 編譯
  • ./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc/ * --with-included-apr --enable-dav
  • --enable-so --enable-deflate=shared --enable-expires=shared
  • --enable-rewrite=shared
  1. make 4、make install
  • 啟動 Apache 測試:
  • /usr/local/apache2/bin/apachectl restart
  • .查看進程: ps -le | grep httpd

二進制包配置,二進制安裝配置 nodejs

二進制包里面包括了已經經過編譯,可以馬上運行的程序,所以二進制包的安裝只需要丟到一個目錄里面就可以了。

  1. 上傳或者通過wget下載node二進制包


  1. 配置環境變量

vi /etc/profile

  1. 最后面添加:

  • export NODE_HOME=/usr/local/nodejs/bin
  • export PATH=NODE_HOME:PATH

  1. :wq 保存,然后運行

source /etc/profile

  1. 可以用 node -v 和 npm -v 來檢查下

node -v

  1. 查看環境變量是否生效

echo $PATH

Linux 內存、cpu、進程、端口、硬盤管理

內存、cup 管理 top 命令

  1. op 命令的第一行:

top - 15:31:47 up 9:30, 3 users, load average: 0.00, 0.02, 0.05

依次對應:系統當前時間 up 系統到目前為止 i 運行的時間, 當前登陸系統的用戶數量, load average 后

面的三個數字分別表示距離現在一分鐘,五分鐘,十五分鐘的負載情況

  1. top 命令的第二行

Tasks: 133 total, 1 running, 132 sleeping, 0 stopped, 0 zombie

依次對應:tasks 表示任務(進程),133 total 則表示現在有 133 個進程,其中處于運行中
的有 1 個,132 個在休眠(掛起),stopped 狀態即停止的進程數為 0,zombie 狀態即僵尸
的進程數為 0 個

  1. top 命令的第三行,cpu 狀態

%Cpu(s): 0.2 us, 0.4 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st

只看空閑就可以了:cpu 空閑率為 99.3%


  • us:user 用戶空間占用 cpu 的百分比
  • sy:system 內核空間占用 cpu 的百分比
  • ni:niced 改變過優先級的進程占用 cpu 的百分比
  • 空閑 cpu 百分比
  • wa:IO wait IO 等待占用 cpu 的百分比
  • hi:Hardware IRQ 硬中斷 占用 cpu 的百分比
  • si:software 軟中斷 占用 cpu 的百分比
  • st:被 hypervisor 偷去的時間

  1. top 命令的第四行,內存狀態

KiB Mem : 2897496 total, 1995628 free, 191852 used, 710016 buff/cache

總內存:2.76g 空閑:1995628/1024/1024=1.9g 已經使用 0.18g 緩存區內存 0.67g
緩沖區是從主內存中特地預留出的內存,用來存放特定的一些信息,例如從磁盤中取得的文件表,程序正在讀取的內容等等

  1. top 命令第七行,各進程的監控

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND


  • PID — 進程 id
  • USER — 進程所有者
  • PR — 進程優先級
  • NI — nice 值。負值表示高優先級,正值表示低優先級
  • VIRT — 進程使用的虛擬內存總量,單位 kb。VIRT=SWAP+RES
  • RES — 進程使用的、未被換出的物理內存大小,單位 kb。RES=CODE+DATA
  • SHR — 共享內存大小,單位 kb
  • S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進程
  • %CPU — 上次更新到現在的 CPU 時間占用百分比
  • %MEM — 進程使用的物理內存百分比
  • TIME+ — 進程使用的 CPU 時間總計,單位 1/100 秒
  • COMMAND — 進程名稱(命令名/命令行)

內存、cup 管理 uptime 命令

top - 15:31:47 up 9:30, 3 users, load average: 0.00, 0.02, 0.05


  1. 服務器工作時間
  2. 在線用戶
  3. 平均負載 一分鐘,五分鐘,十五分鐘的負載情況

看當前登錄的賬戶 who、查看最新操作電腦的用戶 last


  • who 命令: 顯示當前正在系統中的所有用戶名字,使用終端設備號,注冊時間。
  • whoami : 顯示出當前終端上使用的用戶。
  • last:last 作用是顯示近期用戶或終端的登錄情況

進程管理查看、殺死

  1. 查看進程

  • pstree 查看進程樹
  • pstree -ap 顯示所有信息
  • pstree | grep httpd
  • pstree -ap | grep httpd
  • ps -au
  • ps -au |grep httpd
  • ps -aux

ps 中 aux 的含義:
顯示現行終端機下的所有程序,包括其他用戶的程序(a)
以用戶為主的格式來顯示程序狀況。 (x)
顯示所有程序,不以終端機來區分(u)

  1. 關閉進程

  • pkill httpd : pkill 進程的名字
  • kill 2245 : kill 進程號
  • kill -9 1234: kill -9 進程號 強制殺死

kill:執行 kill 命令,系統會發送一個 SIGTERM 信號給對應的程序。當程序接收到該 signal 信號后,將會發
生以下事情:
程序立刻停止
當程序釋放相應資源后再停止
程序可能仍然繼續運行
大部分程序接收到 SIGTERM 信號后,會先釋放自己的資源,然后再停止。但是也有程序可能接收信號后,
做一些其他的事情(如果程序正在等待 IO,可能就不會立馬做出響應,我在使用 wkhtmltopdf 轉 pdf 的項
目中遇到這現象),也就是說,SIGTERM 多半是會被阻塞的。
kill -9: kill -9 命令,系統給對應程序發送的信號是 SIGKILL,即 exit。exit 信號不會被系統阻塞,所以 kill -9
能順利殺掉進程。 

查看端口

netstat -tunpl |grep httpd


  • -t 或--tcp 顯示 TCP 傳輸協議的連線狀況。
  • -u 或--udp 顯示 UDP 傳輸協議的連線狀況。
  • -n 或--numeric 直接使用 IP 地址,而不通過域名服務器。
  • -p 或--programs 顯示正在使用 Socket 的程序識別碼和程序名稱。
  • -l 或--listening 顯示監控中的服務器的 Socket。

  • 關閉防火墻:Firewalld 關閉:systemctl stop firewalld; SELinux 關閉:setenforce 0

查看硬盤信息

df 命令作用是列出文件系統的整體磁盤空間使用情況。可以用來查看磁盤已被使用多少空間和還剩余多少空間


  • df
  • df -h 以人們易讀的方式顯示,總共多少 g 用了多少 g
  • df /home 查看該文件夾所在磁盤的使用情況

Linux systemctl 管理服務、防火墻 firewalld以及 SELinux 配置

使用 systemctl 管理服務

systemctl 就是 service 和 chkconfig 這兩個命令的整合,在 CentOS 7 就開始被使用了,systemctl是系統服務管理器命令,它實際上將 service 和 chkconfig 這兩個命令組合到一起

圖6.png
  • Syetemclt 管理服務常用命令

  1. 啟動服務:systemctl start httpd
  2. 關閉服務:systemctl stop httpd
  3. 重啟服務:systemctl restart httpd
  4. 查看一個服務的狀態:systemctl status httpd
  5. 查看一個服務是否在運行:systemctl is-active httpd
  6. 查看當前已經運行的服務:systemctl list-units -t service 6、列出所有服務: systemctl list-units -at service 注意順序
  7. 設置開機自啟動: systemctl enable httpd
  8. 停止開機自啟動: systemctl disable httpd
  9. 列出所有自啟動服務:
    • systemctl list-unit-files|grep enabled
    • systemctl list-unit-files|grep disabled
    • systemctl list-unit-files|grep disabled | grep httpd
  10. 使指定服務從新加載配置:systemctl reload httpd

Firewalld 防火墻的設置

從 CentOS7(RHEL7)開始,官方的標準防火墻設置軟件從 iptables 變更為 firewalld,相信不少習慣使用iptables 的人會感到十分不習慣,但實際上 firewalld 更為簡單易用


  1. firewalld 的基本使用:
    • 啟動: systemctl start firewalld
    • 關閉: systemctl stop firewalld
    • 查看狀態: systemctl status firewalld
    • 開機禁用 : systemctl disable firewalld
    • 開機啟用 : systemctl enable firewalld
  2. 配置 firewall-cmd :
    • 顯示狀態: firewall-cmd --state
    • 查看所有打開的端口: firewall-cmd --zone=public --list-ports
    • 更新防火墻規則: firewall-cmd --reload
  3. 那怎么開啟一個端口呢:
    • firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent 永久生效,沒有此參數重啟后失效)
    • 重新載入:
    • firewall-cmd --reload 修改 firewall-cmd 配置后必須重啟
    • 查看:
    • firewall-cmd --zone= public --query-port=80/tcp
    • 刪除:
    • firewall-cmd --zone= public --remove-port=80/tcp --permanent

SELinux 防火墻的設置

安全增強型 Linux(Security-Enhanced Linux)簡稱 SELinux,它是一個 Linux 內核模塊,也是 Linux 的一個安全子系統。
SELinux 主要由美國國家安全局開發。2.6 及以上版本的 Linux 內核都已經集成了 SELinux 模塊。SELinux 的結構及配置非常復雜,而且有大量概念性的東西,要學精難度較大。很多 Linux 系統管理員嫌麻煩都把 SELinux 關閉了。阿里云安裝的 centos 默認已經關閉了。西部數碼云服務器默認也是關閉的

  • 查看 SELinux 狀態

  1. /usr/sbin/sestatus -v ##如果 SELinux status 參數為 enabled 即為開啟狀態
    SELinux status: enabled
  2. getenforce ##也可以用這個命令檢查

  • 關閉 SELinux
  1. 臨時關閉(不用重啟機器)

  • setenforce 0 ##設置 SELinux 成為 permissive 模式
  • setenforce 1 設置 SELinux 成為 enforcing 模式

  1. 修改配置文件需要重啟機器

修改/etc/selinux/config 文件將 : SELINUX=enforcing 改為 SELINUX=disabled

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,030評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,310評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,951評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,796評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,566評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,055評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,142評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,303評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,799評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,683評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,899評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,409評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,135評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,520評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,757評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,528評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,844評論 2 372

推薦閱讀更多精彩內容

  • 第一章 1.Linux是一套免費使用和自由傳播的類UNIX操作系統,它可以基于Intel x86系列處理器以及Cy...
    yansicing閱讀 5,476評論 0 9
  • Linux習慣問題: 在vim編輯時,按了ctrl + s后,再按ctrl + q就可以繼續執行了。ctrl + ...
    光著腳的鞋閱讀 4,530評論 0 16
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數據革命閱讀 12,197評論 2 33
  • 系統管理與維護命令 date date(選項)(參數) | 選項 | 說明 | | :-------- | ...
    蓓蓓的萬能男友閱讀 3,911評論 0 5
  • 什么是shell shell 是一個命令語言解釋器(command-language interpreter)。 ...
    Arteezy_Xie閱讀 1,073評論 0 0