Command Line Interface (CLI)
āļāļĢāļ°āļāļ§āļāļāļēāļĢāļāļģāļāļēāļāļāļāļāđāļāļĨāļĨāđ āđāļĨāļ°āļāļļāļāļāļģāļŠāļąāđāļāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļ (Command Sequences)
āđāļāļĨāļĨāđ (Shell)
shell āđāļāđāļāļāļąāļ§āļāļĨāļēāļāđāļāļāļēāļĢāļĢāļąāļāļāļģāļŠāļąāđāļ (Command Line) āļāļēāļāļāļđāđāđāļāđāđāļĨāđāļ§āļāļ°āļāļģāļāļēāļĢāđāļāļĨāļāļļāļāļāļģāļŠāļąāđāļ (Command Line Interpreter - CLI) āļāļĩāđāļāļđāđāđāļāđāļāđāļāļāđāļāđāļēāļĄāļē āđāļāļĒāļāļāļ§āļāļāļēāļĢāļ āļēāļĒāđāļāļāļąāļ§ shell āļāļ°āļāđāļāļāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļąāļāļāļąāļāļāđāļāļāļāļāļāļĢāļ°āļāļāļāļāļīāļāļąāļāļīāļāļēāļĢāđāļāļēāđāļ§āđ āđāļāļĒāļāļĩāđāļāļđāđāđāļāđāļāļ°āđāļĄāđāļĢāļđāđāļ§āđāļēāļŦāļĨāļąāļāļāļēāļāļāļĩāđāļāđāļāļāļāļģāļŠāļąāđāļāđāļāđāļĨāđāļ§āļ āļēāļĒāđāļāļāļ°āļāđāļāļāļĄāļĩāļāļāļ§āļāļāļēāļĢāđāļāđāļāđāļĢāļāđāļēāļ āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ āļāđāļēāļāļđāđāđāļāđāļāđāļāļāļāļēāļĢāļāļĢāļēāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļāļĩāđāđāļŦāļĨāļ·āļāļŦāļĢāļ·āļāļāļ·āđāļāļāļĩāđāļāļāļāļŪāļēāļĢāđāļāļāļīāļŠāļāđāļāļĩāđāđāļŦāļĨāļ·āļāļāļĒāļđāđ āļāļđāđāđāļāđāđāļāļĩāļĒāļāļāļīāļĄāļāđāļāļģāļŠāļąāđāļ free/df āļāļąāļ§ shell āļāđāļāļ°āļāļģāļŦāļāđāļēāđāļāļ·āđāļāļĄāļāđāļāđāļĨāļ°āđāļāđāļēāđāļāļāļąāļāļāļēāļĢāđāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļŦāļĢāļ·āļāļŪāļēāļĢāđāļāļāļīāļŠāļāđāđāļŦāđāļāļĢāļ§āļāļŠāļāļāļāļąāļ§āđāļāļāļ§āđāļēāļāļāļ°āļāļĩāđāļĄāļĩāļāļēāļĢāđāļāđāļāļēāļāđāļāđāļāļāđāļāļĄāļđāļĨāđāļāđāļāđāļēāđāļŦāļĢāđāđāļĨāđāļ§āđāļĨāļ°āđāļŦāļĨāļ·āļāļāļ·āđāļāļāļĩāđāđāļŦāđāđāļāđāļāļēāļāđāļāđāļāļĩāļāđāļāđāļēāđāļŦāļĢāđ āļāļķāđāļāļāļāļ§āļāļāļēāļĢāļāļąāļāļāļĩāđāđāļāđāļāļĨāđāļēāļ§āļāđāļēāļāļāđāļāđāļāđāļāļāļēāļĢāļāļīāļāļāđāļāļŠāļ·āđāļāļŠāļēāļĢāđāļāļĢāļ°āļāļąāļāļĨāđāļēāļāļāļĩāđāđāļĢāļĩāļĒāļāļ§āđāļēāļĢāļ°āļāļąāļāđāļāļāļĢāđāđāļāļĨ āļāļķāđāļāļāļ·āļāđāļāđāļ§āđāļēāđāļāđāļāđāļāļāļāļĨāļēāļāļŠāļģāļāļąāļāđāļāļāļēāļĢāļāļ§āļāļāļļāļĄāļāļēāļĢāļāļģāļāļēāļāļĢāļ°āļāļāļāļąāđāļāļŦāļĄāļāļ āļēāļĒāđāļāđāļāļĢāļ·āđāļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ āđāļāļĒāļāļ°āļāļĨāđāļēāļ§āļāļķāļāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļāļāđāļāļāļĢāđāđāļāļĨāđāļāļāļāļāļąāļāđāđāļ
āļāļāļāļāļēāļāļāļąāđāļ shell āļĒāļąāļāļŠāļēāļĄāļēāļĢāļāļĢāļāļāļĢāļąāļāļāļēāļĢāđāļāļĩāļĒāļāļāļļāļāļāļģāļŠāļąāđāļāļĄāļēāļāļāļ§āđāļēāļŦāļāļķāđāļāļāļģāļŠāļąāđāļāļāļĢāđāļāļĄāļāļąāļ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļĢāļąāļāļāļļāļāļāļģāļŠāļąāđāļāļĨāđāļ§āļāļŦāļāđāļēāđāļŦāđāļāļģāļāļēāļāļāļēāļĄāđāļāļ·āđāļāļāđāļāļāđāļēāļāđāļāļĩāđāđāļāđāļāļģāļŦāļāļāđāļ§āđāđāļāļĨāļąāļāļĐāļāļ°āļŠāļāļĢāļīāļāļāđ (Script) āļāļĩāđāļāļđāļāđāļāđāļāļĨāļāđāļāđāļāļĨāđāđāļāđ āļāļģāđāļŦāđāđāļāļīāđāļĄāļāļ§āļēāļĄāļŠāļ°āļāļ§āļāđāļĨāļ°āļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļāļāļēāļĢāđāļāđāļāļēāļāļĢāļ°āļāļāļāļāļīāļāļąāļāļīāļāļēāļĢāļĨāļĩāļāļļāļāļāđ āđāļāļĒāđāļāļāļēāļ°āļāļđāđāđāļāđāļāļĩāđāļĄāļĩāļāļąāļāļĐāļ°āļāļĒāļđāđāļĢāļ°āļāļąāļāļŦāļāļķāđāļāđāļāļāļēāļĢāđāļāļĩāļĒāļāļŠāļāļĢāļīāļāļāđāļŦāļĢāļ·āļāļāļĩāđāđāļĢāļĩāļĒāļāļāļąāļāļ§āđāļēāđāļāļĨāļĨāđāļŠāļāļĢāļīāļāļāđ (Shell script) āļāļąāđāļ āđāļĨāļ°āļāļāļāļāļēāļāļāļąāđāļāļĨāļđāļāđāļĨāđāļāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāļāļ°āļĄāļēāļāļāđāļāļĒāđāļāļĩāļĒāļāđāļāļāđāļĒāļąāļāļāļķāđāļāļāļĒāļđāđāļāļąāļāļĒāļĩāđāļŦāđāļāļŦāļĢāļ·āļāļĢāļļāđāļāđāļāļĢāđāļāļĢāļĄ shell āļāļąāđāļāļāđāļ§āļĒ āđāļāļāļąāļāļāļļāļāļąāļ shell āļāļĩāđāļĄāļĩāļāļīāļāļāļīāļāļĨāđāļĨāļ°āđāļāđāļāļāļĩāđāļāļīāļĒāļĄāļĄāļēāļāļāļĩāđāļŠāļļāļāļāļąāļ§āļŦāļāļķāđāļāļāļ·āļ Bourne shell (āļāļąāļāļāļļāļāļąāļāļāļĨāļēāļĒāđāļāđāļ Bourne Again shell) āđāļĨāļ° C shell

āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāđāļŠāļāļ prompt āđāļāļĢāļđāļāđāļāļāļāđāļēāļāđ āđāļĄāļ·āđāļāđāļāđāļēāļŠāļđāđāļĢāļ°āļāļāļāļāļīāļāļąāļāļīāļāļēāļĢāđāļāļāļēāļāļ°āļāļđāđāđāļāđāļāļąāđāļ§āđāļ
[ee-server@wiroon]$ āļŦāļĢāļ·āļ
wiroon@ee-server:~$ āļŦāļĢāļ·āļ
$
āļāļāļāļāļēāļāļāļąāđāļāđāļĄāļ·āđāļāļāļđāđāđāļāđāļāđāļāļāļāļēāļĢāđāļāđāļēāđāļāļāļēāļāļ°āļāļđāđāļāļđāđāļĨāļĢāļ°āļāļāļāļĩāđāđāļĢāļĩāļĒāļāļ§āđāļē Superuser āļŦāļĢāļ·āļ root āđāļāļĒāđāļāđāļāļģāļŠāļąāđāļ sudo su āđāļāļ·āđāļāđāļāļĨāļĩāđāļĒāļāļĄāļēāđāļāđāļ root āļāļąāļāļāļģāļŠāļąāđāļāļāđāļēāļāļĨāđāļēāļāļāļĩāđ
$ sudo su
[sudo] password for wiroon:
root@EE-Server:/home/wiroon#
āļāļēāļāļāļģāļŠāļąāđāļāļāđāļēāļāļāđāļāđāļĄāļ·āđāļāļāļđāđāđāļāđāļĢāļ°āļāļļāļĢāļŦāļąāļŠāļāđāļēāļāļāļāļ Superuser āđāļĨāđāļ§ āļāđāđāļŠāļāļāļāļĨāļāļāļ prompt āļāļąāđāļāļāļēāļāđāļāļīāļĄāđāļāđāļŠāļąāļāļĨāļąāļāļĐāļāđ â$â āļāđāļāļ°āļāļđāļāđāļāļĨāļĩāđāļĒāļāđāļāđāļāļŠāļąāļāļĨāļąāļāļĐāļāđ â#â āđāļāļ·āđāļāļāļāļāđāļŦāđāļŠāļēāļĄāļēāļĢāļāļāļķāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāļĄāļēāļāļĒāļđāđāđāļāļāļēāļāļ° root āđāļĢāļĩāļĒāļāļĢāđāļāļĒāđāļĨāđāļ§
āļāļąāļ§āđāļāļĢāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄāļāļāļāļĢāļ°āļāļ (Environment Variable)
āļāļąāļ§āđāļāļĢāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄ (Environment variables) āđāļāđāļāļāļąāļ§āđāļāļĢāļāļĩāđāļĄāļĩāļāļ§āļēāļĄāļŠāļģāļāļąāļāļĄāļēāļāđāļāļĢāļ°āļāļāļāļāļīāļāļąāļāļīāļāļēāļĢāļĨāļĩāļāļļāļāļāđ āđāļāļ·āđāļāļāļāļēāļāđāļāđāļāļāļąāļ§āđāļāļĢāļāļĨāļēāļāļāļĩāđ shell āļŦāļĢāļ·āļ āđāļāļĢāđāļāļĢāļĄāļāļĢāļ°āļĒāļļāļāļāđāļāđāļēāļāđāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđāļāļēāļāđāļāđ āļāļēāļāļīāđāļāđāļ āļāļąāļ§āđāļāļĢāļāļĩāđāđāļāđāļāļāđāļāļĄāļđāļĨāļāļāļ shell āļŦāļĢāļ·āļāļāļąāļ§āđāļāļĢāļāļĩāđāđāļāđāļāļāđāļāļĄāļđāļĨāļāļāļāđāļāđāļĢāļāļāļāļĢāļĩāļāļĢāļ°āļāļģāļāļąāļ§āļāļāļāļāļđāđāđāļāđ (Home Directory) āđāļĨāļ°āļĒāļąāļāļĄāļĩāļāļąāļ§āđāļāļĢāļāđāļēāļāđ āļāļĩāļāļĄāļēāļāļĄāļēāļĒāļāļĩāđ shell āđāļāđāļĄāļĩāļāļēāļĢāļāļąāđāļāļāđāļēāđāļ§āđāđāļāļāļāļ°āļāļĩāđ shell āđāļĢāļīāđāļĄāļāļģāļāļēāļ āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ bash shell āļāļ°āļĄāļĩāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāļĨāđāđāļĢāļīāđāļĄāļāđāļāļāļĒāļđāđ 2 āđāļāļĨāđāđāļāđāđāļāđ āđāļāļĨāđ ~/.profile
āđāļĨāļ°āđāļāļĨāđ ~/.bashrc
$ cat .profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export USE_CCACHE=0
export CCACHE_DIR=~/ccache
export JAVA_HOME=/usr/lib/jvm/jdk
export ANT_HOME=~/android/ant
export ANDROID_SDK_HOME=~/android/sdk
export ANDROID_NDK_HOME=~/android/ndk
export AOSP_HOME=~/aosp
export PATH=$HOME/bin:$JAVA_HOME/bin:$ANT_HOME/bin:$ANDROID_SDK_HOME/tools:$ANDROID_SDK_HOME/platform-tools:$ANDROID_NDK_HOME:$PATH
$ cat .bashrc
# .bashrc
# User specific aliases and functions
HISTSIZE=1000
HISTFILESIZE=2000
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
āđāļāļāļĢāļāļĩāļāļĩāđāđāļāđāļ zsh shell āļāļķāđāļāđāļāļāļąāļāļāļļāļāļąāļāļāļģāļĨāļąāļāđāļāđāļĢāļąāļāļāļ§āļēāļĄāļāļīāļĒāļĄ āļāļ°āļāđāļēāļāļāļīāļāđāļāļĨāđ ~/.zshrc
$ cat ~/.zshrc ââŊ
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
#ZSH_THEME="robbyrussell"
ZSH_THEME="powerlevel10k/powerlevel10k"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment one of the following lines to change the auto-update behavior
# zstyle ':omz:update' mode disabled # disable automatic updates
# zstyle ':omz:update' mode auto # update automatically without asking
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
# Uncomment the following line to change how often to auto-update (in days).
# zstyle ':omz:update' frequency 13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(common-aliases history git zsh-autosuggestions zsh-syntax-highlighting kubectl emoji encode64 dirhistory web-search macos sudo web-search copyfile copybuffer colored-man-pages command-not-found pip python rust brew docker golang history-substring-search iterm2)
eval $(/usr/bin/thefuck --alias fix)
eval $(/usr/bin/thefuck --alias wtf)
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
alias ..="cd .."
alias ..2="cd ../.."
alias ..3="cd ../../.."
alias ..4="cd ../../../.."
alias ..5="cd ../../../../.."
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
export FREERTOS_PATH=/opt/FreeRTOS_202212.00/
export PICO_SDK_PATH=/home/wiroon/bdh/freertos/rpi_pico/pico-sdk
export PATH="$PATH:/home/wiroon/bdh/freertos/rpi_pico/pico-toolbox/makepico"
āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāļāļīāļāļāļąāđāļ Oh-My-Zsh Shell
āđāļĄāļ·āđāļāļāļđāđāđāļāđāđāļāđāļēāļŠāļđāđāļĢāļ°āļāļ Login āđāļāļĒāļāļēāļĢāđāļāđāļāļēāļāļāđāļēāļāļŦāļāđāļēāļāļāđāļāļāļĢāđāļĄāļīāļāļąāļĨāļāļķāđāļāļāļīāļĒāļĄāđāļĢāļĩāļĒāļāļŠāļąāđāļāđāļ§āđāļē tty (Teletypewriter) āđāļĄāļ·āđāļāļŦāļāđāļēāļāļāđāļāļāļĢāđāļĄāļīāļāļąāļĨāļāļđāļāļŠāļĢāđāļēāļāļāļķāđāļ āļāļąāļ§āđāļāļĢāđāļāļĢāļĄāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāđāļēāļŠāļđāđāļĢāļ°āļāļāļāđāļāļ°āļāļđāļāđāļĢāļĩāļĒāļāļāļķāđāļāļĄāļēāđāļāļ·āđāļāđāļŠāļāļāļāđāļāļāļ§āļēāļĄāđāļŦāđāļāļđāđāđāļāđāļāļĢāļāļāļāļ·āđāļāļāļđāđāđāļāđ (username) āđāļĨāļ°āļĢāļŦāļąāļŠāļāđāļēāļ (password) āđāļĄāļ·āđāļāđāļāđāļēāļŠāļđāđāļĢāļ°āļāļāđāļāđāļŠāļģāđāļĢāđāļāļāđāļāļ°āļāļģāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ shell āđāļāļ·āđāļāļāđāļēāļāļāđāļēāļāļ·āđāļāļāļēāļāļāļĩāđāļāļąāđāļāđāļ§āđāļŠāļģāļŦāļĢāļąāļāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄāļāļāļāļĢāļ°āļāļ (system environments) āļāļąāļāļāļąāđāļāļāļāļāđāļāļĢāļđāļāļāđāļēāļāļĨāđāļēāļ

