Linux常用命令查詢
一文件目錄操作
二 查看文件內容
三 文本內容處理命令
四 查詢操作
五 壓縮解壓
六 yum(呀目)安裝器
七網絡相關
八 系統相關
九 shell編程快捷鍵
十 操作小技巧
一 Linux命令具體操作
*系統關機命令
shutdown[選項] 時間
選項: -c: 取消前一個關機命令
-h:關機
-r:重啟
eg:
shutdown -h now 立即關機
shutdown -h 20:30 定時關機
其他關機命令 halt poweroff init 0
其他重啟命令
reboot 重啟系統 reboot -h now 立即重啟
注意:生產環境中,關機命令和重啟命令謹慎執行。
*Linux操作技巧
1:善於查看man help等幫助文檔
2:利用好Tab鍵 自動補全
3:掌握好一些快捷鍵
ctrl + c(停止當前進程)
ctrl + z 掛起當前進程,放後臺
ctrl + r(查看命令歷史) history
ctrl + l(清屏,與clear命令作用相同)
方向箭頭 上 下 可以查看執行過的命令
ctrl + a 行首 ctrl + e 行尾
ctrl + k 清除 ctrl+ w 清除單詞
1幫助命令
① man
英文:manual 命令路徑:/usr/bin/man 執行權限:所有用戶
作用:獲取命令或配置文件的幫助信息
語法:man [命令/配置文件]
(查看配置文件時,不需要配置文件的絕對路徑,只需要文件名即可)
1:調用的是more命令來瀏覽幫助文檔,按空格翻下一頁,按回車翻下一行,
2:按q退出。
3:使用/加上關鍵的參數可直接定位搜索,
4:n 查找下一個,shift+n 查找上一個:
擴展:man的級別(幫助文檔的類型, 了解1 5即可)
man man-pages 查看每一種類型代表的含義 man文檔的類型(1~9)
1是命令,5是配置文件 man優先顯示命令,可指定幫助類型
eg:man 5 passwd (5代表配置文件級別)
② help
1 --help命令
2文件搜索命令
① find
命令路徑:/bin/find 執行權限:所有用戶
作用:查找文件或目錄
語法:find [搜索路徑] [匹配條件]
如果沒有指定搜索路徑,默認從當前目錄查找
find命令選項
-name按名稱查找 精準查找
eg:find /etc -name 「init」 在目錄/etc中查找文件init
-iname按名稱查找
find查找中的字符匹配:
*:匹配所有
?:匹配單個字符
eg:find /etc -name 「init???」 在目錄/etc中查找以init開頭的,且後面有三位的文件
注意:模糊匹配的條件,建議使用單引號或雙引號括起來。如果*被轉義,可使用 單雙引號括住查詢條件,或者使用\*。
eg: # find . –name *g
-size按文件大小查找
以block為單位,一個block是512B, 1K=2block
+大於 -小於 不寫是等於
eg:find /etc -size -204800 在etc目錄下找出大於100MB的文件
100MB=102400KB=204800block
-type按文件類型查找
f 二進位文件
l 軟連接文件
d 目錄
c 字符文件
eg: find /dev -type c
find查找的基本原則:
佔用最少的系統資源,即查詢範圍最小,查詢條件最精準
eg:
如果明確知道查找的文件在哪一個目錄,就直接對指定目錄查找,不查找根目錄/
② grep命令
命令路徑:/bin/grep 執行權限:所有用戶
作用:在文件中搜尋字串匹配的行並輸出
語法:grep [-cinv] '搜尋字符串' filename
選項與參數:
-c :輸出匹配行的次數(是以行為單位,不是以出現次數為單位)
-i :忽略大小寫,所以大小寫視為相同
-n :顯示匹配行及行號
-v :反向選擇,顯示不包含匹配文本的所有行。
eg:grep ftp /etc/services
eg:#grep -v ^# /etc/inittab 去掉文件行首的#號
eg:# grep -n 「init」/etc/inittab 顯示在inittab文件中,init匹配行及行號
eg:# grep -c「init」/etc/inittab 顯示在inittab文件中,init匹配了多少次
③ which
命令路徑:/usr/bin/which 執行權限:所有用戶
作用:顯示系統命令所在目錄(絕對路徑及別名)
which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令
# which ls
alias ls='ls --color=auto'
/bin/ls
# which zs
/usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)
④ whereis
命令路徑:/usr/bin/whereis 執行權限:所有用戶
作用:搜索命令所在目錄 配置文件所在目錄 及幫助文檔路徑
eg: which passwd 和 whereis passwd
eg:查看/etc/passwd配置文件的幫助,就用 man 5 passwd
3壓縮解壓縮命令
① gzip
英文:GNU zip 命令路徑:/bin/gzip 執行權限:所有用戶
作用:壓縮(解壓)文件,壓縮文件後綴為.gz
gzip只能壓縮文件,不能壓縮目錄;不保留原文件
語法:gzip 文件
-d將壓縮文件解壓(decompress)
解壓使用gzip –d或者 gunzip
② bzip2
命令路徑:/usr/bin/bzip2 執行權限:所有用戶
作用:壓縮(解壓)文件,壓縮文件後綴為.bz2
語法:bzip2 [-k] [文件]
-k:產生壓縮文件後保留原文件(壓縮比高)
-d 解壓縮的參數(decompress)
解壓使用bzip2 –d或者 bunzip2
③ zip
命令路徑:/usr/bin/zip 執行權限:所有用戶
作用:壓縮(解壓)文件,壓縮文件後綴為.zip
語法:zip 選項[-r] [壓縮後文件名稱] [文件或目錄]
-r壓縮目錄
eg:zip services.zip /etc/services 壓縮文件;
zip -r test.zip /test 壓縮目錄
如果不加-r選項,壓縮後的文件沒有數據。
解壓使用unzip
④ tar
命令路徑:/bin/tar 執行權限:所有用戶
作用:文件、目錄打(解)包
語法:tar [-zcf] 壓縮後文件名 文件或目錄
-c 建立一個壓縮文件的參數指令(create),後綴是.tar
-x 解開一個壓縮文件的參數指令(extract)
-z 以gzip命令壓縮/解壓縮
-j 以bzip2命令壓縮/解壓縮
-v 壓縮的過程中顯示文件(verbose)
-f file 指定文件名,必選項
單獨的打包 ,解包 tar –cf tar –xf打包之後,進行壓縮 gzip bzip2一步到位 tar –zcvf tar -zxvftar -cf -xf 單獨 壓縮 解壓縮
tar -z 以gzip打包目錄並壓縮 文件格式.tar.gz(.tgz)
tar -j 以bzip2打包目錄並壓縮 文件格式.tar.bz2
eg:tar -zcvf dir1.tar.gz dir1 使用gzip將目錄dir1壓縮成一個打包並壓縮文件dir1.tar.gz
tar -zxvf dir1.tar.gz -C(大寫的) /root 解壓到指定的/root目錄
eg: tar -cvf bak.tar . 將當前目錄的文件打包為bak.tar
eg: tar -xvf bak.tar 解壓
eg: tar -zcvf bak.tar.gz bak.tar 或 gzip bak.tar 使用gzip將打包文件bak.tar壓縮為bak.tar.gz
eg: tar -jcvf bak.tar.bz2 bak.tar 或 bzip2 bak.tar 使用bzip2將打包文件bak.tar壓縮為bak.tar.bz2
eg: tar -rvf bak.tar /etc/password 將/etc/password追加文件到bak.tar中(r)
eg:tar -cjvf test.tar.bz2 test 生成test.tar.bz2的壓縮文件
eg:tar -xjf test.tar.bz2 解壓
最常用: tar + gzip
tar –zcvf 壓縮
tar –zxvf 解壓
補充:
1,文件路徑, 壓縮包帶文件路徑
2,源文件是保留的,不會被刪除
二VIM文本編輯器
vim/vi是Unix / Linux上最常用的文本編輯器而且功能非常強大。
只有命令,沒有菜單。
《大碗》編輯器版
周圍的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼...什麼插件呀、語法高亮呀、拼寫檢查呀,能給它開的都給它開著,就是一個字:酷!你說這麼牛X的一東西,怎麼著學會也得小半年吧。半年!?入門都遠著呢!能學會移動光標就不錯了,你還別說耗不起,就這還是左右移動!!!
1 VIM工作模式
命令模式:又稱一般模式
編輯模式:又稱底行模式,命令行模式
2 插入命令(1個)
3 定位命令(3主2輔)
4 保存和退出命令(2個)
不保存並退出:
有修改,但是修改後的內容是不保存的有突發情況,導致窗口退出。修改文件之後,直接刪除同名的.swp文件5 刪除命令(1個·)
6 複製和剪切命令(6個3套)
7 替換和取消命令(1個)
8 搜索和替換命令
% 指全文,s 指開始,g 指全局替
9 可視化模式
v可視字符模式
V(shift+v)可視行模式,選擇多行操作
I或者O進入插入模式。
三 ctrl+v可視塊模式(列模式),操作列
應用:
1.多行注釋:
1. 首先按esc進入命令行模式下,按下Ctrl + v,進入列(也叫區塊)模式;
2. 在行首使用上下鍵選擇需要注釋的多行;
3. 按下鍵盤(大寫)「I」鍵,進入插入模式;
4. 然後輸入注釋符(「//」、「#」等);
5. 最後按下「Esc」鍵。 註:在按下esc鍵後,會稍等一會才會出現注釋,不要著急~~時間很短的
拓展:可用於多行插入
2.刪除多行注釋:
1. 首先按esc進入命令行模式下,按下Ctrl + v, 進入列模式;
2. 選定要取消注釋的多行;
3. 按下「x」或者「d」. 注意:如果是「//」注釋,那需要執行兩次該操作,如果是「#」注釋,一次即可
拓展:可用來多行刪除指定內容
3.多行刪除1.首先在命令模式下,輸入「:set nu」顯示行號;
2.通過行號確定你要刪除的行;
3.命令輸入「:32,65d」,回車鍵,32-65行就被刪除了,
很快捷吧如果無意中刪除錯了,可以使用『u』鍵恢復(命令模式下)
常用操作:
① 刪除光標所在的行
1:進入命令模式
2:dd
②對一般文本進行編輯
1:vim +文件名字
2:i 進入可編輯模式
3:esc 進入命令模式
4::wq保存並且退出
5 :q! 不保存修改退出
③ 查找埠號
1:vim +需要編輯的文件
2:/port
3 n向下查找 N向上查找
三 Linux環境配置
1 修改ip地址
1,圖形化界面
2,setup 命令虛擬界面
3,修改配置文件(以網絡方式為NAT示例)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.2.129
NETMASK=255.255.255.0
GATEWAY=192.168.2.2#網段2任意,IP位址2固定,網段為vmnet8的設置的IP網段
DNS1=114.114.114.114
DNS2=8.8.8.8
重啟網絡生效:
service network restart
2 網絡通信命令
① ping
命令路徑:/bin/ping 執行權限:所有用戶
作用:測試網絡的連通性
語法:ping 選項 IP位址
-c 指定發送次數
ping 命令使用的是icmp協議,不佔用埠
eg: # ping -c 3 127.0.0.1
② ifconfig
英文:interface configure 命令路徑:/sbin/ifconfig 執行權限:root
作用:查看和設置網卡網絡配置
語法:ifconfig [-a] [網卡設備標識]
-a:顯示所有網卡信息
ifconfig [網卡設備標識] IP位址 修改ip地址
③ netstat
英文:network statistics 命令路徑:/bin/netstat 執行權限:所有用戶
作用:主要用於檢測主機的網絡配置和狀況
-a all顯示所有連接和監聽埠
-t(tcp)僅顯示tcp相關選項
-u(udp)僅顯示udp相關選項
-n使用數字方式顯示地址和埠號
-l (listening) 顯示監控中的伺服器的socket
eg:# netstat -tlnu 查看本機監聽的埠
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
協議 待收數據包 待發送數據包 本地ip地址:埠 遠程IP位址:埠
#netstat -au 列出所有 udp 埠
# nestat -at 列出所有tcp埠
#netstat -an 查看本機所有的網絡連接
netstat–antpl|grepredis(使用進程名字查看)
netstat –antpl|grep 3306 (使用埠號查看)
3 修改主機名
臨時生效:
hostname 主機名
永久生效:修改配置文件
vim /etc/sysconfig/network
注意: Logout退出之後再進去就可以生效
4 修改映射關係
修改主機名和ip地址之間的映射關係 window中同樣也有:
vi /etc/hosts
192.168.2.120 node-1.edu.cn node-1
可配置別名
5 關閉防火牆
①查看防火牆狀態:service iftables status
② 臨時關閉防火牆
③ chkconfig –list 查看防火牆是否開啟on開啟 off關閉
④ 永久關閉防火牆:chkconfig iptables off
四Linux系統管理
1進程管理命令
進程和程序的區別:
1、程序是靜態概念,本身作為一種軟體資源長期保存;而進程是程序的執行過程,它是動態概念,有一定的生命期,是動態產生和消亡的。
2、程序和進程無一一對應關係。一個程序可以由多個進程共用;另一方面,一個進程在活動中有可順序地執行若干個程序。
進程和線程的區別:
進程: 就是正在執行的程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,並佔用一定的系統資源。
線程: 輕量級的進程;進程有獨立的地址空間,線程沒有;線程不能獨立存在,它由進程創建;相對講,線程耗費的cpu和內存要小於進程。
進程管理的作用?
判斷伺服器的健康狀態
查看系統所有的進程
殺死進程
① ps命令
作用:查看系統中的進程信息
語法:ps [-auxle]
常用選項
a:顯示所有用戶的進程
u:顯示用戶名和啟動時間
x:顯示沒有控制終端的進程
e:顯示所有進程,包括沒有控制終端的進程
l:長格式顯示
查看系統中所有進程
# ps aux #查看系統中所有進程,使用BSD作業系統格式,unix
# ps -le #查看系統中所有進程,使用Linux標準命令格式
ps應用實例# ps -u or ps -l 查看隸屬於自己進程詳細信息
# ps aux | grep sam 查看用戶sam執行的進程 # ps -ef | grep redis 查看指定進程信息
② pstree
作用:查看當前進程樹
語法:pstree [選項]
-p 顯示進程PID
-u 顯示進程的所屬用戶
③ top
作用:查看系統健康狀態
顯示當前系統中耗費資源最多的進程,以及系統的一些負載情況。
語法:top [選項]
-d 秒數,指定幾秒刷新一次,默認3秒(動態顯示)
④ kill
作用:關閉進程
語法:kill [-選項] pId
kill -9 進程號(強行關閉) 常用
kill -1 進程號(重啟進程)
2 用戶管理命令
① useradd
添加用戶
語法:useradd [選項] 用戶名
② passwd
修改密碼命令
語法:passwd [選項] [用戶名]
用戶密碼:生產環境中,用戶密碼長度8位以上,設置大小寫加數字加特殊字符,要定期更換密碼。
ys^h_L9t
③ userdel(user delete)
刪除用戶
-r 刪除帳號時同時刪除宿主目錄(remove)
3 磁碟空間命令
① df命令
作用:用於查看Linux文件系統的狀態信息,顯示各個分區的容量、已使用量、未使用量及掛載點等信息。看剩餘空間
語法:df [-hkam] [掛載點]
-h(human-readable)根據磁碟空間和使用情況 以易讀的方式顯示 KB,MB,GB等-k 以KB 為單位顯示各分區的信息,默認
-M 以MB為單位顯示信息-a 顯示所有分區包括大小為0 的分區
② du命令
作用:用於查看文件或目錄的大小(磁碟使用空間)
語法:du [-abhs] [文件名目錄]
-a 顯示子文件的大小
-h以易讀的方式顯示 KB,MB,GB等
-s summarize 統計總佔有量
eg:du -a(all) /home 顯示/home 目錄下每個子文件的大小,默認單位為kb
du -b /home 以bytes為單位顯示/home 目錄下各個子目錄的大小
du -h /home 以K,M,G為單位顯示/home 文件夾下各個子目錄的大小
du -sh /home 以常用單位(K,M,G)為單位顯示/home 目錄的總大小 -s summarize
df命令和du命令的區別:
df命令是從文件系統考慮的,不僅考慮文件佔用的空間,還要統計被命令或者程序佔用的空間。
du命令面向文件,只計算文件或目錄佔用的空間。
#df –h /
#du –sh /
③ free
作用:查看內存及交換空間使用狀態
語法: free [-kmg]
選項:
-k: 以KB為單位顯示,默認就是以KB為單位顯示
-m: 以MB為單位顯示
-g: 以GB為單位顯示
清理緩存命令:
echo 1 > /proc/sys/vm/drop_caches
五 權限管理
1 三種基本權限
r 讀權限(read)
w 寫權限(write)
x 執行權限 (execute)
2 權限說明
所有者 所屬組 其他人
第1位:文件類型(d 目錄,- 普通文件,l 連結文件)
第2-4位:所屬用戶(所有者)權限,用u(user)表示
第5-7位:所屬組權限,用g(group)表示
第8-10位:其他用戶(其他人)權限,用o(other)表示
第2-10位:表示所有的權限,用a(all)表示
類型: f 二進位文件 l 軟連接文件 d 目錄
文件:
r-cat,more,head,tail,less
w-echo,vi
x-命令,腳本
目錄:
r-ls
w-touch,mkdir,rm,rmdir
x-cd
能刪除文件的權限是對該文件所在的目錄有wx權限。
3 權限更改-chmod
英文:change mode (change the permissions mode of a file)
作用:改變文件或目錄權限
語法:
chmod [{ugoa}{+-=}{rwx}] [文件名或目錄]
chmod [mode=421] [ 文件或目錄]
參數:-R 下面的文件和子目錄做相同權限操作(Recursive遞歸的)
思考:一個文件的權限誰可以更改? root 所有者
root
文件所有者
例如:chmod u+x a.txt
chmod u+x,o-x a.txt
用數字來表示權限(r=4,w=2,x=1,-=0)
例如:chmod 750 b.txt
rwx和數字表示方式能隨意切換
注意:root用戶是超級用戶,不管有沒有權限,root都能進行更改。用普通用戶測試權限。
不能用一個普通用戶去修改另一個普通用戶的權限。
4 更改所有者-chown
英文:change file ownership
作用:更改文件或者目錄的所有者
語法 : chown user[:group] file...
-R : 遞歸修改
參數格式 :
user : 新的檔案擁有者的使用者 ID
group : 新的檔案擁有者的使用者群體(group)
eg:#chown lee file1 把file1文件的所有者改為用戶lee
eg:#chown lee:test file1 把file1文件的所有者改為用戶lee,所屬組改為test
eg:#chown –R lee:test dir 修改dir及其子目錄的所有者和所屬組
5 改變所屬組chgrp
英文:change file group ownership
作用:改變文件或目錄的所屬組
語法 : chgrp [group] file...
eg:chgrp root test.log 把test.log的所屬組修改為root
六RPM軟體包管理
RPM軟體包也稱為二進位軟體包
RPM是RedHat Package Manager(RedHat軟體包管理工具)的縮寫,這一文件格式名稱雖然打上了RedHat的標誌,但是其原始設計理念是開放式的,現在包括RedHat、CentOS、SUSE等Linux的發行版本都有採用,可以算是公認的行業標準了。RPM文件在Linux系統中的安裝最為簡便
1 RPM命令使用
rpm的常用參數
i:安裝應用程式(install)
vh:顯示安裝進度;(verbose hash)
U:升級軟體包;(update)
qa: 顯示所有已安裝軟體包(query all)
e:卸載應用程式(erase)
注意:如果其它軟體包有依賴關係,卸載時會產生提示信息,可使用--nodeps強行卸載。
查詢所有安裝的rpm包: # rpm –qa
查詢mysql相關的包: # rpm –qa | grep mysql
安裝:rpm -ivh jdk.rpm
卸載: rpm –e mysql*
強行卸載:rpm –e mysql* --nodeps
圖形化界面,手動掛載
2 YUM管理
yellowdog updater modified軟體包管理工具
應用yum的好處:1,自動解決軟體包依賴關係2,方便的軟體包升級查詢
yum list 查詢所有可用軟體包列表
yum search 關鍵字 搜索伺服器上所有和關鍵字相關的包
可以通過yum info 關鍵字 來查找包名
安裝
yum -y install 包名-y 自動回答yes
升級
yum -y update 包名
注意:如果不加包名,就升級所有的,包括內核。必須加包名升級單個軟體包,慎用升級所有的
檢測升級 yum check-update卸載
yum -y remove 包名 幫助
yum --help、man yum
yum clean all 清除緩存和舊的包
yum repolist 查看當前可用的yum源
yum deplist httpd 列出一個包所有依賴的包
3 搭建本地yum源
#cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
解釋:
[base] 容器名稱,一定要放在[]中
name 容器說明,這個可以自己隨便寫
mirrorlist 鏡像站點,這個可以注釋掉
baseurl yum源伺服器的地址。默認是CentOS官方的yum源伺服器,
enabled 此容器是否生效,如果不寫或寫enable=1都是生效,寫成enable=0就是不生效
gpgcheck 如果是1是指RPM的數字證書生效,如果是0則不生效
pggkey 數字證書的公匙文件保存位置,不用修改
掛載光碟 # mkdir /mnt/cdrom
#mount /dev/cdrom /mnt/cdrom
卸載掛載用umount /mnt/cdrom
2,讓網絡yum源文件失效
cd /etc/yum.repos.d/
rename .repo .repo.bak * #重命名所有的.repo文件
cp CentOS-Media.repo.bak CentOS-Media.repo #配置一個.repo文件
3,修改光碟yum源文件
vi CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#這裡的地址為自己光碟掛載地址,並把不存在的地址注釋掉,在行首注釋
# file:///media/cdrom/
# file:///media/cdrecorder/
gpgcheck=1
enabled=1 #把原來的0改為1,讓這個yum源配資文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
可使用 yum repolist 查看 當前可用yum源
yum clean all
yum repolist