2017年5月20日 星期六

5/19linux心得

5/19

  • shell 環境
用組態檔設定環境。(組態檔案放於bash中)

儲存2組資料:
  1. shell變數
  2. 環境變數

mate@404040406:~$ printenv | less // 查看環境變數
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@404040406:~$ printenv USER // 指定USER的變數
mate


建立shell 環境:開機檔案的配置腳本,定義了默認的可供所有用戶共用的shell 環境
檔案
内容
/etc/profile
應用於所有使用者的全域配置腳本
˜/.bash profile
用戶私人的開機檔案。可用來擴展或重寫全域配置腳本中的設置
˜/.bash login
若沒有找到˜/.bash profilebash 會嘗試讀取這個腳本
˜/.profile
˜/.bash profile ˜/.bash login 都沒有找到,bash 會試圖讀取這個檔

PATH 變數經常在/etc/profile 開機檔案中設置。
在終端機打下的所有命令,都是一個個小程式,放在某一路徑。設定路徑,按照順序一個個讀取。路線通常不會只有一個,而是一堆,但太多會使速度變慢。
複合命令 if compound command:若檔案存在,就去讀取,不存在則不執行
以「#」 開頭的行:注釋(方便人們閱讀) → shell 不會讀取它們


文字編輯器分為兩種基本類型:
  1. 圖形化的編輯器
  2. 文字的編輯器:GNOME預設gedit的編輯器

mate@404040406:/$ vi /etc/profile
# /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優點:
  1. 永遠皆可使用
  2. 速度快
    結構小而輕
    原意:視覺(反話)


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]+fPage Down
向下翻一頁
[Ctrl]+bPage Up
向上翻一頁
numberG
移動到第number
G
移動到文件末尾
刪除文字:
命令
刪除的文字
x
當前字元
3x
當前字元及其後的兩個字元
dd
當前行
5dd
當前行及隨後的四行文本
dW
從游標位置開始到下一個單詞的開頭
d$
從游標位置開始到當前行的行尾
d0
從游標位置開始到當前行的行首
從游標位置開始到文本行的第一個非空字元
dG
從當前行到檔案的末尾 ð 最後空一行
d20G
從當前行到檔案的第20
複製文字:
命令
複製的內容
yy
當前行
5yy
當前行及隨後的四行文字
yW
從當前游標位置到下一個單詞的開頭
y$
從當前游標位置到當前行的末尾
y0
從當前游標位置到行首
從當前游標位置到文本行的第一個非空字元
yG
從當前行到文件末尾
y20G
從當前行到文件的第20
p 把文字黏貼到游標位置後
P 把文字黏貼到游標之前
J 連接後一行
u 上一步(undo)




註:若無反應,esc按兩下

註:vim 是“Vi IMproved”的簡寫,是類Unix 作業系統的傳統編輯器

mate@404040406:~$ alias // 查看共有多少別名
alias ls='ls --color=auto'

沒有留言:

張貼留言