Linux 命令#
ctrl + C
打断执行pwd
输出当前位置cmd1;cmd2
首先运行命令 1,然后运行命令 2cmd1&&cmd2
仅在命令 1 成功结束时才运行命令 2cmd1||cmd2
仅当命令 1 失败时才运行命令 2strace
追踪程序系统调用touch
新建文件,内容为空cat
cat filename
查看单个文件cat [filename-whose-contents-is-to-be-copied] > [destination-filename]
将一个文件的内容复制到另一个文件中cat file1 >> file2
Cat 命令可以将一个文件的内容追加到另一个文件的末尾。
- 管道;用
|
连接两个命令,以前面一个命令的输出作为后面命令的输入strace -f gcc a.c 2>&1 | vim -
这将同时将 stdout 和 stderr 导入到 vim 中。-
参数告诉 vim 从 stdin 读取。strace pmap 152 |& vim -
|&
: 这是 bash 和 zsh 中2>&1 |
的简写。它将一个命令的标准输出和标准错误作为另一个命令的输入传递。
sort -nk 6
按第 6 列升序排列- 执行多次,或循环执行
#for i in {1..5}; do // while true; do > command >done
- crontab 的使用
crontab -e
- 注意:crontab 运行的环境并不包含 docker 命令。需要指定完整的路径。
lsof -i:端口号
查看端口占用情况kill -9 PID
杀掉对应的进程grep
(global regular expression) 用于查找文件里符合条件的字符串或正则表达式which
查找安装路径 如which docker
ls -l
详细信息~/.bashrc
是 Bash shell 在每次启动时都会自动执行的一个脚本文件,可以用于设置环境变量、别名和一些其他 Bash shell 配置。source /opt/rh/devtoolset-9/enable
更新 gcc 版本- export PS1='[][\W]$ []' 修改 PS1 变量,让其更加简洁。PS1 的默认设置为
\[\][\u@\h \W]\$ \[\]
tar
tar cvf file.tar *.c
创建名为 file.tar 的 tar 文件,其中包含当前目录中所有的.c 文件。tar xvf file.tar
从归档中提取文件。z
告诉 tar 命令使用 gzip 创建 tar 文件,即tar.gz
- 可以利用 TAB 补全查看所有可用的命令选项 (连按两次 TAB 键)
汇编相关#
objdump -d filename
打印可执行部分的汇编内容。objdump -s filename
打印文件所有部分的完整内容。
gcc#
gcc -E a.c
对 a.c 进行宏展开- 升级 gcc 版本到 gcc9 CentOS7 升级 gcc 版本到 gcc9
source /opt/rh/devtoolset-9/enable
-static
静态编译,省去动态链接相关的系统调用
vim#
- cmd 模式
:!cmd
从 Vim 中执行 shell 命令!gcc %
编译!xxd
将当前文件转换为十六进制表示并显示在终端中%!xxd
将当前文件的内容通过管道传递给外部命令 xxd,并将其输出替换为当前文件的内容
:set nu
显示行号:set wrap
:%!grep execve
:%! grep -v ENOENT
:%s/term/another_term/g
替换
- visual 模式 按 v 进入
y
复制选中内容d
删除
u
撤销
gdb#
- 编译时要带
-g
bt
trace