管理與操作
查出目前使用哪種 SHELL
ps -p $$
echo $0
echo $SHELL
執行 SHELL 的方式
sh file
. file
source file
常用鍵盤快捷鍵
Key | Operation |
---|---|
Ctrl + a | Go to the beginning of the line. |
Ctrl + e | Go to the end of the line. |
Alt + b | Go left(back) one word. |
Alt + f | Go right(forward) one word. |
Alt + . | Use the last word of the previous command. |
Ctrl + r | Search through the command's history |
Ctrl + u | Cut the part of the line before the cursor, adding it to the clipboard. |
Ctrl + k | Cut the part of the line after the cursor, adding it to the clipboard. |
Ctrl + l | Clear the screen |
Ctrl + w | 刪除游標前個單字 |
Ctrl+x,Ctrl+e | Edit the current command in your $EDITOR. |
執行前一個指令的參數
ls -l /home/alang/test.py
vi !$
或
vi <alt> + .
執行前一個指令
!!
搜尋最近曾執行過的指令
<ctrl> + r
(reverse-i-search): 輸入指令開頭的前幾個字元
搜尋所有曾執行過的指令集
$> history | grep "keyword"
Alias - 新增客製的指令
以下內容需要編輯 ~/.bashrc
- 使用 alias
# User specific aliases and functions
alias date-time='date && cal'
- 使用 function
date-time () {
date && cal
return
}
export -f date-time
- 常用 Aliases
# Custom specified aliases
alias lastmod="find . -type f -exec stat --format '%Y :%y %n' \"{}\" \; | sort -nr | cut -d: -f2-"
alias vi="vim"
alias grep="grep --color"
Bash Prompt - 客製提示字元
.bashrc:
# Kali-like Prompt
if $(__git_ps1 2>/dev/null);then
PS1="\[\033[38;5;209m\]┌──[\[\033[38;5;141m\]\u\[\033[38;5;209m\]@\[\033[38;5;105m\]\h\[\033[38;5;231m\]:\w\[\033[38;5;209m\]]\[\033[33m\]\$(GIT_PS1_SHOWUNTRACKEDFILES=1 GIT_PS1_SHOWDIRTYSTATE=1 __git_ps1)\[\033[00m\]\n\[\033[38;5;209m\]└─\\[\033[38;5;209m\]\\$\[\033[37m\] "
else
source /usr/share/git-core/contrib/completion/git-prompt.sh
PS1="\[\033[38;5;209m\]┌──[\[\033[38;5;141m\]\u\[\033[38;5;209m\]@\[\033[38;5;105m\]\h\[\033[38;5;231m\]:\w\[\033[38;5;209m\]]\[\033[33m\]\$(GIT_PS1_SHOWUNTRACKEDFILES=1 GIT_PS1_SHOWDIRTYSTATE=1 __git_ps1)\[\033[00m\]\n\[\033[38;5;209m\]└─\\[\033[38;5;209m\]\\$\[\033[37m\] "
fi
┌──[alang@mint-HX90:~]
└─$
Formatting Scripts
# Install shfmt
## On Ubuntu
sudo snap install shfmt
## On Alpine Linux
sudo apk add shfmt
## On FreeBSD
sudo pkg install devel/shfmt
# Format shell programs using Shfmt
## -i flag is the amount of spaces that will be used to intend.
shfmt -i 4 myscript.sh
## With Diff style output
shfmt -d -i 4 myscript.sh
終端機輸出內容轉存一個檔案
# 1. script
# Once you are done with the session, type the 'exit'.
script my.out
# 2. tee
myprogram | tee my.out
No Comments