实用Shell命令

文件压缩并分卷

(转)使用tar和split打包分割文件

tar -czvp -f - clueweb12 |split -b 4000m - clueweb12.tar.gz. --verbose
cat clueweb12.tar.gz.* | tar -zxv

合并并解压

cat clueweb12.tar.gz.* |tar -zxv

pigz并行压缩、解压

time tar -cf - clueweb12.0.edges | pigz -p 4 > clueweb12.0.edges.tgz  # 4线程压缩
time pigz -p 4 -d clueweb12.0.edges.tgz  # 4线程解压  

权限设置

find . -type f | xargs chmod g+r  # 递归查找当前目录下所有文件,并设置为对同group可读
find . -type d | xargs chmod g+rx  # 递归查找当前目录下所有文件夹,并设置为对同group可进入

文件大小查找

查找小于1MB的文件,- 表示小于
find ./ -size -1048576c -type f

查看程序的内存占用

ps -o pid,ppid,rsz,vsz,args

一句话在shell中获取脚本所在文件夹

workspace="$(cd $(dirname $0);pwd)"

查找被 Linux 系统 kill 的进程

一般情况下,Linux系统在内存不足的情况下,会对当前的进程打分,kill 掉分最高的进程。

grep -i 'killed process' /var/log/messages

gdb dump 全部线程的堆栈

当怀疑死锁时,把全部堆栈打印出来,找原因

gdb -p ${pid} -ex "thread apply all bt" -ex "set confirm off" -ex "quit" > all_bt.log
gdb ${binary} ${coredump} -ex "thread apply all bt" -ex "set confirm off" -ex "quit" > output.log

gdb 调试带参数的程序

注意 --args 在 binary 的前面

gdb --args ${binary} ${args} ...

查看文件中间一段

sed -n '100,200p' filename

利用 Python 启动简易的 HttpServer

有时候需要把本地的一些文件以网页形式展示。如整理完测试覆盖率后,需要方便浏览的时候,服务器上一般都带有 Python,可以直接 cd 到目录上,直接建立起简单的 HttpServer,浏览其中的文件:

# For 3.X 
python -m http.server 
# For 2.X 
python -m SimpleHTTPServer

Git submodule init

git submodule update --init --recursive

你可能感兴趣的:(实用Shell命令)