āđāļŠāļāļāļĢāļēāļĒāļāļ·āđāļ Shells āļāļĩāđāļĄāļĩāļāļĒāļđāđāđāļāļĢāļ°āļāļ Linux āđāļāļĒāļāļđāļāļēāļāđāļāļĨāđ /etc/shells
$ cat /etc/shells ââŊ
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash
/bin/zsh
/usr/bin/zsh
/usr/bin/screen
āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļāļīāļāļāļāļ shell āļāļĩāđāļāļģāļĨāļąāļāđāļāđāļāļēāļāļāļĒāļđāđāđāļāļĢāļ°āļāļāļāđāļ§āļĒāļāļģāļŠāļąāđāļ echo āđāļĨāļ°āļāļĢāļ§āļāļŠāļāļāļĢāļļāđāļāļāļāļ shell āļāđāļ§āļĒ --version
$ echo $SHELL
/bin/bash
$ bash --version
GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
āļāļāļāļāļēāļāļāļąāđāļāļĢāļ°āļāļāļāļ°āļĄāļĩāļāļēāļĢāļāļąāđāļāļāđāļēāļāļąāļ§āđāļāļĢāļĢāļ°āļāļāļāļ·āđāļāļāļēāļ āļāļķāđāļāđāļāđāļāļāļąāļ§āđāļāļĢāļŠāļģāļāļąāļāļāļĩāđāļāļ°āļāļāđāļāļāļāđāļāļĒāđāļāđāđāļāđ
USER
āđāļĢāļĩāļĒāļāļāļ·āđāļāļāļđāđāđāļāđāļāļēāļāļāļĩāđāđāļāđāđāļāļāļēāļĢāđāļāđāļēāļŠāļđāđāļĢāļ°āļāļ
UID
āđāļĢāļĩāļĒāļāļĢāļŦāļąāļŠāļāļđāđāđāļāđāļāļēāļāļāļĩāđāđāļāđāđāļāļāļēāļĢāđāļāđāļēāļŠāļđāđāļĢāļ°āļāļ
HOME
āđāļĢāļĩāļĒāļ Home Directory
PWD
āđāļĢāļĩāļĒāļ Directory āļāļĩāđāļāļģāļĨāļąāļāđāļāđāļāļēāļ
SHELL
āđāļĢāļĩāļĒāļāļāļ·āđāļ shell āļāļĩāđāļāļģāļĨāļąāļāđāļāđāļāļēāļ
$
āđāļĢāļĩāļĒāļ process id āļāļĩāđāļāļģāļĨāļąāļāđāļāđāļāļēāļ
PPID
āđāļĢāļĩāļĒāļ process id āļāļĩāđāđāļāđāļĢāļąāļāļāļēāļĢāļŠāļ·āļāļāļāļāļĄāļē
?
The exit code of the last command
āļāļģāļŠāļąāđāļ Echo
āđāļāđāļāļāļģāļŠāļąāđāļāļāļĩāđāđāļāđāđāļāļāļēāļĢāđāļŠāļāļāļāđāļāļāļ§āļēāļĄāđāļāđāļāļĩāđāļāđāļāļāļāļēāļĢāđāļŦāđāļāļđāļāļāļĢāļēāļāļāļāļāļŦāļāđāļēāļāđāļēāļāđāļāļāļĢāđāļĄāļīāļāļąāļĨ āļāļąāļāļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāđāļāđāļāļģāļŠāļąāđāļāļāļąāļāļāļĩāđ
$ echo Welcome to Embedded System
Welcome to Embedded System!
$ echo Welcome to Embedded System
Welcome to Embedded System!
$ echo 'Welcome to Embedded System'
Welcome to Embedded System!
āļāļēāļāļāļąāļ§āļāļĒāđāļēāļāļāļ°āđāļŦāđāļāļ§āđāļēāļāļģāļŠāļąāđāļ echo āļāļ°āđāļĄāđāļŠāļāđāļāļāđāļāļāļ§āđāļēāļāļ§āđāļēāļāļ°āļĄāļĩāļāļĩāđāļāđāļāļāļ§āđāļēāļ āļāļēāļĢāđāļŠāļāļāļāļĨāļāļ°āļāļđāļāļāļąāļāļāđāļāļāļ§āđāļēāļāđāļŦāļĨāļ·āļāđāļāļĩāļĒāļ 1 āļāđāļāļāļ§āđāļēāļāđāļŠāļĄāļ āđāļāđāļāđāļēāļāđāļāļāļāļēāļĢāđāļŦāđāđāļŠāļāļāļāļĨāļĨāļąāļāļāđāļāļēāļĄāļĢāļ°āļĒāļ°āļŦāđāļēāļāļāļĩāđāļāđāļāļāļāļēāļĢāļāļ°āļāđāļāļāđāļāđāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒ āļāļąāļāļāļĢāļ°āļāļēāļĻ (â -Apostrophe) āļŦāļĢāļ·āļāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļāļģāļāļđāļ (â - Quotation Mark) āļāļĢāļāļāļāđāļāļāļ§āļēāļĄāļāļąāđāļ āđāļāļ·āđāļāļāļāļēāļāđāļ Bash shell āļāļąāđāļāļāļ°āđāļāđ white space (āđāļāļĒāļāļēāļĢāļāļāļāļļāđāļĄ space bar) āđāļāļāļēāļĢāđāļĒāļāļāđāļāļāļ§āļēāļĄāļāļāļāđāļāđāļ token āļŦāļĢāļ·āļāđāļĢāļĩāļĒāļāļ§āđāļē āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđāđāļāļ·āđāļāđāļāđāđāļāļāļēāļĢāđāļŠāļāļāļāļĨ āđāļāđāļāđāļēāļĄāļĩāļāļēāļĢāđāļŠāđāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļāļĢāļāļāļāđāļāļāļ§āļēāļĄāđāļāđāļ âBurapha Universityâ āļāđāļāļāļ§āļēāļĄāļāļąāđāļāļāļ°āļāļđāļāđāļāđāļāđāļ§āđāđāļ token āđāļāļĩāļĒāļāļāļąāļ§āđāļāļĩāļĒāļ§
āļāļēāļĢāđāļāđāļāļēāļāļāļģāļŠāļąāđāļ echo āļāļ°āļĄāļĩāļāļąāļ§āđāļĨāļ·āļāļ (Option) āļŦāļĨāļēāļĒāđāļāļ (āļāļķāđāļāļŠāļēāļĄāļēāļĢāļāļāļđāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļģāļŠāļąāđāļāđāļāđāđāļāļĒāļāļīāļĄāļāđ man echo) āļĒāļāļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ āļāļēāļĢāđāļāđāļāļąāļ§āđāļĨāļ·āļāļ -n āļāđāļāļāđāļēāļĒāļāļģāļŠāļąāđāļ echo āļāļ°āļŦāļĄāļēāļĒāļāļķāļāļāļēāļĢāđāļĄāđāļāļķāđāļāļāļĢāļĢāļāļąāļāđāļŦāļĄāđ (New Line)
$ echo -n "My name is Android"
My name is Android$
āđāļāđāļāđāļēāļāđāļāļāļāļēāļĢāļāļķāđāļāļāļĢāļĢāļāļąāļāđāļŦāļĄāđāļāļēāļĄāļāļąāļāļāļĢāļ°āļāļīāđāļĻāļĐ \n (new line) āļāđāļāļāļĢāļ°āļāļļāļāļąāļ§āđāļĨāļ·āļāļ -e āļŦāļĨāļąāļāļāļģāļŠāļąāđāļ echo
$ echo -e "My name is \nAndroid"
My name is
Android
āļāļāļāļāļēāļāļāļąāļāļāļĢāļ° \n āđāļĨāđāļ§āļĒāļąāļāļĄāļĩāļāļąāļāļāļĢāļ°āđāļāļāļēāļĢāļāļ§āļāļāļļāļĄāļāļēāļĢāđāļŠāļāļāļāļĨāļāđāļāļāļ§āļēāļĄāļāļąāļāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāđāļāļāļēāļĢāļēāļāļāđāļēāļāļĨāđāļēāļāļāļĩāđ
\a
Alert (bell)
\b
Backspace
\c
āļŦāļĒāļļāļāļāļēāļĢāļāļķāđāļāļāļĢāļĢāļāļąāļāđāļŦāļĄāđ (āļĨāļąāļāļĐāļāļ°āđāļāļĩāļĒāļ§āļāļąāļāļāļēāļĢāđāļāđāļāļēāļ -n)
\f
Form feed
\n
New line
\r
Carriage return
\t
Horizontal tab
āđāļāļāļēāļĢāđāļāđāļāļēāļ Bash shell āļāļąāđāļāļĒāļąāļāļĄāļĩāļāļąāļāļāļĢāļ°āđāļāļāļēāļ°āļĄāļēāļāļĄāļēāļĒāļāļĩāđāđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļģāļĄāļēāđāļāđāđāļŠāļāļāđāļāđāļāļāļąāļ§āļāđāļāļāļ§āļēāļĄāđāļāđ āđāļāļ·āđāļāļāļāļēāļāļāļđāļāđāļāđāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļāļāļēāļĢāļāļąāļāļāļēāļĢāļāļīāļāļāļļāļāļāļāļāļāļģāļŠāļąāđāļ āđāļāđāļ '|', '&', ';', '(', ')', '<', '>' āđāļāđāļāđāļēāļāđāļāļāļāļēāļĢāđāļŠāļāļāļāļąāļāļāļĢāļ°āđāļŦāļĨāđāļēāļāļĩāđāđāļŦāđāļāļĢāļēāļāļāļāļĒāļđāđāđāļāļāđāļāļāļ§āļēāļĄāļāļ°āļāđāļāļāđāļāļīāļĄāļŠāļąāļāļĨāļąāļāļĐāļāđ \ āļāļģāļŦāļāđāļēāļāļąāļāļāļĢāļ°āđāļŠāļĄāļ āļŦāļĢāļ·āļāđāļāđāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļāļąāļāļāļĢāļ°āļāļēāļĻāļāļĢāļāļāļāļąāđāļāļāđāļāļāļ§āļēāļĄāļāļĩāđāļĄāļĩāļāļąāļāļāļĢāļ°āļāļŠāļĄāļāļĒāļđāđāļāđāđāļāđ
āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāđāļāđāļŠāļąāļāļĨāļąāļāļĐāļāđ \ āļāļģāļŦāļāđāļēāļāļąāļāļāļĢāļ°āļāļĩāđāļāđāļāļāļāļēāļĢāđāļŠāļāļāđāļāđāļāļāđāļāļāļ§āļēāļĄ
$ echo I love Linux & Android
[1] 30136
I love Linux
Android: command not found
[1]+ Done echo I love Linux
[1]+ Done echo I love Linux
$ echo I love Linux \& Android
I love Linux & Android
$ echo 'I love Linux & Android'
I love Linux & Android
env āđāļĨāļ° export
āļāļģāļŠāļąāđāļ export āđāļāđāļāļāļģāļŠāļąāđāļāļāļĩāđāļāļđāđāđāļāđāļāļēāļāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāļāļąāļ§āđāļāļĢāļ°āļāļāđāļāļīāđāļĄāđāļāļīāļĄāđāļāđāđāļāļ āđāļāļĒāļāļēāļĢāļĢāļ°āļāļļāđāļāđāļēāđāļāđāļāđāļāļĨāđ .bashrc āļŦāļĢāļ·āļāļāļīāļĄāļāđāļāļģāļŠāļąāđāļāļāļēāļĢāļāļąāđāļāļāđāļēāđāļāđāđāļāļĒāļāļĢāļāđāļ terminal āļāļąāļāļāļąāļ§āļāļĒāđāļēāļāļāđāļēāļāļĨāđāļēāļ
$ export my_project_codes=/home/student/embedded/sourcecode/
āļŦāļēāļāļāļđāđāđāļāđāļāđāļāļāļāļēāļĢāļāļđāļāđāļēāļāļąāļ§āđāļāļĢāļ°āļāļāļāļĩāđāļĄāļĩāļāļēāļĢāđāļāđāļāļēāļāļāļĒāļđāđ āļŠāļēāļĄāļēāļĢāļāđāļāđāļāļģāļŠāļąāđāļ env āļŦāļĢāļ·āļ export -p āļāļąāļāļāļĩāđ
$ env
ORBIT_SOCKETDIR=/tmp/orbit-student
SSH_AGENT_PID=1383
TERM=xterm
SHELL=/bin/bash
...
USER=student
PATH=/home/student/bin:/usr/lib/jvm/jdk/bin:/home/student/android/ant/bin:/home/student/android/sdk/tools:/home/student/android/sdk/platform-tools:/home/student/android/ndk:/home/student/bin:/home/student/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
my_project_codes=/home/student/embedded/sourcecode/
ANDROID_SDK_HOME=/home/student/android/sdk
PWD=/home/student
JAVA_HOME=/usr/lib/jvm/jdk
GDM_KEYBOARD_LAYOUT=us
LANG=en_US.utf8
GDM_LANG=en_US.utf8
MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path
GDMSESSION=gnome
SHLVL=1
HOME=/home/student
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
LOGNAME=student
DISPLAY=:0.0
AOSP_HOME=/home/student/aosp
LESSCLOSE=/usr/bin/lesspipe %s %s
COLORTERM=gnome-terminal
XAUTHORITY=/var/run/gdm/auth-for-student-9wtySF/database
_=/usr/bin/env
$ export -p
declare -x ANDROID_NDK_HOME="/home/student/android/ndk"
declare -x ANDROID_SDK_HOME="/home/student/android/sdk"
declare -x ANT_HOME="/home/student/android/ant"
...
declare -x USER="student"
declare -x USERNAME="student"
declare -x USE_CCACHE="0"
declare -x WINDOWID="14722574"
declare -x XAUTHORITY="/var/run/gdm/auth-for-student-9wtySF/database"
declare -x XDG_CONFIG_DIRS="/etc/xdg/xdg-gnome:/etc/xdg"
declare -x XDG_DATA_DIRS="/usr/share/gnome:/usr/local/share/:/usr/share/"
āļĒāļāļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāđāļāđāļāļģāļŠāļąāđāļ echo āđāļāļ·āđāļāđāļŠāļāļāļāđāļēāļ āļēāļĒāđāļāļāļąāļ§āđāļāļĢāļ°āļāļ
$ echo $SHELL
/bin/bash
$ echo -e " My Home directory is $HOME\n My username is $USER\n My current directory is $PWD"
My Home directory is /home/student
My username is student
My current directory is /home/student
$ echo $PPID
1927
$ ps -aux | grep 1927
student 1927 0.0 0.5 192052 11236 ? Sl 08:15 0:33 gnome-terminal
PS1='\w $ '
āđāļŠāļāļāđāļāđāļĢāļāļāļāļĢāļĩāđāļ shell prompt
PS1='\h $ '
āđāļŠāļāļāļāļ·āđāļ hostname āđāļ shell prompt
PS1='\u $ '
āđāļŠāļāļāļāļ·āđāļ user āđāļ shell prompt
PS1='\t $ '
āđāļŠāļāļāđāļ§āļĨāļē 24-hr time format āđāļ shell prompt
PS1='@ $ '
āđāļŠāļāļāđāļ§āļĨāļē 12-hr time format āđāļ shell prompt
PS1='! $ '
āđāļŠāļāļāļŦāļĄāļēāļĒāđāļĨāļ history āđāļ shell prompt
PS1='EE $ '
āđāļŠāļāļāļāļ·āđāļāļāļĩāđāļāļģāļŦāļāļ "EE" āđāļ shell prompt
āļĢāļēāļĒāļāļēāļĢāļāļĢāļ°āļ§āļąāļāļīāļāļēāļĢāđāļāđāļāļģāļŠāļąāđāļ (Command History)
āļāļģāļŠāļąāđāļ History
āđāļāđāļāļāļģāļŠāļąāđāļāļāļĩāđāļāļđāđāđāļāđāļŠāļēāļĄāļēāļĢāļāđāļāđāđāļŠāļāļāļāļģāļŠāļąāđāļāļĒāđāļāļāļŦāļĨāļąāļāļāļĩāđāđāļāļĒāđāļāđāđāļĢāļĩāļĒāļāđāļāđāļāļēāļ āļāļģāļāļ§āļāļāļģāļŠāļąāđāļāļĒāđāļāļāļŦāļĨāļąāļāļāļ°āļāļđāļāđāļāđāļāļāļąāļāļāļķāļāđāļ§āđāļĄāļēāļāļāđāļāļĒāđāļāđāđāļŦāļāļāļķāđāļāļāļĒāļđāđāļāļąāļāļāļēāļĢāļāļąāđāļāļāđāļēāļāļāļāļāļąāļ§āđāļāļĢāļ°āļāļāļāļ·āđāļāļ§āđāļē HISTSIZE āđāļāļĒāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāđāļāļāļēāļĢāđāļāđāļāļģāļŠāļąāđāļ history āļĄāļĩāļāļąāļāļāļĩāđ
history
āđāļŠāļāļāļĢāļēāļĒāļāļēāļĢāļāļģāļŠāļąāđāļāļĒāđāļāļāļŦāļĨāļąāļāļāļąāđāļāļŦāļĄāļ
history N
āđāļŠāļāļāļĢāļēāļĒāļāļēāļĢāļāļģāļŠāļąāđāļāļĒāđāļāļāļŦāļĨāļąāļāļāļģāļāļ§āļ N āļāļģāļŠāļąāđāļāļĨāđāļēāļŠāļļāļ
history -d N
āļĨāļāļĢāļēāļĒāļāļēāļĢāļāļģāļŠāļąāđāļāļĨāļģāļāļąāļāļāļĩāđ N
!!
āđāļĢāļĩāļĒāļāļāļģāļŠāļąāđāļāļĒāđāļāļāļŦāļĨāļąāļāļĨāđāļēāļŠāļļāļ
!N
āđāļĢāļĩāļĒāļāļāļģāļŠāļąāđāļāļĒāđāļāļāļŦāļĨāļąāļāļĨāļģāļāļąāļāļāļĩāđ N
!-N
āđāļĢāļĩāļĒāļāļāļģāļŠāļąāđāļāļĒāđāļāļāļŦāļĨāļąāļāļāļĨāļąāļāđāļāļāļĩāđ N āļāļąāļ§ (!-1 āļĄāļĩāļāđāļēāđāļāđāļēāļāļąāļ !!)
!#
āļāļģāļŠāļąāđāļāļāļąāļāļāļļāļāļąāļāļāļĩāđāļāļģāļĨāļąāļāđāļĢāļĩāļĒāļāļāļĒāļđāđ
!string
āļāļģāļŠāļąāđāļāļāļĩāđāļāļģāļŦāļāđāļēāļāđāļ§āļĒāļāļģāļ§āđāļē string
!?string?
āļāļģāļŠāļąāđāļāļāļĩāđāļĄāļĩāļāļģāļ§āđāļē string āļāļĢāļĢāļāļļāļāļĒāļđāđ
āļāļąāļ§āļāļĒāđāļēāļāļāļģāļŠāļąāđāļ
$ echo $$
3616
$ env -i bash -c 'echo $$'
3718
$ !!
env -i bash -c 'echo $$'
3719
$ !ec
echo $$
3616
$ !en:s/$$/$PPID/
env -i bash -c 'echo $PPID'
3616
$ history 6
361 ps -p $$ -o "pid ppid cmd"
362 echo $$
363 env -i bash -c 'echo $$'
364 echo $$
365 env -i bash -c 'echo $PPID'
366 history 6
$ history -d20
āļāļēāļĢāđāļāđāļāļđāđāļĄāļ·āļāļāļģāļŠāļąāđāļ (Man Page)
āđāļāļāļŠāļēāļĢāļāļēāļĢāđāļāđāļāļēāļāļāļģāļŠāļąāđāļāļāđāļēāļāđāđāļĄāļ·āđāļāđāļāđāļāļīāļāļāļąāđāļāđāļāļĢāđāļāļĢāļĄāļĨāļāđāļāļĢāļ°āļāļāļāļāļīāļāļąāļāļīāļāļēāļĢāļĨāļĩāļāļļāļāļāđ āđāļĢāļĩāļĒāļāļ§āđāļē âManual Pagesâ āđāļāļĒāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāļāļđāļāđāļēāļāļāļģāļŠāļąāđāļ man āļāļąāļāđāļŠāļāļāđāļāļĢāļđāļāļāđāļēāļāļĨāđāļēāļ

