- shell 環境
儲存2組資料:
- shell變數
- 環境變數
XDG_VTNR=7
SSH_AGENT_PID=1112
XDG_SESSION_ID=1
CLUTTER_IM_MODULE=xim
GPG_AGENT_INFO=/run/user/1001/keyring/gpg:0:1
SHELL=/bin/bash
TERM=xterm
XDG_MENU_PREFIX=gnome-
VTE_VERSION=3801
GJS_DEBUG_OUTPUT=stderr
WINDOWID=41943046
GJS_DEBUG_TOPICS=JS ERROR;JS LOG
USER=mate
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31ㄆ:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
SSH_AUTH_SOCK=/run/user/1001/keyring/ssh
SESSION_MANAGER=local/404040406:@/tmp/.ICE-unix/1018,unix/404040406:/tmp/.ICE-unix/1018
USERNAME=mate
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
DESKTOP_SESSION=default
QT_IM_MODULE=xim
PWD=/home/mate
XMODIFIERS=@im=SCIM
LANG=zh_TW.UTF-8
GDM_LANG=zh_TW.UTF-8
GDMSESSION=default
SHLVL=1
XDG_SEAT=seat0
HOME=/home/mate
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
XDG_SESSION_DESKTOP=default
LOGNAME=mate
XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/
QT4_IM_MODULE=xim
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-YqJUodENVS,guid=6f8598ed809df257406df415591e378b
TEXTDOMAIN=im-config
WINDOWPATH=7
XDG_RUNTIME_DIR=/run/user/1001
DISPLAY=:0
XDG_CURRENT_DESKTOP=GNOME
GTK_IM_MODULE=scim
TEXTDOMAINDIR=/usr/share/locale/
XAUTHORITY=/var/run/gdm3/auth-for-mate-M3U2x8/database
_=/usr/bin/printenv
~
~
~
~
~
~
(END)
常用的環境變數:
項目
|
說明
|
DISPLAY
|
運行圖形介面環境中的顯示器的名字
(通常是”:0”,代表由X 產生的第一個顯示器)
|
EDITOR
|
文字編輯器的名字
|
SHELL
|
shell 程式的名字
|
HOME
|
使用者家目錄
|
LANG
|
定義字元集、語言編碼方式
|
OLD PWD
|
先前的工作目錄
|
PWD
|
當前工作目錄
|
PAGER
|
頁輸出程式的名字 (通常設置為/usr/bin/less)
|
PATH
|
由冒號分開的目錄清單。當輸入可執行程式名後,會搜索這個目錄清單
|
PS1
|
Prompt String 1. 定義shell 提示符號的內容
|
TERM
|
終端類型名。設置終端模擬器所用的協定。
|
TZ
|
指定所在的時區。大多按照協調時間時(UTC)來維護電腦內部的時鐘,然後應用一個由這個變量指定的偏差來顯示本地時間。
|
USER
|
用戶名
|
mate
建立shell 環境:開機檔案的配置腳本,定義了默認的可供所有用戶共用的shell 環境
檔案
|
内容
|
/etc/profile
|
應用於所有使用者的全域配置腳本
|
˜/.bash
profile
|
用戶私人的開機檔案。可用來擴展或重寫全域配置腳本中的設置
|
˜/.bash
login
|
若沒有找到˜/.bash profile,bash
會嘗試讀取這個腳本
|
˜/.profile
|
若˜/.bash profile 或˜/.bash
login 都沒有找到,bash 會試圖讀取這個檔
|
PATH 變數經常在/etc/profile 開機檔案中設置。
在終端機打下的所有命令,都是一個個小程式,放在某一路徑。設定路徑,按照順序一個個讀取。路線通常不會只有一個,而是一堆,但太多會使速度變慢。複合命令 if compound command:若檔案存在,就去讀取,不存在則不執行
以「#」 開頭的行:注釋(方便人們閱讀) → shell 不會讀取它們
文字編輯器分為兩種基本類型:
- 圖形化的編輯器
- 文字的編輯器:GNOME預設gedit的編輯器
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH
if [ "$PS1" ]; then
if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
~
"/etc/profile" [readonly] 34 lines, 761 characters
mate@404040406:/root$ su
密碼:
root@404040406:~# cp /etc/profile /etc/profile.bak
root@404040406:~# nano .profile
GNU nano 2.2.6 檔案: .profile
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
mesg n
umask 0002
export HISTCONTROL=ignoredups
export HISTSIZE=1000
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
[ 已讀取 9 列 ]
^G 求助 ^O 寫入(存檔) ^R 讀檔 ^Y 上頁 ^K 剪下文字 ^C 游標位置
^X 離開 ^J 對齊 ^W 搜尋 ^V 下頁 ^U UnCut Text ^T 拼字檢查
root@404040406:/home/mate# ll
總計 88
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2015-10
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2015-11
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2015-12
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2015-9
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2016-10
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2016-11
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2016-12
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2016-9
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2017-10
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2017-11
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2017-12
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 2017-9
-rw-r--r-- 1 mate mate 4 5月 19 08:43 data.txt
-rw-rw-rw- 1 mate mate 0 5月 12 09:17 foo.txt
drwxr-xr-x 2 mate mate 4096 5月 5 08:38 students
drwxr-xr-x 2 mate mate 4096 5月 19 08:55 下載
drwxr-xr-x 2 mate mate 4096 5月 5 08:17 公共
drwxr-xr-x 2 mate mate 4096 5月 5 08:17 圖片
drwxr-xr-x 2 mate mate 4096 5月 5 08:17 影片
drwxr-xr-x 2 mate mate 4096 5月 5 08:17 文件
drwxr-xr-x 2 mate mate 4096 5月 12 09:58 桌面
drwxr-xr-x 2 mate mate 4096 5月 5 08:17 模板
drwxr-xr-x 2 mate mate 4096 5月 5 08:17 音樂
vi優點:
- 永遠皆可使用
- 速度快
結構小而輕
原意:視覺(反話)
mate@404040406:~$ vi // 透過 alias 指向 vim
~
~
~ VIM - Vi IMproved
~
~ version 7.4.576
~ by Bram Moolenaar et al.
~ Modified by pkg-vim-maintainers@lists.alioth.debian.org
~ Vim is open source and freely distributable
~
~ Become a registered Vim user!
~ type :help register<Enter> for information
~
~ type :q<Enter> to exit
~ type :help<Enter> or <F1> for on-line help
~ type :help version7<Enter> for version info
~
~ Running in Vi compatible mode
~ type :set nocp<Enter> for Vim defaults
~ type :help cp-default<Enter> for info on this
~
~
~
註:毛毛蟲表示無資料
移動游標:(當年設計vi時,尚無上下左右鍵)
按鍵
|
移動游標
|
l/右箭頭
|
向右移動一個字元
|
h/左箭頭
|
向左移動一個字元
|
j/下箭頭
|
向下移動一行
|
k/上箭頭
|
向上移動一行
|
0
|
移動到當前行的行首
|
ˆ
|
移動到當前行的第一個非空字元
|
$
|
移動到當前行的末尾
|
w
|
移動到下一個單詞或標點符號的開頭
|
W
|
移動到下一個單詞的開頭,忽略標點符號
|
b
|
移動到上一個單詞或標點符號的開頭
|
B
|
移動到上一個單詞的開頭,忽略標點符號
|
[Ctrl]+f/Page
Down
|
向下翻一頁
|
[Ctrl]+b/Page
Up
|
向上翻一頁
|
numberG
|
移動到第number 行
|
G
|
移動到文件末尾
|
刪除文字:
命令
|
刪除的文字
|
x
|
當前字元
|
3x
|
當前字元及其後的兩個字元
|
dd
|
當前行
|
5dd
|
當前行及隨後的四行文本
|
dW
|
從游標位置開始到下一個單詞的開頭
|
d$
|
從游標位置開始到當前行的行尾
|
d0
|
從游標位置開始到當前行的行首
|
dˆ
|
從游標位置開始到文本行的第一個非空字元
|
dG
|
從當前行到檔案的末尾
ð 最後空一行
|
d20G
|
從當前行到檔案的第20 行
|
複製文字:
命令
|
複製的內容
|
yy
|
當前行
|
5yy
|
當前行及隨後的四行文字
|
yW
|
從當前游標位置到下一個單詞的開頭
|
y$
|
從當前游標位置到當前行的末尾
|
y0
|
從當前游標位置到行首
|
yˆ
|
從當前游標位置到文本行的第一個非空字元
|
yG
|
從當前行到文件末尾
|
y20G
|
從當前行到文件的第20 行
|
小p →
把文字黏貼到游標位置後
大P
→
把文字黏貼到游標之前
大J → 連接後一行
u
→ 上一步(undo)
註:若無反應,esc按兩下
註:vim 是“Vi IMproved”的簡寫,是類Unix 作業系統的傳統編輯器
mate@404040406:~$ alias // 查看共有多少別名
alias ls='ls --color=auto'
沒有留言:
張貼留言