1. 程式人生 > 其它 >Linux企業常用命令詳解

Linux企業常用命令詳解

cat :檢視 cat [-AbeEnstTuv] [--help] [--version] fileName 常用引數: -n :由 1 開始對所有輸出的行數編號 -b :和 -n 相似,對於空白行不編號 示例: 將test1中的內容加上行號輸入到test2檔案中: cat -n test1 > test2 等同於more,more可以分頁顯示,空格下一頁,b上一頁。   chmod:許可權 chmod [-cfvR] [--help] [--version] mode file... 常用引數: + 為指定的使用者型別增加許可權 - 去除指定使用者型別的許可權 = 設定指定使用者許可權的設定,即將使用者型別的所有許可權重新設定 u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬於同一個群體(group)者,o 表示其他以外的人,a 表示這三者皆是 r 表示可讀取,w 表示可寫入,x 表示可執行 r=4,w=2,x=1 若要 rwx 屬性則 4+2+1=7;若要 rw- 屬性則 4+2=6;若要 r-x 屬性則 4+1=5。   mv:更名移動
mv [options] source dest mv [options] source... directory 常用引數: -b: 當目標檔案或目錄存在時,在執行覆蓋前,會為其建立一個備份。 -i: 如果指定移動的源目錄或檔案與目標的目錄或檔案同名,則會先詢問是否覆蓋舊檔案 -n: 不要覆蓋任何已存在的檔案或目錄 示例: 將 /usr/runoob 下的所有檔案和目錄移到當前目錄下 $ mv /usr/runoob/* .   rm:刪除 rm [options] filename... 常用引數: -i 刪除前逐一詢問確認。 -f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。 -r 將目錄及以下之檔案亦逐一刪除。 示例: rm -rf test.sh   touch:檔案時間修改,沒有則建立檔案
常用引數: a 改變檔案的讀取時間記錄。 m 改變檔案的修改時間記錄。 d 設定時間與日期,可以使用各種不同的格式 示例: $ touch testfile #修改檔案的時間屬性   cp:複製檔案或目錄 cp [options] source dest 常用引數: -a:保留連結、檔案屬性,並複製目錄下的所有內容 -i:重複檔案覆蓋提示 -r:原始檔是一個目錄檔案,將複製該目錄下所有的子目錄和檔案   scp: Linux 之間複製檔案和目錄 scp 是加密的,rcp 是不加密的,scp 是 rcp 的加強版 scp [可選引數] file_source file_target 常用引數: -r: 遞迴複製整個目錄 -p:保留原檔案的修改時間和格式 示例: 本地複製到遠端端:scp -r /home/space/music/ root@
www.runoob.com:/home/root/others/
遠端端複製到本地:scp [email protected]:/home/root/others/music /home/space/music/1.mp3   cd:切換當前工作目錄 cd [dirName]   df:顯示磁碟使用情況 df [選項]... [FILE]... 常用引數: 檔案-h, --human-readable 使用人類可讀的格式 示例: df -h   du:顯示目錄或檔案的大小 du [-引數] filename... 常用引數: -a: 顯示目錄中個別檔案的大小 -c: 除了顯示個別目錄或檔案的大小外,同時也顯示所有目錄或檔案的總和 -h: 以K,M,G為單位,提高資訊的可讀性 -s: 僅顯示總計 示例: # du -h test 608K test/test6 308K test/test4   mkdir:建立目錄 mkdir [-p] dirName 常用引數: -p :確保目錄名稱存在,不存在的就建一個 示例: mkdir runoob   pwd:顯示工作目錄(得知目前所在目錄的絕對路徑) pwd [--help][--version] 示例: # pwd /root/test #輸出結果   mount:用於掛載Linux系統外的檔案。 mount [引數] [需掛載的目錄] [掛載到的目錄] 常用引數: -o remount:將已經掛下的檔案系統重新用不同的方式掛上 -o ro:用唯讀模式掛上。 -o rw:用可讀寫模式掛上 示例: 將 /dev/hda1 掛在 /mnt 之下 #mount /dev/hda1 /mnt   umount:卸除目前掛在Linux目錄中的檔案系統 umount [-ahnrvV][-t <檔案系統型別>][檔案系統] 常用引數: -a :卸除/etc/mtab中記錄的所有檔案系統 -t<檔案系統型別> :僅卸除選項中所指定的檔案系統 # umount -v /dev/sda1 通過裝置名解除安裝 /dev/sda1 umounted # umount -v /mnt/mymount/ 通過掛載點解除安裝 /tmp/diskboot.img umounted   ls:顯示指定工作目錄下之內容 ls [-alrtAFR] [name...] 常用引數: -a 顯示所有檔案及目錄 (  -l 除檔名稱外,亦將檔案型態、許可權、擁有者、檔案大小等資訊詳細列出 -t 將檔案依建立時間之先後次序列出 示例: 列出根目錄(\)下的所有目錄: # ls /   telnet:命令用於遠端登入 telnet [-8acdEfFKLrx][-b<主機別名>][-e<脫離字元>][-k<域名>][-l<使用者名稱稱>][-n<記錄檔案>][-S<服務型別>][-X<認證形態>][主機名稱或IP地址<通訊埠>] 常用引數:
  • -a 嘗試自動登入遠端系統。
  • -b<主機別名> 使用別名指定遠端主機名稱。
  • -d 啟動排錯模式。
  • -l<使用者名稱稱> 指定要登入遠端主機的使用者名稱稱。
示例: 驗證主機間連線狀態 telnet IP:埠號 登入遠端主機 # telnet 192.168.0.5 //登入IP為 192.168.0.5 的遠端主機   ifconfig:顯示或設定網路裝置 ifconfig [網路裝置][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<網路裝置型別><硬體地址>][io_addr][irq<irq地址>][media<網路媒介型別>][mem_start<記憶體地址>][metric<數目>][mtu<位元組>][netmask<子網掩碼>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址] 常用引數:
  • add<地址> 設定網路裝置IPv6的IP地址。
  • del<地址> 刪除網路裝置IPv6的IP地址。
  • down 關閉指定的網路裝置。
  • netmask<子網掩碼> 設定網路裝置的子網掩碼
  • up 啟動指定的網路裝置。
示例: 1.顯示網路裝置資訊 # ifconfig 2.啟動關閉指定網絡卡 # ifconfig eth0 down # ifconfig eth0 up 3.配置和刪除IPv6地址 為網絡卡配置和刪除IPv6地址 # ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 為網絡卡刪除IPv6地址 # ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 4.用ifconfig修改MAC地址 # ifconfig eth0 down //關閉網絡卡 # ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址 # ifconfig eth0 up //啟動網絡卡 # ifconfig eth1 hw ether 00:1D:1C:1D:1E //關閉網絡卡並修改MAC地址 # ifconfig eth1 up //啟動網絡卡 5.配置IP地址 # ifconfig eth0 192.168.1.56 //給eth0網絡卡配置IP地址 # ifconfig eth0 192.168.1.56 netmask 255.255.255.0 // 給eth0網絡卡配置IP地址,並加上子掩碼 # ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255 // 給eth0網絡卡配置IP地址,加上子掩碼,加上個廣播地址 6.啟用和關閉ARP協議 # ifconfig eth0 arp //開啟 # ifconfig eth0 -arp //關閉 7.設定最大傳輸單元  # ifconfig eth0 mtu 1500 //設定能通過的最大資料包大小為 1500 bytes   netstat :顯示網路狀態。得知整個 Linux 系統的網路情況 netstat [-acCeFghilMnNoprstuvVwx][-A<網路型別>][--ip] 常用引數: -a或--all 顯示所有連線中的Socket。 -g或--groups 顯示多重廣播功能群組組員名單。  -n或--numeric 直接使用IP地址,而不通過域名伺服器。 -r或--route 顯示Routing Table。 -t或--tcp 顯示TCP傳輸協議的連線狀況。 -u或--udp 顯示UDP傳輸協議的連線狀況。 -v或--verbose 顯示指令執行過程。 示例: 顯示詳細的網路狀況 # netstat -a 顯示當前戶籍UDP連線狀況 # netstat -nu 顯示UDP埠號的使用情況 # netstat -apu 顯示網絡卡列表 # netstat -i 顯示組播組的關係  # netstat -g 顯示網路統計資訊 # netstat -s 顯示監聽的套介面 # netstat -l   ping :於檢測主機 執行 ping 指令會使用 ICMP 傳輸協議,發出要求迴應的資訊。 ping [-dfnqrRv][-c<完成次數>][-i<間隔秒數>][-I<網路介面>][-l<前置載入>][-p<範本樣式>][-s<資料包大小>][-t<存活數值>][主機名稱或IP地址] 常用引數: -d 使用Socket的SO_DEBUG功能。 -c <完成次數> 設定完成要求迴應的次數。 -f 極限檢測。 -i<間隔秒數> 指定收發資訊的間隔時間。 -q 不顯示指令執行過程,開頭和結尾的相關資訊除外。 -r 忽略普通的Routing Table,直接將資料包送到遠端主機上。 -R 記錄路由過程。 -s<資料包大小> 設定資料包的大小。 -t<存活數值> 設定存活數值TTL的大小。 示例: 檢測是否與主機連通 # ping www.runoob.com 指定接收包的次數 # ping -c 2 www.runoob.com traceroute:追蹤顯示網路資料包的路由途徑,預設資料包大小是40Bytes,可另行設定。 traceroute [-dFlnrvx][-f<存活數值>][-g<閘道器>...][-i<網路介面>][-m<存活數值>][-p<通訊埠>][-s<來源地址>][-t<服務型別>][-w<超時秒數>][主機名稱或IP地址][資料包大小] 常用引數: -d 使用Socket層級的排錯功能。 -f<存活數值> 設定第一個檢測資料包的存活數值TTL的大小。 -m<存活數值> 設定檢測資料包的最大存活數值TTL的大小。 -n 直接使用IP地址而非主機名稱。 -p<通訊埠> 設定UDP傳輸協議的通訊埠。 -w<超時秒數> 設定等待遠端主機回報的時間。 -x 開啟或關閉資料包的正確性檢驗。 示例: 顯示到達目的地的資料包路由 # traceroute www.google.com   adduer = useradd:新增使用者帳號或更新預設的使用者資料 adduser -D [-g default_group] [-b default_home] [-f default_inactive] [-e default_expire_date] [-s default_shell] 常用引數: 新增一個一般使用者 # useradd kk //新增使用者kk 為新增的使用者指定相應的使用者組 # useradd -g root kk //新增使用者kk,並指定使用者所在的組為root使用者組 建立一個系統使用者 # useradd -r kk //建立一個系統使用者kkcc1 為新新增的使用者指定/home目錄  # useradd-d /home/myf kk //新新增使用者kk,其home目錄為/home/myf //當用戶名kk登入主機時,系統進入的預設目錄為/home/myf   kill :刪除執行中的程式或工作,程式或工作的編號可利用 ps 指令或 jobs 指令檢視。 kill [-s <資訊名稱或編號>][程式] 或 kill [-l <資訊編號>] 常用引數: -l <資訊編號> 若不加<資訊編號>選項,則 -l 引數會列出全部的資訊名稱。 -s <資訊名稱或編號>  指定要送出的資訊。 [程式]可以是程式的PID或是PGID,也可以是工作編號。 使用 kill -l 命令列出所有可用訊號。 最常用的訊號是: 1 (HUP):重新載入程序。 9 (KILL):殺死一個程序。 15 (TERM):正常停止一個程序。 示例: 1.殺死程序  # kill 12345 2.強制殺死程序 # kill -KILL 123456 3.傳送SIGHUP訊號,可以使用一下訊號 # kill -HUP pid 4.徹底殺死程序 # kill -9 123456 5.顯示訊號 # kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 殺死指定使用者所有程序 #kill -9 $(ps -ef | grep hnlinux) //方法一 過濾出hnlinux使用者程序 #kill -u hnlinux //方法二   ps :用於顯示當前程序的狀態,類似於 windows 的工作管理員。 ps [options] [--help] 常用引數: ps 的引數非常多, 在此僅列出幾個常用的引數並大略介紹含義 -A 列出所有的程序 -w 顯示加寬可以顯示較多的資訊 -au 顯示較詳細的資訊 -aux 顯示所有包含其他使用者的行程 示例: 1.查詢指定程序格式: ps -ef | grep 程序關鍵字 2.例如顯示 php 的程序: # ps -ef | grep php 3.顯示程序資訊:  # ps -A 4.顯示指定使用者資訊 # ps -u root //顯示root程序使用者資訊 5.顯示所有程序資訊,連同命令列 # ps -ef //顯示所有命令,連帶命令列   top:用於實時顯示 process 的動態 top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 常用引數: q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的許可權,則 top 將會以最高的優先序執行 c : 切換顯示模式,共有兩種模式,一是隻顯示執行檔的名稱,另一種是顯示完整的路徑與名稱 S : 累積模式,會將己完成或消失的子程序 ( dead child process ) 的 CPU time 累積起來 s : 安全模式,將交談式指令取消, 避免潛在的危機 i : 不顯示任何閒置 (idle) 或無用 (zombie) 的程序 示例: 顯示程序資訊 # top 顯示完整命令 # top -c 以批處理模式顯示程式資訊 # top -b 以累積模式顯示程式資訊 # top -S 設定資訊更新次數 top -n 2 //表示更新兩次後終止更新顯示 設定資訊更新時間 # top -d 3 //表示更新週期為3秒 顯示指定的程序資訊  # top -p 139 //顯示程序號為139的程序資訊,CPU、記憶體佔用率等 顯示更新十次後退出 top -n 10 使用者將不能利用交談式指令來對行程下命令 top -s   free:命令用於顯示記憶體狀態 顯示記憶體的使用情況,包括實體記憶體,虛擬的交換檔案記憶體,共享記憶體區段,以及系統核心使用的緩衝區等 free [-bkmotV][-s <間隔秒數>] 常用引數: -h  以合適的單位顯示記憶體使用情況,最大為三位數,自動計算對應的單位值。單位有: -s<間隔秒數>  持續觀察記憶體使用狀況。 -t  顯示記憶體總和列。 示例: 1.顯示記憶體使用情況 # free //顯示記憶體使用資訊 2.以總和的形式顯示記憶體的使用資訊 # free -t //以總和的形式查詢記憶體的使用資訊 3.週期性的查詢記憶體使用資訊 # free -s 10 //每10s 執行一次命令   rpm 命令用於管理套件,讓 Linux 易於安裝,升級。 rpm [選項引數] [rpm包名] 常用引數: -i  顯示套件的相關資訊 -v 顯示指令執行過程。 -h 套件安裝時列出標記。 -q 使用詢問模式,當遇到任何問題時,rpm指令會先詢問使用者。 示例: 1.安裝軟體  # rpm -hvi dejagnu-1.4.2-10.noarch.rpm 警告:dejagnu-1.4.2-10.noarch.rpm: V3 DSA 簽名:NOKEY, key ID db42a60e 準備... ########################################### [100%] 2.顯示軟體安裝資訊  # rpm -qi dejagnu-1.4.2-10.noarch.rpm 示例: rpm -q httpd:檢查httpd包是否安裝 rpm -ql httpd:檢視軟體安裝路徑 rpm -qi httpd:檢視軟體安裝的版本資訊 rpm -e httpd:解除安裝httpd軟體 rpm -e --nodeps:強制解除安裝httpd軟體 rpm -qa | grep httpd:檢查httpd相關的軟體是否安裝 rpm -ivh httpd-2.4.6-40.el7.centos.x86_64.rpm:安裝httpd軟體 rpm -Uvh httpd-2.4.6-40.el7.centos.x86_64.rpm:升級httpd軟體 rpm -ivh --nodeps httpd-2.4.6-40.el7.centos.x86_64.rpm:不依賴其它軟體包   tar:備份壓縮解壓檔案 tar [選項引數] 檔名目錄名 常用引數: -f<備份檔案>或--file=<備份檔案> 指定備份檔案。 z或--gzip或--ungzip 通過gzip指令處理備份檔案。 -x或--extract或--get 從備份檔案中還原檔案。 -v或--verbose 顯示指令執行過程。 -t或--list 列出備份檔案的內容。 示例: 1.壓縮檔案 非打包 # touch a.c # tar -czvf test.tar.gz a.c //壓縮 a.c檔案為test.tar.gz a.c 2.列出壓縮檔案內容 # tar -tzvf test.tar.gz -rw-r--r-- root/root 0 2010-05-24 16:51:59 a.c 3.解壓檔案 # tar -xzvf test.tar.gz 示例: tar -cvf jfedu.tar.gz jfedu:打包jfedu檔案或目錄,並重命名為jfedu.tar.gz tar -tf jfedu.tar.gz :檢視 jfedu.tar.gz包中內容 tar -rf jfedu.tar.gz jfedu.txt:將jfedu.txt檔案追加到jfedu.tar.gz包中 tar -xvf jfedu.tar.gz:解壓jfedu.tar.gz程式包 tar -czvf jfedu.tar.gz jfedu:使用gzip格式打包並壓縮jfedu目錄 tar -cjvf jfedu.tar.bz2:使用bzip2格式打包並壓縮jfedu目錄 tar -czf jfedu.tar.gz * -X list.txt:使用gzip格式打包並壓縮當前目錄所有檔案,排除list.txt 中記錄的檔案 tar -czf jfedu.tar.gz * --exclude=zabbix-3.2.4.tar.gz --exclude=nginx-1.12.0.tar.gz:使用gzip格式打包並壓縮所有檔案和目錄,排除zabbix-3.2.4.tar.gz和nginx-1.12.0.tar.gz軟體包   安裝Nginx詳細步驟 (1)Nginx.org官網下載Nginx-1.21.4.tar.gz包: wget https://nginx.org/download/nginx-1.21.4.tar.gz (2)Nginx 原始碼包解壓: tar -xvf nginx-1.21.4.tar.gz (3)進入原始碼包解壓後的目錄,執行./configure 進行預編譯,分號表示連線多個指令 cd nginx-1.21.4; ./configure 檢查是否缺少依賴包,若缺少則安裝,直到預編譯通過 (4)make 編譯 (5)make install 安裝   fdisk:硬碟操作 示例: 企業場景DELL R730 熱插拔新增新硬碟分割槽操作 1.fdisk -l 檢測系統識別硬碟設別,新新增裝置被識別為dev/sdb(sdc、sdd)等等 2.fdisk /dev/sda 基於新硬碟/dev/sda裝置,建立磁碟分割槽/dev/sda3 3.按m獲取幫助(分割槽命令引數如下,常用:m\n\p\e\d\w) m:列印幫助選單、n:新增一個新分割槽、p:列印分割槽表資訊、d:刪除一個分割槽、w:將分割槽表寫入磁碟並推出。 4.建立dev/sda3 分割槽方法: (1)fdisk /dev/sda(2)依次輸入n、p、l,按Enter,再輸入+20G,按Enter,輸入w,最後執行fdisk -l | tail -10 5.分割槽格式化並掛載到/data/目錄 mkdir - p /data/ 建立/data/資料目錄 mount /dev/sda3 /data 掛在/dev/sda3 分割槽至/data/目錄 df- h 檢視磁碟分割槽詳情 echo "mount /dev/sda3 /data" >> /etc/rc.local 將掛在命令加入開機啟動   mount:目錄掛載 示例: mount /dev/sdb1 /data 掛載/dev/sdb1分割槽至/data/目錄 mount /dev/cdrom /mnt 掛在cdrom光碟至/mnt 目錄 mount -t ntfs-3g/dev/sdc /data1 掛載/dev/sdc行動硬碟至/data1目錄 mount -o remount,rw 重新以讀寫模式掛載系統 mount -t iso9660 -o loop centos7.iso /mnt 將iso檔案掛載至/mnt mount -t fat32/dev/sdd1 /mnt 將優盤/dev/sdd1 掛載至/mnt/目錄 mount -t nfs 192.168.1.11:/data/mnt 將遠端192.168.1.11:/data目錄掛載至本地/mnt目錄   firewall:防火牆及埠操作 示例: 1、開放埠 firewall-cmd --zone=public --add-port=10050/tcp --permanent  # 開放5672埠 firewall-cmd --zone=public --remove-port=5672/tcp --permanent  #關閉5672埠 firewall-cmd --reload   # 配置立即生效 2、檢視防火牆所有開放的埠 firewall-cmd --zone=public --list-ports 3.、關閉防火牆 systemctl stop firewalld.service 4、檢視防火牆狀態 firewall-cmd --state 5、檢視監聽的埠 netstat -lnpt PS:centos7預設沒有 netstat 命令,需要安裝 net-tools 工具,yum install -y net-tools 6、檢查埠被哪個程序佔用 netstat -lnpt |grep 5672 7、檢視程序的詳細資訊 ps 6832 8、中止程序 kill -9 6832