āļāļēāļāļĢāļđāļāļāđāļēāļāļāļāļāļ°āđāļŠāļāļāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļāļāļāļēāļĢāđāļāđāļāļģāļŠāļąāđāļ man āđāļāļ·āđāļāļāļĩāđāļāļ°āđāļĢāļĩāļĒāļāļāļđāđāļāļāļŠāļēāļĢāļāļēāļĢāđāļāđāļāļēāļāļāļāļāļāļģāļŠāļąāđāļāļŠāļģāļŦāļĢāļąāļāļāļđāđāđāļāđāļāļąāđāļ§āđāļ āļāļāļāļāļēāļāļāļąāđāļāļĒāļąāļāļŠāļēāļĄāļēāļĢāļāļāļđāđāļāļāļŠāļēāļĢāļāļēāļĢāđāļāđāļāļēāļāļāļ·āđāļāđāđāļāđāđāļāđ
User commands (env, ls, echo, mkdir, tty)
System calls āļŦāļĢāļ·āļ kernel functions (link, sethostname, mkdir)
Library routines (acosh, asctime, btree, locale, XML::Parser)
Device related information (isdn_audio, mouse, tty, zero)
File format descriptions (keymaps, motd, wvdial.conf)
Miscellaneous (arp, boot, regex, unix utf8)
System administration (debugfs, fdisk, fsck, mount, renice, rpm)
āļĄāļĩāļāļĒāļđāđ 2 āļāļģāļŠāļąāđāļāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļāļāļąāļāļāļģāļŠāļąāđāļ man āļāļ·āļāļāļģāļŠāļąāđāļ whatis āđāļĨāļ° āļāļģāļŠāļąāđāļ apropos āđāļāļĒāļāļģāļŠāļąāđāļ whatis āļāļ°āļāļģāļāļēāļĢāļāđāļāļŦāļē manual pages āļŠāļģāļŦāļĢāļąāļāļāļģāļŠāļąāđāļāļāļĩāđāļāđāļāļāļāļēāļĢāļāļĢāļēāļ āļŠāđāļ§āļāļāļģāļŠāļąāđāļ aporpos āļāļ°āļāđāļāļŦāļēāļāļģāļŠāļģāļāļąāļ (Keyword) āđāļ manual pages āļāļąāļāļāļąāļ§āļāļĒāđāļēāļāļāđāļēāļāļĨāđāļēāļ
$ whatis man
man(1) - format and display the on-line manual pages
man.conf(5) - configuration data for man
zshall(1) - the Z shell meta-man page
xml2man(1) - MPGL to mdoc (man page) translator
$ whatis mkdir
mkdir(1) - make directories
mkdir(2), mkdirat(2) - make a directory file
$ apropos mkdir
mkdir(1) - make directories
mkdir(2), mkdirat(2) - make a directory file
Last updated
Was this helpful?