shell

tar

  • 压缩

    tar zcvf <target>.tar.gz <target>

  • 解压

    tar zxvf <target>.tar.gz

这里的选项z表示使用 gz 压缩,c代表 tar 的打包,x代表 tar 的解包,v表示打印过程。

将户用添加进 sudoers

使用系统命令visudo,添加如下配置:

username ALL=(ALL:ALL) NOPASSWD:ALL

如果/etc/sudoers可编辑,也可直接编辑此文件。

添加 man 手册

有些环境没有man命令,需要安装 man-pages 这个包:

yum install -y man-pages

远程登陆 shell

要从其他机器登陆 linux shell,比如 Windows shell,只需要使用ssh命令即可:

ssh <name>@<IP>

反汇编

objdump <option> a.out

-d:将代码段反汇编。

-S:将代码段反汇编的同时,将反汇编代码和源代码交替显示,编译时需要给出 -g,即需要调试信息。

-C:将 C++ 符号名逆向解析。

-l:反汇编代码中插入源代码的文件名和行号。

-j section:仅反汇编指定的 section。可以有多个 -j 参数来选择多个 section。

软链接

  • 创建软连接
ln -s 『源文件或目录的绝对路径』 『目标文件或目录』
  • 修改软连接
ln –snf 『新的源文件或目录的绝对路径』 『目标文件或目录』

shell script

  • 获取文件绝对路径
SHELL_FOLDER=$(dirname $(readlink -f "$0"))
  • 判断文件后缀
check_suffix()
{
    file=$1

    if [ "${file##*.}"x = "txt"x ] || [ "${file##*.}"x = "ini"x ];then
        echo $file
    fi
}
  • 遍历目录
traverse_dir()
{
    filepath=$1

    for file in `ls -a $filepath`
    do
        if [ -d ${filepath}/$file ]
        then
            if [[ $file != '.' && $file != '..' ]]
            then
                #递归
                traverse_dir ${filepath}/$file
            fi
        else
            #调用查找指定后缀文件
            check_suffix ${filepath}/$file
        fi
    done
}

grep

关键词出现次数

  • 模糊匹配

    grep -o "keyword" filename | wc -l

  • 精确匹配

    grep -wo "keyword" filename | wc -l

  • 包含关键字的行数(每行关键字只计数一次)

    grep -c "keyword" filename

gcc

宏展开

gcc -E -P maco_expand.c -o result.c

文档信息

Search

    Table of Contents