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

āļ‚āļšāļ§āļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ 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"

asciicast āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡ 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 āđāļĨāđ‰āļ§āļĒāļąāļ‡āļĄāļĩāļ­āļąāļāļ‚āļĢāļ°āđƒāļ™āļāļēāļĢāļ„āļ§āļšāļ„āļļāļĄāļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ”āļąāļ‡āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđƒāļ™āļ•āļēāļĢāļēāļ‡āļ‚āđ‰āļēāļ‡āļĨāđˆāļēāļ‡āļ™āļĩāđ‰

āļ•āļēāļĢāļēāļ‡āđāļŠāļ”āļ‡āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ­āļąāļāļ‚āļĢāļ°āļžāļīāđ€āļĻāļĐ

Escape sequence
āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”

\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

āļ•āļēāļĢāļēāļ‡āļ›āļĢāļąāļšāđāļ•āđˆāļ‡āļāļēāļĢāđāļŠāļ”āļ‡ shell prompt

āļ„āļģāļŠāļąāđˆāļ‡
āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ

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

āđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢāļ„āļģāļŠāļąāđˆāļ‡āļĒāđ‰āļ­āļ™āļŦāļĨāļąāļ‡āļ—āļąāđ‰āļ‡āļŦāļĄāļ”

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

āļˆāļēāļāļĢāļđāļ›āļ‚āđ‰āļēāļ‡āļšāļ™āļˆāļ°āđāļŠāļ”āļ‡āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ‚āļ­āļ‡āļāļēāļĢāđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡ 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?