grep -rn "Main"
递归查找当前路径下所有文件中包含 "Main" 的行tar -jc -f fr.tar.bz2 --exclude=fitting_room/frontend/build fitting_room
是gzip 方式压缩打包 backend 目录,z
表示 gzip 方式压缩(bzip2 是参数j
,bz2 压缩比更高一些),p
是保留源权限,c
是 create 的意思,v
是打印处理中的信息,f
是指定文件,--exclude
用来排除目录,多个排除的用多个mkdir backend && tar -zxv -f backend.tar.gz -C backend
解压缩 tar.gz 到指定目录,和压缩的区别主要是x
是 extract 的意思,C
是 Change directory 的意思du -smh backend/
递归统计 backend 文件夹下文件的总大小du -h --max-depth=1
列出当前目录下的文件夹的大小,面试被问到的,完全没印象,自己太菜了kill -9 6666
杀掉 PID 为 666 的进程scp -P 166 root@166.166.166.166:/root/temp/Code.zip ./Temp/
将远程主机的文件复制到本地,本地上传调换位置即可,文件夹的话加-r
参数lsblk
,sudo mount /dev/sdb4 /mnt/usb
,sudo umount /mnt/usb
,sudo eject /dev/sdb4
挂载U盘相关操作top -bn 1 -i -c
查看 CPU 占用最高的进程,top -Hp ${PID}
查看该进程的线程情况kill -3 ${PID}
线程 dump,输出位置在其日志中,比如 Tomcat 的在 /var/log/tomcat8/catalina.out 中find . -name '*.java' | xargs wc -l
统计一个文件夹下所有 java 文件总行数,需要注意如果是在 Shell 脚本里用的话,执行属主一定要对当前工作目录有访问权限,否则会造成 find: failed to restore initial working directoryret=$(some command | other script)
这种想要捕获第一个命令的状态码直接使用${PIPESTATUS[0]}
是做不到的,不知道为什么会被赋值覆盖,需要多余的捕获一下状态码作为子 Shell 的退出码,ret=$(some command | other script; exit ${PIPESTATUS[0]})
,再判断$?
即可tcpdump -i any -s 0 -w dump.cap
抓所有网卡的包ssh ${user}@${server_ip} -i ${pem_path} -p ${server_port}
SSH 密钥连接,重新生成 known_hostsssh-keygen -R ${server_ip}
,有端口的话是ssh-keygen -R [${host}]:${port}
echo 1 | sudo tee /sys/block/${device}/device/delete
弹出 SATA 盘,eject 命令弹 SATA 盘会报错,等一会盘彻底不转了再抽走nohup emulator @android_8 > /dev/null 2>&1 &
后台启动一个模拟器但是不输出任何信息find mlb/ | grep -iE '.*\.java$' | xargs cat | wc -l
统计 mlb/ 下 java 文件的总行数,可用于统计代码数量