EuDs

EuDs

EuDs's Blog
twitter
github

Linux学习笔记

Linux 命令#

  • ctrl + C 打断执行
  • pwd 输出当前位置
  • cmd1;cmd2 首先运行命令 1,然后运行命令 2
  • cmd1&&cmd2 仅在命令 1 成功结束时才运行命令 2
  • cmd1||cmd2 仅当命令 1 失败时才运行命令 2
  • strace 追踪程序系统调用
  • 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

参考链接#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。