Skip to main content

管理與操作

查出目前使用哪種 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.

Linux_terminal_shortcuts.jpeg

執行前一個指令的參數

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