Skip to main content

管理與操作

基本操作

查出目前使用哪種 SHELL

ps -p $$
echo $0
echo $SHELL 

執行 SHELL 的方式

sh file
. file
source file

執行前一個指令的參數

ls -l /home/alang/test.py
vi !$
或
vi <alt> + .

執行前一個指令

!!

搜尋最近曾執行過的指令

<ctrl> + r
(reverse-i-search): 輸入指令開頭的前幾個字元

搜尋所有曾執行過的指令集

$> history | grep "keyword"

Alias

以下內容需要編輯 ~/.bashrc
使用方法

# User specific aliases and functions
alias date-time='date && cal'
常用 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"
自訂 functions
date-time () {
    date && cal
    return
}

export -f date-time

避免誤用 crontab 清除指令

# Avoid crontab deleted by mistake with the command 'crontab -r'.
# shift 1: get rid of the first one argument
crontab() {
    case $* in
      -r* ) shift 1; echo -n "Really delete your crontab? (y/n)? "; read ans; if [ "$ans" = "y" ]; then command crontab -r; else echo "Canceled."; fi;;
        * ) command crontab "$@";;
    esac
}

管理自訂函式

# List All Functions
declare -F

# View a specific function
declare -F function-name

# Delete a specific function
unset -f function-name

Custom 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

常用鍵盤快捷鍵

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