Linux shell常用命令匯總
10年積累的網站設計、做網站經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有靖宇免費網站建設讓你可以放心的選擇與我們合作。
對于經常使用linux系統(tǒng)的博主來說,基本常用的shell命令是少不了的,下面為大家總結了Linux shell的常用命令,希望對大家有所幫助!
1.檢查遠程端口是否對bash開放:
echo /dev/tcp/8.8.8.8/53 echo "open"
2.讓進程轉入后臺:
Ctrl + z
3、將進程轉到前臺:
fg
4.產生隨機的十六進制數,其中n是字符數:
openssl rand -hex n
5.在當前shell里執(zhí)行一個文件里的命令:
source /home/user/file.name
6.截取前5個字符:
${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抓取完整的網站目錄結構,存放到本地目錄中:
wget -r --no-parent --reject "index.html*" -P /home/user/dirs
10.一次創(chuàng)建多個目錄:
mkdir -p /home/user/{test,test1,test2}
11.列出包括子進程的進程樹:
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.修改文件或目錄的時間戳(YYMMDDhhmm):
touch -t 0712250000 file
20.用wget命令執(zhí)行ftp下載:
wget -m
21.生成隨機密碼(例子里是16個字符長):
LANG=c /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
22.快速備份一個文件:
cp some_file_name{,.bkp}
23.訪問Windows共享目錄:
smbclient -U "DOMAIN\user" //dc.domain點抗 /share/test/dir
24.執(zhí)行歷史記錄里的命令(這里是第100行):
!100
25.解壓:
unzip package_name.zip -d dir_name
26.輸入多行文字(CTRL + d 退出):
cat test.txt
27.創(chuàng)建空文件或清空一個現有文件:
\ test.txt
28.與Ubuntu NTP server同步時間:
ntpdate ntp.ubuntu點抗
29.用netstat顯示所有tcp4監(jiān)聽端口:
netstat -lnt4 | awk '{print $4}' | cut -f2 -d: | grep -o '[0-9]*'
30.qcow2鏡像文件轉換:
qemu-img convert -f qcow2 -O raw precise-server-cloudimg-amd64-disk1.img \precise-server-cloudimg-amd64-disk1.raw
31.重復運行文件,顯示其輸出(缺省是2秒一次):
watch ps -ef
32.所有用戶列表:
getent passwd
33.Mount root in read/write mode:
mount -o remount,rw /
34.掛載一個目錄(這是不能使用鏈接的情況):
mount --bind /source /destination
35.動態(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個最大的文件:
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點抗 :name/app.git -b master
41.Git 切換到其它分支(develop):
git checkout develop
42.Git 刪除分支(myfeature):
git branch -d myfeature
43.Git 刪除遠程分支
git push origin :branchName
44.Git 將新分支推送到遠程服務器:
git push -u origin mynewfeature
45.打印歷史記錄中最后一次cat命令:
!cat:p
46.運行歷史記錄里最后一次cat命令:
!cat
47.找出/home/user下所有空子目錄:
echo /dev/tcp/8.8.8.8/53 echo "open"
1.檢查遠程端口是否對bash開放:
find /home/user -maxdepth 1 -type d -empty
48.獲取test.txt文件中第50-60行內容:
test.txt sed -n '50,60p'
49.運行最后一個命令(如果最后一個命令是mkdir /root/test, 下面將會運行: sudo mkdir /root/test):
sudo !!
50.創(chuàng)建臨時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.在需要提升權限的.情況下往一個文件里追加文本:
echo "some text" | sudo tee -a /path/file
53.列出所有kill signal參數:
kill -l
54.在bash歷史記錄里禁止記錄最后一次會話:
kill -9 $$
55.掃描網絡尋找開放的端口:
nmap -p 8081 172.20.0.0/16
56.設置git email:
git config --global user.email "me@example點抗 "
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里的進度條:
pv data.log
61.使用netcat將數據發(fā)送到Graphite server:
echo "hosts.sampleHost 10 `date +%s`" | nc 192.168.200.2 3000
62.將tabs轉換成空格:
expand test.txt test1.txt
63.Skip bash history:
space cmd
64.去之前的工作目錄:
cd -
65.拆分大體積的tar.gz文件(每個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.設置root密碼,強化MySQL安全安裝:
/usr/bin/mysql_secure_installation
68.當Ctrl + c不好使時:
Ctrl + \
69.獲取文件owner:
stat -c %U file.txt
70.block設備列表:
lsblk -f
71.找出文件名結尾有空格的文件:
find . -type f -exec egrep -l " +$" {} \;
72.找出文件名有tab縮進符的文件
find . -type f -exec egrep -l $'\t' {} \;
73.用”=”打印出橫線:全選復制放進筆記
printf '%100s\n' | tr ' ' = ;
用來建立一個軟鏈接,而ln -s /usr/lib/libX11.3 libX11.sl的意思為:為/usr/lib/libX11.3文件建立一個名為libX11.sl的軟鏈接。
命令格式:
ln [參數][源文件或目錄][目標文件或目錄]
參數
1、-b 刪除,覆蓋以前建立的鏈接
2、-d 允許超級用戶制作目錄的硬鏈接
3、-f 強制執(zhí)行
4、-i 交互模式,文件存在則提示用戶是否覆蓋
5、-n 把符號鏈接視為一般目錄
6、-s 軟鏈接(符號鏈接)
7、-v 顯示詳細的處理過程
擴展資料
軟鏈接解釋
1、軟鏈接,以路徑的形式存在。類似于Windows操作系統(tǒng)中的快捷方式。
2、軟鏈接可以 跨文件系統(tǒng) ,硬鏈接不可以。
3、軟鏈接可以對一個不存在的文件名進行鏈接。
4、軟鏈接可以對目錄進行鏈接。
硬鏈接:
1、硬鏈接,以文件副本的形式存在。但不占用實際空間。
2、不允許給目錄創(chuàng)建硬鏈接。
3、硬鏈接只有在同一個文件系統(tǒng)中才能創(chuàng)建。
linux ps命令介紹
來源《鳥哥的linux私房菜》
ps:將某個時間點的程序運作情況擷取下來
?
[root@linux ~]# ps aux
[root@linux ~]# ps -lA
[root@linux ~]# ps axjf
參數:
-A :所有的 process 均顯示出來,與 -e 具有同樣的效用;
-a :不與 terminal 有關的所有 process ;
-u :有效使用者 (effective user) 相關的 process ;
x :通常與 a 這個參數一起使用,可列出較完整信息。
輸出格式規(guī)劃:
l :較長、較詳細的將該 PID 的的信息列出;
j :工作的格式 (jobs format)
-f :做一個更為完整的輸出。
特別說明:
由于 ps 能夠支持的 OS 類型相當的多,所以他的參數多的離譜!
而且有沒有加上 - 差很多!詳細的用法應該要參考 man ps 喔!
范例1:將目前屬于您自己這次登入的 PID 與相關信息列示出來
?
[root@linux ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 5881 5654 0 76 0 - 1303 wait pts/0 00:00:00 su
4 S 0 5882 5881 0 75 0 - 1349 wait pts/0 00:00:00 bash
4 R 0 6037 5882 0 76 0 - 1111 - pts/0 00:00:00 ps
?
# 上面這個信息其實很多喔!各相關信息的意義為:
# F 代表這個程序的旗標 (flag), 4 代表使用者為 super user;
# S 代表這個程序的狀態(tài) (STAT),關于各 STAT 的意義將在內文介紹;
# PID 沒問題吧?。烤褪沁@個程序的 ID ?。〉紫碌?PPID 則上父程序的 ID;
# C CPU 使用的資源百分比
# PRI 這個是 Priority (優(yōu)先執(zhí)行序) 的縮寫,詳細后面介紹;
# NI 這個是 Nice 值,在下一小節(jié)我們會持續(xù)介紹。
# ADDR 這個是 kernel function,指出該程序在內存的那個部分。如果是個 running
# 的程序,一般就是『 - 』的啦!
# SZ 使用掉的內存大??;
# WCHAN 目前這個程序是否正在運作當中,若為 - 表示正在運作;
# TTY 登入者的終端機位置啰;
# TIME 使用掉的 CPU 時間。
# CMD 所下達的指令為何???
# 仔細看到每一個程序的 PID 與 PPID 的相關性為何喔!上頭列出的三個程序中,
# 彼此間可是有相關性的吶!
范例2:列出目前所有的正在內存當中的程序
?
[root@linux ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 1740 540 ? S Jul25 0:01 init [3]
root 2 0.0 0.0 0 0 ? SN Jul25 0:00 [ksoftirqd/0]
root 3 0.0 0.0 0 0 ? S Jul25 0:00 [events/0]
.....中間省略.....
root 5881 0.0 0.3 5212 1204 pts/0 S 10:22 0:00 su
root 5882 0.0 0.3 5396 1524 pts/0 S 10:22 0:00 bash
root 6142 0.0 0.2 4488 916 pts/0 R+ 11:45 0:00 ps aux
?
? USER:該 process 屬于那個使用者賬號的?
? PID :該 process 的號碼。
? %CPU:該 process 使用掉的 CPU 資源百分比;
? %MEM:該 process 所占用的物理內存百分比;
? VSZ :該 process 使用掉的虛擬內存量 (Kbytes)
? RSS :該 process 占用的固定的內存量 (Kbytes)
? TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網絡連接進主機的程序。
? STAT:該程序目前的狀態(tài),主要的狀態(tài)有:
o R :該程序目前正在運作,或者是可被運作;
o S :該程序目前正在睡眠當中 (可說是 idle 狀態(tài)啦!),但可被某些訊號 (signal) 喚醒。
o T :該程序目前正在偵測或者是停止了;
o Z :該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆尸) 程序的狀態(tài)
? START:該 process 被觸發(fā)啟動的時間;
? TIME :該 process 實際使用 CPU 運作的時間。
? COMMAND:該程序的實際指令為何?
范例3:以范例一的顯示內容,顯示出所有的程序
?
[root@linux ~]# ps -lA
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 76 0 - 435 - ? 00:00:01 init
1 S 0 2 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/0
1 S 0 3 1 0 70 -5 - 0 worker ? 00:00:00 events/0
.....以下省略.....
范例4:列出類似程序樹的程序顯示
?
[root@linux ~]# ps -axjf
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 1 0 0 ? -1 S 0 0:01 init [3]
1 2 0 0 ? -1 SN 0 0:00 [ksoftirqd/0]
.....中間省略.....
1 5281 5281 5281 ? -1 Ss 0 0:00 /usr/sbin/sshd
5281 5651 5651 5651 ? -1 Ss 0 0:00 \_ sshd: dmtsai [priv]
5651 5653 5651 5651 ? -1 S 500 0:00 \_ sshd: dmtsai@pts/0
5653 5654 5654 5654 pts/0 6151 Ss 500 0:00 \_ -bash
5654 5881 5881 5654 pts/0 6151 S 0 0:00 \_ su
5881 5882 5882 5654 pts/0 6151 S 0 0:00 \_ bash
5882 6151 6151 5654 pts/0 6151 R+ 0 0:00 \_ ps -axjf
范例5:找出與 cron 與 syslog 這兩個服務有關的 PID 號碼
?
[root@linux ~]# ps aux | egrep '(cron|syslog)'
root 1539 0.0 0.1 1616 616 ? Ss Jul25 0:03 syslogd -m 0
root 1676 0.0 0.2 4544 1128 ? Ss Jul25 0:00 crond
root 6157 0.0 0.1 3764 664 pts/0 R+ 12:10 0:00 egrep (cron|syslog)
在預設的情況下, ps 僅會列出與目前所在的 bash shell 有關的 PID 而已,所以, 當我使用 ps -l 的時候,只有三個 PID (范例一)。
當前文章:包含Linux系統(tǒng)sl命令的詞條
當前鏈接:http://muchs.cn/article10/ddieido.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站營銷、虛擬主機、品牌網站制作、域名注冊、響應式網站、自適應網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