cd
cd /root/Docements :切換到目錄/root/Documents
cd ./path :切換到當(dāng)前目錄下的path目錄中,“.”表示當(dāng)前目錄
cd ../path :切換到上層目錄中的path目錄中,“..”表示上一層目錄
ls
ll(ls -l的別名)
ls :顯示當(dāng)前目錄下的文件
ls -l :列出長數(shù)據(jù)串贸呢,包含文件的屬性與權(quán)限數(shù)據(jù)等 (詳細(xì)信息)
ls -a :列出全部的文件荧恍,連同隱藏文件(開頭為.的文件)
ls -R :連同子目錄的內(nèi)容一起列出(遞歸列出)瓷叫,等于該目錄下的所有文件都會顯示出來
ls -lR :以長數(shù)據(jù)串的形式列出當(dāng)前目錄下的所有文件
alias
設(shè)置指令別名,可以將一些較長的命令簡化送巡。使用alias時摹菠,用戶必須使用單引號''將原來的命令引起來,防止特殊字符導(dǎo)致錯誤骗爆。
alias命令的作用只局限于該次登入的操作次氨。若要每次登入都能夠使用這些命令別名,則可將相應(yīng)的alias命令存放到bash的初始化文件/etc/bashrc中摘投。
alias -p :顯示已經(jīng)設(shè)置的別名煮寡。
alias l='ls -a' : 重新定義ls命令,現(xiàn)在只需輸入l就可以列目錄了犀呼。
unalias l :刪除一個別名幸撕。
cp
cp a.php b.php 用于文件的復(fù)制
cp file1 file2 file3 dir 把文件file1、file2外臂、file3復(fù)制到目錄dir中
-a :將文件的特性一起復(fù)制
cp -a file1 file2 連同文件的所有特性把文件file1復(fù)制成文件file2
-p :連同文件的屬性一起復(fù)制坐儿,而非使用默認(rèn)方式,與-a相似宋光,常用于備份
-r :遞歸持續(xù)復(fù)制挑童,用于目錄的復(fù)制行為 cp -r dir1 dir2
mv
-f :force強制的意思,如果目標(biāo)文件已經(jīng)存在跃须,不會詢問而直接覆蓋
-i :若目標(biāo)文件已經(jīng)存在站叼,就會詢問是否覆蓋
mv file1 file2 file3 dir 把文件file1、file2菇民、file3移動到目錄dir中
mv file1 file2 把文件file1重命名為file2 <=> mv -f file1 file2
rm
-f :就是force的意思尽楔,忽略不存在的文件投储,不會出現(xiàn)警告消息
-i :互動模式,在刪除前會詢問用戶是否操作
-r :遞歸刪除阔馋,最常用于目錄刪除玛荞,它是一個非常危險的參數(shù)
rm -i file 刪除文件file,在刪除之前會詢問是否進(jìn)行該操作
rm -fr dir 強制刪除目錄dir中的所有文件
mkdir
用來創(chuàng)建目錄呕寝。該命令創(chuàng)建由dirname命名的目錄勋眯。如果在目錄名的前面沒有加任何路徑名,則在當(dāng)前目錄下創(chuàng)建由dirname指定的目錄下梢;如果給出了一個已經(jīng)存在的路徑客蹋,將會在該目錄下創(chuàng)建一個指定的目錄。在創(chuàng)建目錄時孽江,應(yīng)保證新建的目錄與它所在目錄下的文件沒有重名讶坯。
-m<目標(biāo)屬性>或--mode<目標(biāo)屬性>建立目錄的同時設(shè)置目錄的權(quán)限;
-p或--parents 若所要建立目錄的上層目錄目前尚未建立岗屏,則會一并建立上層目錄辆琅;
在目錄/home/wwwroot下建立子目錄test,并且只有文件主有讀这刷、寫和執(zhí)行權(quán)限婉烟,其他人無權(quán)訪問
mkdir -m 700 /home/wwwroot/test
在當(dāng)前目錄中建立yang和yang下的yang_1目錄,權(quán)限設(shè)置為文件主可讀暇屋、寫隅很、執(zhí)行,同組用戶可讀和執(zhí)行率碾,其他用戶無權(quán)訪問
mkdir -p -m 750 yang/yang_1
dirname
去除文件名中的非目錄部分叔营,僅顯示與目錄有關(guān)的內(nèi)容。
cat
連接文件并打印到標(biāo)準(zhǔn)輸出設(shè)備上所宰,cat經(jīng)常用來顯示文件的內(nèi)容绒尊。
注意:當(dāng)文件較大時,文本在屏幕上迅速閃過(滾屏)仔粥,用戶往往看不清所顯示的內(nèi)容婴谱。因此,一般用more等命令分屏顯示躯泰。為了控制滾屏谭羔,可以按Ctrl+S鍵,停止?jié)L屏麦向;按Ctrl+Q鍵可以恢復(fù)滾屏瘟裸。按Ctrl+C(中斷)鍵可以終止該命令的執(zhí)行,并且返回Shell提示符狀態(tài)诵竭。
-n或-number:有1開始對所有輸出的行數(shù)編號话告;
cat error.log顯示error.log的內(nèi)容
cat error.log access.log 同時顯示error.log 和 access.log內(nèi)容
cat error.log access.log > test.log 將error.log和access.log的內(nèi)容合并后放入test.log中
type
type命令用來顯示指定命令的類型兼搏,判斷給出的指令是內(nèi)部指令還是外部指令。
- 命令類型:
alias : 別名
keyword:關(guān)鍵字沙郭,Shell保留字佛呻。
function:函數(shù),Shell函數(shù)病线。
builtin:內(nèi)建命令吓著,Shell內(nèi)建命令。
file:文件送挑,磁盤文件绑莺,外部命令。
unfound:沒有找到让虐。
-t:輸出“file”紊撕、“alias”或者“builtin”罢荡,分別表示給定的指令為“外部指令”赡突、“命令別名”或者“內(nèi)部指令”;
-p:如果給出的指令為外部指令区赵,則顯示其絕對路徑惭缰;
-a:在環(huán)境變量“PATH”指定的路徑中,顯示給定指令的信息笼才,包括命令別名漱受。
[devops@www wwwlogs]$ type -t nginx
file
[devops@www wwwlogs]$ type -t cd
builtin
[devops@www wwwlogs]$ type -t ll
alias
[devops@www wwwlogs]$ type nginx
nginx 是 /usr/bin/nginx
[devops@www wwwlogs]$ type -p nginx
/usr/bin/nginx
[devops@www wwwlogs]$ type -a nginx
nginx 是 /usr/bin/nginx
[devops@www wwwlogs]$ type date
date 是 /usr/bin/date
[devops@www wwwlogs]$ type mysql
mysql 是 /usr/bin/mysql
[devops@www wwwlogs]$ type if
if 是 shell 關(guān)鍵字
[devops@www wwwlogs]$ type which
which 是 `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 的別名
[devops@www wwwlogs]$ type -t which
alias
[devops@www wwwlogs]$ type -a cd
cd 是 shell 內(nèi)嵌
cd 是 /usr/bin/cd
[devops@www wwwlogs]$ type -a grep
grep 是 `grep --color=auto' 的別名
grep 是 /usr/bin/grep
more
是一個基于vi編輯器文本過濾器,它以全屏幕的方式按頁顯示文本文件的內(nèi)容骡送,支持vi中的關(guān)鍵字定位操作昂羡。more名單中內(nèi)置了若干快捷鍵,常用的有H(獲得幫助信息)摔踱,B(顯示上一屏內(nèi)容),Enter(向下翻滾一行)虐先,空格(向下滾動一屏),Q(退出命令)派敷。
-<數(shù)字>:指定每屏顯示的行數(shù)蛹批;
-d:顯示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不進(jìn)行滾屏操作篮愉。每次刷新這個屏幕腐芍;
+<數(shù)字>:從指定數(shù)字的行開始顯示。
more -c -10 access.log
more -dc access.log
tar
打包:tar zcvf test.tar.gz test
解壓:tar zxvf test.tar.gz
chmod命令修改文件/文件夾權(quán)限
chown(change owner)命令:改變文件擁有者
chgrp(change group)命令
chattr與lsattr命令改變试躏、查看文件猪勇、目錄更底層的屬性
grep
grep(global search regular expression(RE) and print out the line,全面搜索正則表達(dá)式并把行打印出來)是一種強大的文本搜索工具颠蕴,它能使用正則表達(dá)式搜索文本埠对,并把匹配的行打印出來络断。
- 在文件中搜索一個單詞,命令會返回一個包含“match_pattern”的文本行:
grep "match_pattern" file_name
grep "test" default_access.log - 在多個文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...
grep "test" default_access.log error.log - 輸出除之外的所有行 -v 選項:反轉(zhuǎn)查找
grep -v "test" default_access.log - 統(tǒng)計文件或者文本中包含匹配字符串的行數(shù) -c 選項:
grep -c "text" file_name
grep -c "test" default_access.log - 輸出包含匹配字符串的行數(shù) -n 選項:
grep "text" -n file_name
grep "test" -n default_access.log
多個文件
grep "text" -n file_1 file_2 - 搜索多個文件并查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...
[devops@www wwwlogs]$ grep -l "test" default_access.log error.log access.log
default_access.log
access.log - 在多級目錄中對文本進(jìn)行遞歸搜索:
grep "text" . -r -n
.表示當(dāng)前目錄
grep "test" . -r -n
sh
shell命令語言解釋器项玛,執(zhí)行命令從標(biāo)準(zhǔn)輸入讀取或從一個文件中讀取貌笨。通過用戶輸入命令,和內(nèi)核進(jìn)行溝通襟沮!
-x:實現(xiàn)shell腳本逐條語句的跟蹤锥惋。
- 使用-x選項跟蹤腳本調(diào)試shell腳本,能打印出所執(zhí)行的每一行命令以及當(dāng)前狀態(tài):
[devops@www wwwlogs]$ sh -x test.sh
- log_path=/home/wwwlogs/ubas_api_access.log
++ cat /proc/sys/kernel/random/uuid - uuid=8850066c-3973-48ea-b399-748250804342
- uuid=8850066c397348eab399748250804342
- ssoId=ssoId123456
- mysql -h172.16.8.95 -uroot -proot '-einsert into test.test values ('''8850066c397348eab399748250804342''','''ssoId123456''');'
curl
telnet
netstat
ps(Process Status)
ps命令用于報告當(dāng)前系統(tǒng)的進(jìn)程狀態(tài)开伏“虻可以搭配kill指令隨時中斷、刪除不必要的程序固灵。ps命令是最基本同時也是非常強大的進(jìn)程查看命令捅伤,使用該命令可以確定有哪些進(jìn)程正在運行和運行的狀態(tài)、進(jìn)程是否結(jié)束巫玻、進(jìn)程有沒有僵死丛忆、哪些進(jìn)程占用了過多的資源等等,總之大部分信息都是可以通過執(zhí)行該命令得到的仍秤。
ps 是 Linux 中最基礎(chǔ)的瀏覽系統(tǒng)中的進(jìn)程的命令熄诡。
能列出系統(tǒng)中運行的進(jìn)程,包括進(jìn)程號诗力、命令凰浮、CPU使用量、內(nèi)存使用量等
ps -ef | grep nginx 列出需要進(jìn)程
ps -aux | grep nginx 顯示進(jìn)程信息苇本,包括無終端的(x)和針對用戶(u)的進(jìn)程:如USER, PID, %CPU, %MEM等
- ps aux輸出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 進(jìn)程所有者
PID: 進(jìn)程ID
%CPU: 占用的 CPU 使用率
%MEM: 占用的內(nèi)存使用率
VSZ: 占用的虛擬內(nèi)存大小
RSS: 占用的內(nèi)存大小
TTY: 終端的次要裝置號碼 (minor device number of tty)
STAT: 進(jìn)程狀態(tài)
START: 啟動進(jìn)程的時間
TIME: 進(jìn)程消耗CPU的時間
COMMAND:命令的名稱和參數(shù)
top
執(zhí)行ps命令顯示的是那個時刻的那些進(jìn)程袜茧,如果想要動態(tài)的顯示進(jìn)程信息,就可以使用top命令瓣窄。
ps 為我們提供了進(jìn)程的一次性的查看笛厦,它所提供的查看結(jié)果并不動態(tài)連續(xù)的;如果想對進(jìn)程時間監(jiān)控康栈,應(yīng)該用 top 或者 htop 递递。
kill
kill 命令用于殺死進(jìn)程。刪除執(zhí)行中的程序或工作啥么。kill可將指定的信息送至程序登舞。預(yù)設(shè)的信息為SIGTERM(15),可將指定程序終止。若仍無法終止該程序悬荣,可使用SIGKILL(9)信息嘗試強制刪除程序菠秒。程序或工作的編號可利用ps指令查看。
先用ps查找進(jìn)程,然后用kill殺掉:
ps -ef | grep nginx
kill 進(jìn)程號
kill -9 進(jìn)程號
whereis
用來定位指令的二進(jìn)制程序践叠、源代碼文件和man手冊頁等相關(guān)文件的路徑言缤。
whereis命令只能用于程序名的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)禁灼、man說明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)管挟。如果省略參數(shù),則返回所有信息弄捕。
和find命令相比僻孝,whereis查找的速度非常快守谓,這是因為linux系統(tǒng)會將 系統(tǒng)內(nèi)的所有文件都記錄在一個數(shù)據(jù)庫文件中穿铆,當(dāng)使用whereis和locate時,會從數(shù)據(jù)庫中查找數(shù)據(jù)斋荞,而不是像find命令那樣荞雏,通 過遍歷硬盤來查找,效率自然會很高平酿。 但是該數(shù)據(jù)庫文件并不是實時更新凤优,默認(rèn)情況下時一星期更新一次,因此染服,我們在用whereis和locate 查找文件時别洪,有時會找到已經(jīng)被刪除的數(shù)據(jù)叨恨,或者剛剛建立文件柳刮,卻無法查找到,原因就是因為數(shù)據(jù)庫文件沒有被更新痒钝。
-b:只查找二進(jìn)制文件秉颗;
-m:只查找說明文件;
-s:只查找原始代碼文件送矩;
[devops@www wwwlogs]$ whereis php
php: /usr/bin/php /usr/lib64/php /etc/php.d /etc/php.ini /usr/local/php /usr/share/php /usr/share/man/man1/php.1.gz
[devops@www wwwlogs]$ whereis -b php
php: /usr/bin/php /usr/lib64/php /etc/php.d /etc/php.ini /usr/local/php /usr/share/php
[devops@www wwwlogs]$ whereis -s php
php:[devops@www wwwlogs]$ whereis -m php
php: /usr/share/man/man1/php.1.gz
which
用于查找并顯示給定命令的絕對路徑蚕甥,環(huán)境變量PATH中保存了查找命令時需要遍歷的目錄。which指令會在環(huán)境變量$PATH設(shè)置的目錄里查找符合條件的文件栋荸。也就是說菇怀,使用which命令,就可以看到某個系統(tǒng)命令是否存在晌块,以及執(zhí)行的到底是哪一個位置的命令爱沟。
[devops@www wwwlogs]$ which nginx
/usr/bin/nginx
[devops@www wwwlogs]$ which pwd
/usr/bin/pwd
[devops@www wwwlogs]$ which php-fpm
/usr/bin/php-fpm
[devops@www wwwlogs]$ which mysql
/usr/bin/mysql
env
顯示系統(tǒng)中已存在的環(huán)境變量
[devops@www wwwlogs]$ env
XDG_SESSION_ID=192
HOSTNAME=www.lche001.com
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=172.16.8.76 56531 22
SSH_TTY=/dev/pts/1
JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre
USER=devops
CLASS_PATH=.:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/lib/dt.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/lib/tools.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/devops
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin:/home/devops/.local/bin:/home/devops/bin
PWD=/home/wwwlogs
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
LANG=zh_CN.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/home/devops
LOGNAME=devops
SSH_CONNECTION=172.16.8.76 56531 172.16.8.95 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/1000
_=/usr/bin/env
OLDPWD=/home/wwwroot/che001/UserPage/View
locate
用來查找文件或目錄。
locate命令其實是find -name的另一種寫法匆背,但是要比后者快得多呼伸,原因在于它不搜索具體目錄,而是搜索一個數(shù)據(jù)庫/var/lib/locatedb
钝尸,這個數(shù)據(jù)庫中含有本地所有文件信息括享。Linux系統(tǒng)自動創(chuàng)建這個數(shù)據(jù)庫搂根,并且每天自動更新一次,所以使用locate命令查不到最新變動過的文件铃辖。為了避免這種情況剩愧,可以在使用locate之前,先使用updatedb命令娇斩,手動更新數(shù)據(jù)庫隙咸。
查找字符串:要查找的文件名中含有的字符串。
搜索etc目錄下所有以sh開頭的文件:locate /etc/sh
搜索用戶主目錄下成洗,所有以m開頭的文件:locate ~/m
搜索用戶主目錄下五督,所有以m開頭的文件,并且忽略大小寫:locate -i ~/m
查看用戶主目錄:echo $HOME
updatedb
dmesg
查看linux的啟動信息
vi中的退出
:wq 退出并保存
:q! 退出不保存
:q 退出