Linux shell常用命令匯總
創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元閩侯做網(wǎng)站,已為上家服務(wù),為閩侯各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
對于經(jīng)常使用linux系統(tǒng)的博主來說,基本常用的shell命令是少不了的,下面為大家總結(jié)了Linux shell的常用命令,希望對大家有所幫助!
1.檢查遠(yuǎn)程端口是否對bash開放:
echo /dev/tcp/8.8.8.8/53 echo "open"
2.讓進(jìn)程轉(zhuǎn)入后臺(tái):
Ctrl + z
3、將進(jìn)程轉(zhuǎn)到前臺(tái):
fg
4.產(chǎn)生隨機(jī)的十六進(jìn)制數(shù),其中n是字符數(shù):
openssl rand -hex n
5.在當(dāng)前shell里執(zhí)行一個(gè)文件里的命令:
source /home/user/file.name
6.截取前5個(gè)字符:
${variable:0:5}
7.SSH debug 模式:
ssh -vvv user@ip_address
8.SSH with pem key:
ssh user@ip_address -i key.pem
9.用wget抓取完整的網(wǎng)站目錄結(jié)構(gòu),存放到本地目錄中:
wget -r --no-parent --reject "index.html*" -P /home/user/dirs
10.一次創(chuàng)建多個(gè)目錄:
mkdir -p /home/user/{test,test1,test2}
11.列出包括子進(jìn)程的進(jìn)程樹:
ps axwef
12.創(chuàng)建 war 文件:
jar -cvf name.war file
13.測試硬盤寫入速度:
dd if=/dev/zero of=/tmp/output.img bs=8k count=256k; rm -rf /tmp/output.img
14.測試硬盤讀取速度:
hdparm -Tt /dev/sda
15.獲取文本的md5 hash:
echo -n "text" | md5sum
16.檢查xml格式:
xmllint --noout file.xml
17.將tar.gz提取到新目錄里:
tar zxvf package.tar.gz -C new_dir
18.使用curl獲取HTTP頭信息:
curl -I
19.修改文件或目錄的時(shí)間戳(YYMMDDhhmm):
touch -t 0712250000 file
20.用wget命令執(zhí)行ftp下載:
wget -m
21.生成隨機(jī)密碼(例子里是16個(gè)字符長):
LANG=c /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
22.快速備份一個(gè)文件:
cp some_file_name{,.bkp}
23.訪問Windows共享目錄:
smbclient -U "DOMAIN\user" //dc.domain.com/share/test/dir
24.執(zhí)行歷史記錄里的命令(這里是第100行):
!100
25.解壓:
unzip package_name.zip -d dir_name
26.輸入多行文字(CTRL + d 退出):
cat test.txt
27.創(chuàng)建空文件或清空一個(gè)現(xiàn)有文件:
\ test.txt
28.與Ubuntu NTP server同步時(shí)間:
ntpdate ntp.ubuntu.com
29.用netstat顯示所有tcp4監(jiān)聽端口:
netstat -lnt4 | awk '{print $4}' | cut -f2 -d: | grep -o '[0-9]*'
30.qcow2鏡像文件轉(zhuǎn)換:
qemu-img convert -f qcow2 -O raw precise-server-cloudimg-amd64-disk1.img \precise-server-cloudimg-amd64-disk1.raw
31.重復(fù)運(yùn)行文件,顯示其輸出(缺省是2秒一次):
watch ps -ef
32.所有用戶列表:
getent passwd
33.Mount root in read/write mode:
mount -o remount,rw /
34.掛載一個(gè)目錄(這是不能使用鏈接的情況):
mount --bind /source /destination
35.動(dòng)態(tài)更新DNS server:
nsupdate eof p="" /eof
update add $HOST 86400 A $IP
send
EOF
36.遞歸grep所有目錄:
grep -r "some_text" /path/to/dir
37.列出前10個(gè)最大的文件:
lsof / | awk '{ if($7 1048576) print $7/1048576 "MB "$9 }' | sort -n -u | tail
39.打開Vim并跳到文件末:
vim + some_file_name
40.Git 克隆指定分支(master):
git clone git@github.com:name/app.git -b master
41.Git 切換到其它分支(develop):
git checkout develop
42.Git 刪除分支(myfeature):
git branch -d myfeature
43.Git 刪除遠(yuǎn)程分支
git push origin :branchName
44.Git 將新分支推送到遠(yuǎn)程服務(wù)器:
git push -u origin mynewfeature
45.打印歷史記錄中最后一次cat命令:
!cat:p
46.運(yùn)行歷史記錄里最后一次cat命令:
!cat
47.找出/home/user下所有空子目錄:
echo /dev/tcp/8.8.8.8/53 echo "open"
1.檢查遠(yuǎn)程端口是否對bash開放:
find /home/user -maxdepth 1 -type d -empty
48.獲取test.txt文件中第50-60行內(nèi)容:
test.txt sed -n '50,60p'
49.運(yùn)行最后一個(gè)命令(如果最后一個(gè)命令是mkdir /root/test, 下面將會(huì)運(yùn)行: sudo mkdir /root/test):
sudo !!
50.創(chuàng)建臨時(shí)RAM文件系統(tǒng) – ramdisk (先創(chuàng)建/tmpram目錄):
mount -t tmpfs tmpfs /tmpram -o size=512m
51.Grep whole words:
grep -w "name" test.txt
52.在需要提升權(quán)限的.情況下往一個(gè)文件里追加文本:
echo "some text" | sudo tee -a /path/file
53.列出所有kill signal參數(shù):
kill -l
54.在bash歷史記錄里禁止記錄最后一次會(huì)話:
kill -9 $$
55.掃描網(wǎng)絡(luò)尋找開放的端口:
nmap -p 8081 172.20.0.0/16
56.設(shè)置git email:
git config --global user.email "me@example.com"
57.To sync with master if you have unpublished commits:
git pull --rebase origin master
58.將所有文件名中含有”txt”的文件移入/home/user目錄:
find -iname "*txt*" -exec mv -v {} /home/user \;
59.將文件按行并列顯示:
paste test.txt test1.txt
60.shell里的進(jìn)度條:
pv data.log
61.使用netcat將數(shù)據(jù)發(fā)送到Graphite server:
echo "hosts.sampleHost 10 `date +%s`" | nc 192.168.200.2 3000
62.將tabs轉(zhuǎn)換成空格:
expand test.txt test1.txt
63.Skip bash history:
space cmd
64.去之前的工作目錄:
cd -
65.拆分大體積的tar.gz文件(每個(gè)100MB),然后合并回去:
split –b 100m /path/to/large/archive /path/to/output/files
cat files* archive
66.使用curl獲取HTTP status code:
curl -sL -w "%{http_code}\\n" -o /dev/null
67.設(shè)置root密碼,強(qiáng)化MySQL安全安裝:
/usr/bin/mysql_secure_installation
68.當(dāng)Ctrl + c不好使時(shí):
Ctrl + \
69.獲取文件owner:
stat -c %U file.txt
70.block設(shè)備列表:
lsblk -f
71.找出文件名結(jié)尾有空格的文件:
find . -type f -exec egrep -l " +$" {} \;
72.找出文件名有tab縮進(jìn)符的文件
find . -type f -exec egrep -l $'\t' {} \;
73.用”=”打印出橫線:全選復(fù)制放進(jìn)筆記
printf '%100s\n' | tr ' ' = ;
1. 連接到相應(yīng)的Linux主機(jī),進(jìn)入Linux命令行狀態(tài),等待shell命令的輸入。
2. 其次,在Linux命令行上鍵入echo $LANG。
3.最后,按下回車鍵執(zhí)行shell指令,此時(shí)會(huì)看到該linux的漢字編碼是utf-8。
擴(kuò)展資料:
1、查找目前所使用的linux下所使用的jdk安裝后的目錄:echo $JAVA_HOME;
2、獲得目前所使用的linux下所使用的jdk的版本java -version;
3、獲得所安裝后的jdk的版本,在bin目錄下輸入 ./java -version即可;配置好Java環(huán)境的情況下可以使用 java -version查看。
4、Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。 Linux操作系統(tǒng)誕生于1991 年10 月5 日(這是第一次正式向外公布時(shí)間)。
5、Linux存在著許多不同的Linux版本,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,比如手機(jī)、平板電腦、路由器、視頻游戲控制臺(tái)、臺(tái)式計(jì)算機(jī)、大型機(jī)和超級計(jì)算機(jī)。
6、嚴(yán)格來講,Linux這個(gè)詞本身只表示Linux內(nèi)核,但實(shí)際上人們已經(jīng)習(xí)慣了用Linux來形容整個(gè)基于Linux內(nèi)核,并且使用GNU工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。
環(huán)境變量LANG,LANG:language,語言對應(yīng)的環(huán)境變量,不同語言又對應(yīng)的是不同的字符編碼方式
比如我們最常見到的編碼方式:utf、utf-8、gb2312、gbk、big5等
控制編碼格式文件: /etc/sysconfig/i18n
默認(rèn)值:
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
查看當(dāng)前LANG
查看所有語言包
設(shè)置LANG命令
例如,(C對應(yīng)ASCII編碼)
bashrc: export LANG=C
cshrc: setenv LANG C
locale是linux系統(tǒng)中多語言環(huán)境的設(shè)置接口,Locale根據(jù)計(jì)算機(jī)用戶所使用的語言,所在國家或者地區(qū),以及當(dāng)?shù)氐奈幕瘋鹘y(tǒng)所定義的一個(gè)軟件運(yùn)行時(shí)的語言環(huán)境。
通過locale來設(shè)置程序運(yùn)行的不同語言環(huán)境,locale由ANSI C提供支持。locale的命名規(guī)則為語言_地區(qū).字符集編碼,如zh_CN.UTF-8,zh代表中文,CN代表大陸地區(qū),UTF-8表示字符集。在locale環(huán)境中,有一組變量,代表國際化環(huán)境中的不同設(shè)置。
語法格式:locale [參數(shù)]? ??locale介紹
1、ls命令
cd /root
ls #顯示當(dāng)前目錄下所有的非隱藏文件
ls -a #顯示當(dāng)前目錄下所有文件,包含隱藏文件
ls -l #顯示當(dāng)前目錄下所有的非隱藏文件的詳情
ls -al #顯示當(dāng)前目錄下所有文件,包含隱藏文件 的詳情
ls -lh #以列表形式顯示當(dāng)前目錄下所有的非隱藏文件的大小(K M T)
ls -alh #以列表形式顯示所有文件,包含隱藏文件的文件大小(K M T)
常用的組合:
ls
ll #等價(jià)于 ls -l
ls /etc #顯示/etc目錄下的文件
2:pwd命令
用來顯示當(dāng)前所在的路徑
絕對路徑: 從/目錄開始的路徑
/root
/etc/sysconf
/opt/server/data-integration/libswt/win64
相對路徑: 相對當(dāng)前的路徑
3、mkdir命令
cd /root
mkdir mytest #在當(dāng)前目錄創(chuàng)建文件夾
mkdir -p 111/222/333 #一次創(chuàng)建多級文件夾
mkdir /root/mydemo #使用絕對路徑來創(chuàng)建
mkdir mydemo2 #使用相對對路徑來創(chuàng)建
4、rm命令
這個(gè)命令既可以刪除文件,也可以刪除目錄
刪文件:
cd /root
rm a.txt #刪除時(shí),會(huì)給出提醒確認(rèn),輸入y刪除,n不刪除
rm -f b.txt #強(qiáng)制刪除 等價(jià)于 rm -f /root/b.txt
rm ../dir2/b.txt
touch a.java b.java c.java
rm a.java b.java c.java #一次可以刪除多個(gè)文件
rm *.java -fr #可以刪除當(dāng)前目錄下的所有.java文件
cd dir
rm * -fr #刪除當(dāng)前目錄的所有內(nèi)容
刪目錄:
rm -r 111 #刪除目錄,依次提醒刪除
rm -rf mytest #強(qiáng)制刪除 等價(jià)于 rm mytest -fr
常用組合:
rm -fr 文件或目錄
5、cd命令
cd 命令可以進(jìn)入一個(gè)目錄,類似于對windows上的文件夾進(jìn)行雙擊
cd #直接cd 可以從任何一個(gè)目錄回到/root目錄
cd /root #進(jìn)入root目錄
cd /opt/server/data-integration/system/
cd .. #回到上一級目錄
cd ../.. #回到上上一級目錄
cd - #可以在最近的兩次目錄之間切換
cd /root
mdkir dir1 dir2
cd dir1
cd ../dir2 #使用相對路徑 /中國/廣東省/深圳市/寶安區(qū)/留仙二路/78號
6、歷史命令和table補(bǔ)全
使用上下方向鍵可以找出歷史命令
table鍵:
cd /opt/ #兩次table可以列出/opt目錄下所有的文件和子目錄
cd /opt/s #一次table可以自動(dòng)補(bǔ)全目錄內(nèi)容,前提是/opt目錄下只有一個(gè)s開頭的目錄
7、touch命令
cd /root
touch a.java #在當(dāng)前目錄創(chuàng)建a.txt文件
touch b.java c.java #創(chuàng)建多個(gè)文件
touch /root/d.java #通過絕對路徑創(chuàng)建
8、mv命令
移動(dòng):
1、mv 文件 目錄 #將文件移動(dòng)到目錄中區(qū)
cd /root/dir1
touch a.txt
mv a.txt /root/dir2 #等價(jià)于 mv a.txt ../dir2
2、 mv 目錄1 目錄2 #將目錄1移動(dòng)到目錄2下面(前提是目錄2必須存在)
cd /root
mv dir2 dir1 #將dir2移動(dòng)到dir1下面
重命名:
1、mv 文件1 文件2 #給文件重命名(文件2不能存在)
cd /root
mv a.txt aaa.txt #將a.txt 重命名為aaa.txt
2、mv 目錄1 目錄2 #給目錄重命名(目錄2不能存在)
cd /root
mv dir1 dirx #將dir1重命名為dirx
9、cat命令
顯示文件內(nèi)容
cd /root
cat user.txt
10、cp命令
復(fù)制文件
cd /root
cp user.txt user2.txt
cp user.txt /opt/ #將當(dāng)前目錄的user.txt 復(fù)制到/opt目錄,文件名保持不變
cp user.txt /opt.user2.txt #將當(dāng)前目錄的user.txt 復(fù)制到/opt目錄,文件名改為user2.txt
cp /opt/server/data-integration/pan.sh ./ #將指定目錄里的文件復(fù)制到當(dāng)前目錄(.后邊的/可以去掉)
cp /opt/server/data-integration/pan.sh ./dirx #將指定目錄里的文件復(fù)制到當(dāng)前目錄下的dirx目錄(.后邊的/比可以去掉)
cp /opt/server/data-integration/pan.sh /root/dirx #作用同上
11、解壓和壓縮
Linux的壓縮包后綴一般是: .tar.gz
解壓:
.tar.gz
將snappy-1.1.1.tar.gz上傳到/root/dir1目錄
tar -zxvf snappy-1.1.1.tar.gz #默認(rèn)解壓到當(dāng)前目錄
tar -xvf snappy-1.1.1.tar.gz #默認(rèn)解壓到當(dāng)前目錄
tar -xvf snappy-1.1.1.tar.gz -C /opt #將壓縮包解壓到/opt目錄
.zip格式
unzip mysql-connector-java-8.0.13.zip #默認(rèn)解壓到當(dāng)前目錄
unzip -d /opt mysql-connector-java-8.0.13.zip #解壓到指定目錄
壓縮:
.tar.gz
tar -czvf snappy-1.1.1.tar.gz snappy-1.1.1 #將snappy-1.1.1文件夾進(jìn)行打包壓縮
tar -czvf /root/dir/snappy-1.1.1.tar.gz /opt/server/snappy-1.1.1
.zip格式
zip -r mysql-connector-java-8.0.13.zip mysql-connector-java-8.0.13/
12、find命令
用來實(shí)現(xiàn)文件的查找
find / -name 'a.txt' #從/目錄開始查找a.txt文件
find / -name 'ins*' #從/目錄開始查找以ins開頭的文件
find / -type f -size +100M #查找/目錄下文件大小大于100M的文件
13、grep命令
grep lang anaconda-ks.cfg #從anaconda-ks.cfg文件中查找包含lang的內(nèi)容
14、ps命令
ps #查看依賴終端的進(jìn)程
ps -ef #查看Linux系統(tǒng)中所有的進(jìn)程
15、kill命令
kill -9 進(jìn)程的pid #每次啟動(dòng)進(jìn)程時(shí),pid會(huì)發(fā)生變化,但是進(jìn)程運(yùn)行期間pid不會(huì)變化
16、管道 |
管道就是把前邊命令的結(jié)果作為后邊命令的輸入
ps -ef | grep mysql #查找和mysql相關(guān)的進(jìn)程
ll /etc | grep java #在/etc目錄中查找java相關(guān)的文件
17、用戶的操作
用戶創(chuàng)建和密碼設(shè)置
useradd itheima #創(chuàng)建新用戶itheima
passwd itheima #設(shè)置用戶itheima密碼
用戶刪除
userdel -r itheima #刪除用戶itheima
18、文件的權(quán)限
所屬用戶: root 文件的創(chuàng)建者
所屬用戶組: root 和文件創(chuàng)建者在一個(gè)組的用戶
其他用戶: itcast 既不是文件創(chuàng)建者,也和文件創(chuàng)建者不在同一組
r: 可讀
w:可寫
x: 可執(zhí)行
chmod命令:
方式1:
chmod u+rw a.txt #在所屬用戶之前的權(quán)限基礎(chǔ)上添加可讀和可寫權(quán)限
chmod u=rw a.txt #將所屬用戶的權(quán)限直接修改為可讀,可寫
chmod +x #給所屬用戶,所屬用戶組和其他用戶全部加上可執(zhí)行權(quán)限
方式2:
chmod 777 a.txt #給所有用戶加上所有權(quán)限
19、clear命令
用來清屏
快捷鍵: ctrl + l
20、history命令
用來查看所有的歷史命令
21:vi編輯器的使用
vi a.txt #打開a.txt文件
vim a.txt #vim是vi的增強(qiáng)
22、網(wǎng)絡(luò)管理命令
hostname :查看主機(jī)名
修改主機(jī)名: /etc/hostname
ifconfig :查看ip地址
修改ip地址: /etc/sysconfig/network-scripts/ifcfg-ens33
服務(wù)問題:
service network restart
文章標(biāo)題:linux的命令lang linux的命令解釋器
標(biāo)題網(wǎng)址:http://jinyejixie.com/article44/hpciee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)、App設(shè)計(jì)、網(wǎng)站導(dǎo)航、網(wǎng)站排名、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)