shell 常用
iterm2 分屏快捷鍵
command + t :新建窗口
command + d:垂直分屏
command + shift + d:水平分屏
command + ] 和command + [ 在最近使用的分屏直接切換
command + alt + 方向鍵:切換到指定位置的分屏
command + 數(shù)字:切換標(biāo)簽頁
command + 方向鍵:按方向切換標(biāo)簽頁
shift + command + s:保存當(dāng)前窗口快照
command + alt + b:快照回放。對你的操作根據(jù)時間軸進(jìn)行回放。可以拖動下方的時間軸,也可以按左右方向鍵
命令行常用的快捷鍵:
ctrl + c 中斷當(dāng)前命令執(zhí)行
ctrl + w 往回刪除一個單詞,光標(biāo)放在最末尾
ctrl + u 刪除光標(biāo)以前的字符
ctrl + k 刪除光標(biāo)以后的字符
ctrl + a 移動光標(biāo)至的字符頭
ctrl + e 移動光標(biāo)至的字符尾
ctrl + l 清屏
rename 重命名
rename -n 's/abc/def/' * //針對當(dāng)前文件夾下的所有文件 把a(bǔ)bc 替換為def -n并不執(zhí)行
rename 's/abc/def/' * //針對當(dāng)前文件夾下的所有文件 把a(bǔ)bc 替換為def
rename 's/abc/def/g' * //針對當(dāng)前文件夾下的所有文件 把所有abc 替換為def
支持通配符
? 可替代單個字符
* 可替代多個字符
例子 文件夾中有這些文件foo1, ..., foo9, foo10, ...foo111
rename foo foo0 foo? // foo1到foo9的文件重命名為foo01到foo09,重命名的文件只是有4個字符長度名稱的文件,文件名中的foo被替換為foo0
rename 's/^\(//' *.png。 //將左括號"("去掉
rename 's/\.jpg$/\.png/' *.jpg //將后綴名.jpg改成.png
批量去掉隱藏文件名的第一個點.
ls -adl .* | awk '{print $NF}' | sed 's/^.//g' | xargs -i'{}' mv .{} {} //把所有隱藏的文件顯示出來
ls -adl .* //列出.* 模式的普通文件 不包括 . ..文件夾
awk '{print $NF}' //列出最后一列
sed 's/^.//g' //替換以.開頭的.
xargs -i'{}' mv .{} {} //把前邊的輸出作為命令行參數(shù) 傳遞給mv命令,-i'{}' 指定模版符號'{}' 表示前邊傳過來的參數(shù)
mac 命令行 批量把文件名前加'g21_'
ls -adl * | awk '{print $NF}' | xargs -I '{}' mv {} 'g21_'{}
mac殺死webstorm進(jìn)程
ps aux | grep webstorm | awk 'NR==1,NR==2{print $2}' | xargs kill
分割文件
split -a 2 -l 100000 addItem.log child
//以-l =100000行 分割文件 分割后的文件名為childaa childab ...
//-b 20M 以20M 為單位分割
解壓文件
tar -xjvf xxx.tbz //tbz格式
tar -xvf xxx.tar.gz //tar.gz
xz -d xxx.tar.xz //tar.xz
tar -xvf xxx.tar //tar
使用tar壓縮文件
tar -zcvf test.tar.gz ./test/
tar -cvf test.tar ./test/
使用tar解壓文件
tar -xzvf test.tar.gz
tar -xvf test.tar
刪除指定日期的文件
find /tmp -mtime +0 -type f -name "test*" | xargs rm -rf
//刪除/tmp文件夾下24小時以內(nèi)類型為test 的文件
find /tmp -mtime +30 | xargs rm -f
//刪除/tmp文件夾下30天以前的文件
ssh/scp
ssh -p 6000 root@xxx.com
ssh -i ~/xxx.pem root@xxx.com
scp -P 6000 root@xxx.com:/xxx.txt ./
scp -i ~/xxx.pem root@xxx.com:/xxx/xxx.txt ./
scp xxx.txt root@xxx.com:/xxx.txt
(-v detail info)
ssh/scp使用sock5代理連接
scp -P 8888 -o ProxyCommand="nc -x 127.0.0.1:1086 %h %p" root@ip:/root/xx.txt .
ssh -p 8888 -o ProxyCommand="nc -x 127.0.0.1:1086 %h %p" root@ip
traceroute 192.168.9.1 -n
telnet 192.168.1.2 8000 (only tcp, quit)
nc
nc -vzw 6 IP port (-w timeout time) //測試TCP端口
nc -vuzw 2 IP port //測試UDP端口
nc -l port //臨時監(jiān)聽TCP端口
nc -lk port //永久監(jiān)聽TCP端口
nc -lu port //臨時監(jiān)聽UDP
nc -luk port //永久監(jiān)聽UDP
linux 掛載 u盤
fdisk -l //查看當(dāng)前插入的u盤
mkdir /mnt/udisk //創(chuàng)建掛載目錄
mount /dev/xxx /mnt/udisk
umount /mnt/udisk
`dmesg`命令 在硬件的連接或斷開連接時,可以看到硬件的檢測或者斷開連接的信息。
列出所有被檢測到的硬件
dmesg | grep sda
實時監(jiān)控dmesg日志輸出
watch "dmesg | tail -20"
iperf3測速
測試方法:
Mac Mini(IP: 192.168.1.12) 執(zhí)行命令 `iperf3 -s`
在不同的網(wǎng)絡(luò)環(huán)境下,使用 MacBook Pro 執(zhí)行 `iperf3 -c 192.168.1.12`
rsync copy file
1)拷貝本地文件。當(dāng)SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工作模式。
如:rsync -a ./test.c /backup
2)使用一個遠(yuǎn)程shell程序(如rsh、ssh)來實現(xiàn)將本地機(jī)器的內(nèi)容拷貝到遠(yuǎn)程機(jī)器。當(dāng)DES路徑地址包含單個冒號":"分隔符時啟動該模式。
如:rsync -avz test.c user@172.16.0.11:/home/user/src
3)使用一個遠(yuǎn)程shell程序(如rsh、ssh)來實現(xiàn)將遠(yuǎn)程機(jī)器的內(nèi)容拷貝到本地機(jī)器。當(dāng)SRC地址路徑包含單個冒號":"分隔符時啟動該模式。
如:rsync -avz user@172.16.0.11:/home/user/src ./src
4)從遠(yuǎn)程rsync服務(wù)器中拷貝文件到本地機(jī)。當(dāng)SRC路徑信息包含"::"分隔符時啟動該模式。
如:rsync -av user@172.16.0.11::www /databack
5)從本地機(jī)器拷貝文件到遠(yuǎn)程rsync服務(wù)器中。當(dāng)DES路徑信息包含"::"分隔符時啟動該模式。
如:rsync -av /databack user@172.16.0.11::www
6)列遠(yuǎn)程機(jī)的文件列表。這類似于rsync傳輸,不過只要在命令中省略掉本地機(jī)信息即可。
如:rsync -v rsync://172.16.78.192 /www
-v, --verbose 詳細(xì)模式輸出
-a, --archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD
-z, --compress 對備份的文件在傳輸時進(jìn)行壓縮處理
lsof命令
通過list open file命令可以查看到當(dāng)前打開文件,在linux中所有事物都是以文件形式存在,包括網(wǎng)絡(luò)連接及硬件設(shè)備。
lsof -i:80
-i參數(shù)表示網(wǎng)絡(luò)鏈接,:80指明端口號,該命令會同時列出PID,方便kill
查看所有進(jìn)程監(jiān)聽的端口
sudo lsof -i -P | grep -i "listen"
netstat -nlp |grep LISTEN //查看當(dāng)前所有監(jiān)聽端口·
netstat -nlp |grep 80 //查看所有80端口使用情況·
netstat -an | grep 3306 //查看所有3306端口使用情況·
dig www.baidu.com @127.0.0.1 -p 5353 //指定特定端口的dns服務(wù) 查ip
殺前6個有NODE 的進(jìn)程:
ps aux | grep node | head -6 | awk '{print $2}' | xargs kill -9
統(tǒng)計已連接上的,狀態(tài)為“established'
netstat -na|grep ESTABLISHED|wc -l
netstat -s命令
netstat -s | egrep "listen|LISTEN"
667399 times the listen queue of a socket overflowed
667399 SYNs to LISTEN sockets ignored
上面看到的 667399 times ,表示全連接隊列溢出的次數(shù),隔幾秒鐘執(zhí)行下,如果這個數(shù)字一直在增加的話肯定全連接隊列偶爾滿了。
netstat -s | grep TCPBacklogDrop
查看 Accept queue 是否有溢出
ss命令
ss -lnt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:6379 *:*
LISTEN 0 128 *:22 *:*
如果State是listen狀態(tài),Send-Q 表示第三列的listen端口上的全連接隊列最大為50,第一列Recv-Q為全連接隊列當(dāng)前使用了多少。
非 LISTEN 狀態(tài)中 Recv-Q 表示 receive queue 中的 bytes 數(shù)量;Send-Q 表示 send queue 中的 bytes 數(shù)值。
系統(tǒng)信息
cat /proc/cpuinfo
cat /proc/version
cat /etc/issue
cat /etc/lsb-release
uname -a
free -h
df -h
du
/var/log/wtmp //每個用戶的登錄次數(shù)和持續(xù)時間等信息
/var/log/btmp //詳細(xì),包括登錄失敗請求
/var/run/utmp //當(dāng)前正在本系統(tǒng)中的用戶的信息
將二進(jìn)制文件轉(zhuǎn)換為可編輯文件 wtmp.file
utmpdump /var/log/wtmp >/var/log/wtmp.file
將可編輯文件轉(zhuǎn)換為二進(jìn)制文件
utmpdump -r < /var/log/wtmp.file > /var/log/wtmp
crontab文件的含義:
六個字段,前五段是時間設(shè)定段,第六段是要執(zhí)行的命令段,格式如下:
minute hour day month week command
其中:
minute: 表示分鐘,可以是從0到59之間的任何整數(shù)。
hour:表示小時,可以是從0到23之間的任何整數(shù)。
day:表示日期,可以是從1到31之間的任何整數(shù)。
month:表示月份,可以是從1到12之間的任何整數(shù)。
week:表示星期幾,可以是從0到7之間的任何整數(shù),這里的0或7代表星期日。
command:要執(zhí)行的命令,可以是系統(tǒng)命令,也可以是自己編寫的腳本文件。
在以上各個字段中,還可以使用以下特殊字符:
星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數(shù)之間的中杠表示一個整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執(zhí)行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次。
*/60 * * * * ~/php-server-status.sh //每隔60分鐘執(zhí)行一次
*/1 * * * * ~/test.sh //每隔1分鐘執(zhí)行一次
glibc版本查看
ldd --version
strings /lib/arm-linux-gnueabihf/libc.so.6 | grep GLIBC_
ripgrep 常用語法
rg -l 僅僅顯示匹配的文件名。
rg -i 大小寫不敏感。
rg -v 反向匹配,即顯示不匹配的結(jié)果。
rg NEEDLE README.md 在特定文件中查找。可以是一個或多個文件。
rg -c ‐‐sort path|modified|accessed|created NEEDLE 按特定順序顯示結(jié)果
rg -g ‘*.nuspec’ NEEDLE 查找特定文件
rg -e NEEDLE1 -e NEEDLE2 多重條件查找
浙公網(wǎng)安備 33010602011771號