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 |的簡寫。它將一個命令的 stdout 和 stderr 作為另一個命令的輸入傳遞。
  • 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

參考鏈接#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。