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 |
的簡寫。它將一個命令的 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