Linux學習的經常使用命令html
公司一直用的服務器都是window服務器,本身也很久沒接觸Linux了,命令忘得差很少了,以前也是菜雞水平,就佈置個服務啥的,正好最近不怎麼忙,本身學習下,記錄下經常使用的命令以便翻閱。
前端
版本:centOS 6.5java
環境: VMware虛擬機linux
首先先安卓VMware虛擬機,配置一臺系統爲centOS 6.5的虛擬機,先下載好鏡像,而後安裝的時候注意選擇,我選的是比較全的桌面版本,一千多個包,後期省的裝一些東西了,虛擬機裝好後須要將本身網絡打通,本身百度下教程。正則表達式
幾個配置經常使用的命令:shell
service network restart -----重啓網絡服務apache
vi /etc/sysconfig/network-scripts/ifcfg-eth0 -----打開網絡配置文件,進入編輯模式vim
vi /etc/resolv.conf -----配置網關,網段是本身的網段(nameserver 192.168.235.2)centos
vi /etc/sysconfig/network ---- 修改主機名host緩存
刪除文件:
rm -rf -------文件名 : 刪除文件夾和文件(甚用!!!!切記!!!!!)
-r -------遞歸輪詢遍歷刪除
-f -------刪除時忽略不存在的文件,沒有提示能夠 man 命令一下查看
查看java是否安裝:java -version
查看tomcat是否安裝:ps -ef|grep tomcat
一:文件系統的操做
init 0 ------關機
reboot -f ------重啓虛擬機
pwd --------- 查看當前地址完整的目錄
1:目錄操做:
cd .. ----------返回上上級目錄
cd ~ ---------直接進入root目錄
cd 目錄名字 ---------打開目錄
mkdir 目錄名字 ---------建立一個目錄
cp 源文件目錄 目標文件目錄 -r -----------拷貝一個文件夾(-r是輪詢複製)
rmdir 文件夾 -------刪除文件夾(只能刪除空目錄,如不是空,用rm -rf 文件夾名稱)
mv 目錄/文件名字 其餘路徑 --------------移動文件或目錄
mv 舊目錄名字 新目錄名字 ---------更改文件或目錄的名字
ll 或者 ls --------查看當前目錄下的全部文件
2:文件操做
touch 文件名 -------------建立一個空文件
cp 源文件目錄 目標文件目錄 -----------拷貝一個文件夾
rm 文件名 ----------- 刪除文件,會須要確認刪除,若是加上-f,直接刪除
cat 文件名 -------------一次性顯示文件內容,文件內容多用more
more 文件名 -------------顯示文件內容(按 Space 鍵,顯示文本的下一屏內容。
按 Enier 鍵,只顯示文本的下一行內容。按 B 鍵,顯示上一屏內容。按 Q 鍵,退出。)
less 文件名 -------------顯示文件內容,和more類似,Q退出,具體看百度
head -10 文件名 -------------打印文件開始 10 行
tail -10 文件名 -------------打印文件最後 10 行
tail –f 文件名 -------------查看文件的內容變化
find 查找路徑 –name 文件名或者目錄名(後面加*是以這個爲開頭的文件或者目錄) ------------查找問價或者目錄(最後顯示絕對路徑)
3:文件內容操做(注意權限問題):
編輯模式:
i -----進入文件以後,按i進入編輯模式
vi filename -----從打開或新建文件,並將光標置於第一行首
vi +n filename -----從打開文件,並將光標置於第 n 行首
vi + filename -----從打開文件,並將光標置於最後一行首
vi +/pattern filename -----從打開文件,並將光標置於第一個與pattern 匹配的串處
命令行模式:
esc -----從編輯模式退出來,進入命令輸入模式
set nu -----顯示行號
q -----退出vi編輯
w -----寫入,保存文件
wq -----保存退出
! -----強制操做
nG -----光標移至第 n 行首
n+ -----光標下移 n 行
n- -----光標上移 n 行
n$ -----光標移至第 n 行尾
H -----光標移至屏幕頂行
M -----光標移至屏幕中間行
L -----光標移至屏幕最後行
dd -----刪除 行
x 或 X -----刪除一個字符,x 刪除光標後的,而 X 刪除光標前的
uu 恢復前一個動做(經常使用)
通常模式
yy 複製光標所在行(經常使用)
nyy 複製光標所在行的向下 n 行,例如, 20yy 則是複製 20行(經常使用)
p,P p 爲複製的數據粘貼在光標下一行,P 則爲粘貼在光標上一行(經常使用)
/pattern -----從光標開始處向文件尾搜索
pattern :?pattern -----從光標開始處向文件首搜索
pattern n -----在同一方向重複上一次搜索命令 N:在反方向上重複上一次搜索命令
:s/p1/p2/g -----將當前行中全部 p1 均用 p2 替代
:n1,n2s/p1/p2/g -----將第 n1 至 n2 行中全部 p1 均用 p2 替代
:g/p1/s//p2/g -----將文件中全部 p1 均用 p2 替換
4:文件上傳
安裝lrzsz:yum install lrzsz -y
rz :上傳
sz filename:下載(不能下載目錄,能夠先打壓縮包再傳輸)
WinSCP傳輸文件速度快,傳輸大文件可使用,是Linux和window之間的傳輸工具,也可使用相似於xshell的xftp,感受也挺方便的
二:磁盤指令
df -----看硬盤信息,默認硬盤分區的大小以 kb 顯示,能夠在 df 後面加參數-m mb 單位, -k kb 單位 , -h 更易於閱讀
du 文件名字/目錄名字 -----查看文件或者目錄的大小,默認單位爲 kb
-k kb 單位,-m mb 單位,-a 全部文件和目錄,-h 更易於閱讀,--max-depth=0 目錄深度
三:網絡指令
ifconfig ------查看網絡配置信息
ping 地址 ------測試網絡是否通(注意linux下會一直髮送,ctrl+c結束)
netstat ------查看網絡相關信息
-a (all)顯示全部選項,默認不顯示 LISTEN 相關
-t (tcp)僅顯示 tcp 相關選項
-u (udp)僅顯示 udp 相關選項
-n 拒絕顯示別名,能顯示數字的所有轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示創建相關連接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如 uid 等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該 netstat 命令。
提示:LISTEN 和 LISTENING 的狀態只有用-a 或者-l 才能看到
telnet ip port -------測試遠程端口是否通(需安裝 telnet : yum install telnet -y) ,測試成功後,按 ctrl + ] 鍵,而後彈出 telnet>時,再按 q退出
四:系統管理
1:用戶操做
useradd/adduser username ------建立用戶
passwd username ------修改密碼
userdel username ------刪除用戶
usermod -l 新的名字 原來的名字 ------修改用戶名
usermod -L 用戶名 ------鎖定帳號
usermod -U 用戶名 ------解除鎖定
whoami ------查看當前登陸用戶名,普通用戶可查看/etc/passwd 文件,得出系統一個有多少個用戶,root 用戶還能夠查看/etc/shadow 文件,
來得出系統一個有多少用戶
usermod [-LU][-c <備註>][-d <登入目錄>][-e <有效期限>][-f <緩衝天數>][-g <羣組>][-G <羣組>][-l <賬號名稱>]
[-s <shell>][-u <uid>][用戶賬號] ------修改用戶
參數說明:
-c<備註> 修改用戶賬號的備註文字。
-d登入目錄> 修改用戶登入時的目錄。
-e<有效期限> 修改賬號的有效期限。
-f<緩衝天數> 修改在密碼過時後多少天即關閉該賬號。
-g<羣組> 修改用戶所屬的羣組。
-G<羣組> 修改用戶所屬的附加羣組。
-l<賬號名稱> 修改用戶賬號名稱。
-L 鎖定用戶密碼,使密碼無效。
-s<shell> 修改用戶登入後所使用的shell。
-u<uid> 修改用戶ID。
-U 解除密碼鎖定。
2:用戶組操做
groupadd 用戶組名 ------建立用戶組
groupdel 用戶組名 ------刪除用戶組
groupmod -n new_name old_name -----修改用戶組名
groups ------查看當前用戶所在的用戶組
groups username ------查看指定用戶所在的組
注意:建立用戶時,系統默認會建立一個和用戶名字同樣的主組。
usermod -g 組名 用戶 —— 把用戶的主組改成其餘的組
usermod -G 組名 用戶 —— 把用戶添加到附加組當中
若是想查看一個組下面一共有多少用戶,能夠經過查看 /etc/group 文件的內容來獲得(cat /etc/group)
3:系統權限
ll /usr ------查看/usr 目錄下的每一個文件或目錄的權限
權限類別:
Linux 中,每一個文件或目錄都擁有三種權限
權限 對文件的影響 對目錄的影響
r(讀取) 可讀取文件 可列出目錄內容
w(寫入) 可修改文件內容 可在目錄中建立刪除文件
x(執行) 能夠執行這個 可訪問目錄內容
UGO 模型:
Linux 權限基於 UGO 模型進行控制
U 表明 User, G 表明 Group, O 表明 other
每個文件的權限基於 UGO 進行設置,權限三個一組(rwx), 對應 UGO 分別設置
每一個文件都有一個擁有者,所屬組即(Group), 不屬於上面的都是 other
chown username 文件/目錄 ------修改全部者
chown username:groupname 文件/目錄 ------同時修改一個文件或目錄的全部者和屬組
若是要遞歸修改整個目錄下的全部者或屬組,加參數-R,如:chown -R mytest:test 目錄名字
chgrp groupname name ------修改文件/目錄的屬組
chmod ugo+rwx name ------修改文件/ 目錄的權限(其中 ugo 表明的是要對誰進行權限操做,
rwx 表明進行怎樣的權限操做,+表明的受權,-表明的取消權限)
權限的另一種修改方式:
將 rwx rwx rwx 三組權限的讀寫執行權限分別用 0 和 1 代替,1 表明有權限,0 表明沒權限,最後將三組二進制轉化成十進制。
命令:chmod 700 myfile 其中 700 轉化成二進制爲 111000000,對應的權限只有全部者纔有讀寫和執行的權限
五:系統配置
vi /etc/group --------用戶組信息配置
vi /etc/shadow 和/etc/passwd 系統存在的全部用戶名 --------用戶信息配置
vi /etc/inittab --------系統服務初始化配置
參數解釋:
0:停機狀態
1:單用戶模式,root 帳戶進行操做
2:多用戶,不能使用 net file system,通常不多用
3:徹底多用戶,一部分啓動,一部分不啓動,命令行界面
4:未使用、未定義的保留模式
5:圖形化,3 級別中啓動的進程都啓動,而且會啓動一部分圖形界面進程。
6:中止全部進程,卸載文件系統,從新啓動
這些級別中 一、二、4 不多用,相對而言 0、三、五、6 用的會較多。3 級別和 5 級別除了桌面相關的進程外沒有什麼區別。
爲了減小資源佔用,推薦都用 3 級別
注意 :linux 默認級別爲 3,不要把 initdefault 設置爲 0 和 6
vi /etc/sysconfig/network --------修改主機名
vi /etc/hosts --------修改host文件,能夠配置DNS(配置映射),而後直接拼映射名
vi /etc/resolv.conf --------DNS 服務器的地址文件
date --------查看系統時間
cal --------查看日曆
date -s 2012-08-02 --------更新系統時間,只修改系統的日期
date -s 10:08:00 --------更新系統時間,修改時間不修改日期
date -s "2018-01-01 04:53:00" --------更新系統時間,同時修改日期和時間
雖然 date 命令可以修改時間,可是手動修改確定是不許確的
爲了能讓修改的時間更精確,能夠用 ntp 來作時間同步,它會到時間,服務器裏去同步時間,保證了時間的準確度。
須要事先安裝 ntp 服務:yum install ntp -y
ntpdate cn.ntp.org.cn --------更新系統時間
該命令表示爲:到域名爲 cn.ntp.org.cn 的時間服務器上同步時間。
注:全球的時間服務器有不少個,能夠到百度或谷歌上搜,不必定用cn.ntp.org.cn 的時間服務器。
vi /etc/profile --------Linux系統的環境變量
echo $PATH --------系統在目錄裏命令對應的程序
./test.sh --------執行test.sh文件
/usr/test/test.sh --------執行test.sh文件
六:重定向和管道
1:輸出重定向
> 輸出重定向到一個文件或設備 覆蓋原來的文件
(例:ls > shsxt ,這個命令會將 ls 的查看結果輸出到 shsxt 這個文件裏,再也不將內容打印到屏幕上)
>> 輸出重定向到一個文件或設備 追加原來的文件
(命令:echo 「shsxt is good」 >> shsxt 將「shsxt is good」追加到 shsxt 文件裏)
2:輸入重定向
< 輸入重定向到一個程序
(cat < test ,將 test 文件裏的內容看成是 cat 命令的輸入)
3:標準輸出重定向
1>等同於>,可是發生錯誤時候,不會重定向到指定文件
4:錯誤輸出重定向
2> --------把錯誤的輸出日誌重定向到指定文件裏,正確的日誌則不會
5:結合使用
2>&1 --------將一個標準錯誤輸出重定向到標準輸出 ,即不管是正確的
輸出仍是錯誤的輸出都重定向到指定文件裏。1 和 2 結合着使用,在平常中使用比較頻繁,由於做爲一個開發人員,
咱們通常會把全部的日誌都保存下來,不管正確與否。
注意:以上重定向符號都是覆蓋的,若想追加則用」>>」
6:管道
命令 「|」 表示把前一個輸出當作後一個輸入
介紹這個命令以前,先介紹 grep 命令。grep 命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配到的行打印出來。
|和 grep 命令結合使用: netstat -anp | grep 22
命令含義:把 netstat –anp 命令的輸出 當作是 grep 命令的輸入。
上面的命令就是:先用 netstat –anp 命令查出本機的端口信息,而後把 netstat 輸出的端口信息,
用做 grep 命令的輸入進行匹配搜索,而且匹配的是 22 ,即查看 22 端口是否開着。
7:命令執行控制
命令:&& --------前一個命令執行成功纔會執行後一個命令該命令,
例子:cat shsxt && ping www.baidu.com
先執行 cat shsxt 命令,當 cat shsxt 命令執行成功後,才執行 ping 命令。
命令:|| 前一個命令執行失敗纔會執行後一個命令
cat shsxt || ping www.baidu.com
從上圖可看出 ping 命令沒有執行,這是因爲 cat shsxt 命令執行成功了,||命令只有第一個命令執行成功後,
纔會執行第二個命令。第一個命令 cat sxt 執行失敗了,而後才執行 ping 命令。
七:服務操做
chkconfig --------查詢操做系統在每個執行等級中會執行哪些系統服務,其中包括各種常駐服務
service 服務名 start/stop/status/restart --------對服務的狀態進行操做,查詢,重啓
防火牆操做:
查看狀態:service iptables status
關閉與開啓:
1 )永久性生效,重啓後不會復原
開啓: chkconfig iptables on
關閉: chkconfig iptables off
2) 即時生效,重啓後復原
開啓: service iptables start
關閉: service iptables stop
chkconfig --level 2345 name off|on --------服務初執行等級更改(若不加級別,默認是 2345 級別,命令:chkconfig name on|off)
運行級別備註:
0:關機。不能將系統缺省運行級別設置爲0,不然沒法啓動。
1:單用戶模式,只容許root用戶對系統進行維護。
2:無網絡鏈接的多用戶模式,不能使用NFS(至關於Windows下的網上鄰居)
3:有網絡鏈接的字符界面的多用戶模式,
4:未定義
5:圖形界面的多用戶模式。
6:重啓。不能將系統缺省運行級別設置爲0,不然會一直重啓
八:進程操做
ps -aux --------查看全部進程的信息(-a 列出全部,-u 列出用戶,-x 詳細列出,如 cpu、內存等)
ps - ef | grep ssh --------查看全部進程裏 CMD 是 ssh 的進程信息。
ps -aux --sort -pcpu --------根據 CPU 使用來升序排序
名詞解釋:
PID: 運行着的命令(CMD)的進程編號
TTY: 命令所運行的位置(終端)
TIME: 運行着的該命令所佔用的 CPU 處理時間
CMD: 該進程所運行的命令
ping www.baidu.com > ping.log & ------若想一個程序放在後臺運行,只要在命令後面加 &符號
jobs –l ------列出當前鏈接的全部後臺進程()
注意: jobs 命令只看當前終端生效的,關閉終端後,在另外一個終端 jobs已經沒法看到後臺跑得程序了。
此時應該用 ps -ef | grep 進程名 來查詢後臺進程的(ps -ef | grep ping)
後臺進程有時運行一段時間後,系統會自動把該進程掛起來,致使進程沒法正常運行。故後臺常常通常和 nohup 命令結合使用,
告訴系統不要把該進程掛起,這樣子該命令就能夠 24*7 小時不間斷的運行了。
命令: nohup ping www.baidu.com > ping2.log &
此時該命令還不夠完美,由於這時 ping 命令的輸出重定向只會把正確的日誌重定向到 ping2.log 裏,
咱們要想全部的日誌都定向到指定文件裏。因此咱們應該這樣寫:nohup ping www.baidu.com > ping2.log 2>&1 &
kill pid -9 ------強制殺死pid爲-9的進程(能夠先用jobs –l 或 ps 命令先查出對應程序的 PID 或 PPID ,而後殺死掉進程)
九:其餘經常使用命令
1:yum
yum是一個在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端軟件,包管理器。基於 RPM 包管理,可以從指定的服務器自動下載 RPM 包,而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件,包,無須繁瑣地一次次下載、安裝。因爲 centos 系統的 yum 默認是到國外網站下載,有時下載速度會很慢,故咱們能夠換一個 yum 的下載源,這裏咱們換一個國內的下載源 阿里雲鏡像。
第一步:備份你的原鏡像文件,以避免出錯後能夠恢復。
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
需先安裝 yum install wget –y
第二步:下載新的 CentOS-Base.rep 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
下載完以後,vim /etc/yum.repos.d/CentOS-Base.repo 查看一下文件內容。
第三步:運行 yum makecache 生成緩存
查看當前源
yum list | head -50
2:wget
wget 是一個從網絡上自動下載文件的自由工具,支持經過 HTTP、HTTPS、FTP 三個最多見的 TCP/IP 協議 下載,並可使用 HTTP 代理
wget 用法:
wget [option] 網址 -O 指定下載保存的路徑(例:wget www.baidu.com -O baidu.html)
注意:wget 工具還能夠用來作一些簡單的爬蟲,本身不會,能夠自行百度
3:tar
-z gzip 進行解壓或壓縮,帶.gz 須要加,壓縮出來.gz 也須要加
-x 解壓
-c 壓縮
-f 目標文件,壓縮文件新命名或解壓文件名
-v 解壓縮過程信息打印
解壓命令:tar -zvxf xxxx.tar.gz
例子:先用 rz 命令或 wscp 上傳一個 tar 包,而後解壓
壓縮命令:tar -zcf 壓縮包命名 壓縮目標
例子:tar -zcf tomcat.tar.gz apache-tomcat-7.0.61
將 apache-tomcat-7.0.61 目錄壓縮成 tomcat.tar.gz 包。
4:zip
主要參數
-c:將解壓縮的結果
-l:顯示壓縮文件內所包含的文件
-p:與-c 參數相似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換
-t:檢查壓縮文件是否正確
-u:與-f 參數相似,可是除了更新現有的文件外,也會將壓縮文件中的其它文件解壓縮到目錄中
-v:執行是時顯示詳細的信息
-z:僅顯示壓縮文件的備註文字
-a:對文本文件進行必要的字符轉換
-b:不要對文本文件進行字符轉換
-r:遞歸處理,將指定目錄下的全部文件和子目錄一併處理
-C:壓縮文件中的文件名稱區分大小寫
-j:不處理壓縮文件中原有的目錄路徑
-L:將壓縮文件中的所有文件名改成小寫
-M:將輸出結果送到 more 程序處理
-n:解壓縮時不要覆蓋原有的文件
-o:沒必要先詢問用戶,unzip 執行後覆蓋原有文件
-P:使用 zip 的密碼選項
-q:執行時不顯示任何信息
-s:將文件名中的空白字符轉換爲底線字符
-V:保留 VMS 的文件版本信息
-X:解壓縮時同時回存文件原來的 UID/GID
壓縮命令:zip -r 包名 目標目錄
需先安裝 zip:yum install zip –y 壓縮完後,查看一下,發現多了個 tomcat.zip 包。
unzip filename ----------解壓文件,需先安裝unzip,命令: yum install unzip –y (注意目錄衝突)