1. 程式人生 > >Linux學習筆記——bash命令及shell變量簡介

Linux學習筆記——bash命令及shell變量簡介

linux bash 簡介、bash 、shell

bash 及其特性

shell 外殼

GUI :Gnome KDE xface

CLI :shell csh ksh bash

程序,進程

進程:每個進程看來,當前主機上只存在內核和當前進程

進程是程序的副本,進程是程序執行實例

用戶的工作環境:

bash:

# root用戶

$ 普通用戶

shell ,子shell

bash :

1.命令歷史

2.管道,重定向

3.命令行編輯

4.命令別名

5.命令行展開

6.文件名通配

7.變量

8.編程

命令行使用技巧:

Ctrl + a 光標跳轉行首

Ctrl + e 光標跳轉行尾

Ctrl + u 刪除光標至行首的內容

Ctrl + k 刪除光標至行尾內容

Ctrl + l 實現清屏

命令歷史使用技巧:

!n 執行命令歷史中第N行命令

!-n 執行歷史命令中倒數第N行命令

!! 執行上一條命令

!CHARACTER 執行歷史命令中最近一次以CHARACTER開頭的命令

!$ 引用前一個命令的最後一個參數

ESC 松開按. 引用前一個命令的最後一個參數


tab按鍵功能:

命令補全 :搜索PATH環境變量所指定的每個路徑下以我們給出的字符串開頭的可執行文件

路徑補全 :搜索我們給我的起始路徑下的每個文件名,並試圖補全

命令別名:

#alias CMDALIAS=COMAND 命令重命名

在shell 中定義的別名僅在當前shell 生命周期中有效,別名的有效範圍當前shell進程

#unalias 取消命令重命名 ,#unalias COMAND

bash 支持的引號及作用:

`` 反引號, 命令替換

“” 雙引號,弱引用,可以完成變量替換

‘’ 單引號,強引用,不可完成變量替換

命令替換

把命令中某個子命令替換為命令執行結果的過程

#echo “The directory is $(pwd)”

#touch ./file-$(date +%F-%H-%M-%S).txt == #touch ./file-`date +%F-%H-%M-%S`.txt ,功能相同


命令歷史:

#history

[[email protected] skel]# help history
history: history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 history -ps 參數 [參數...]
    顯示或操縱歷史列表。
    
    帶行號顯示歷史列表,將每個被修改的條目加上前綴 `*‘。
    參數 N 會僅列出最後的 N 個條目。
    
    選項:
      -c        刪除所有條目從而清空歷史列表。
      -d        偏移量 從指定位置刪除歷史列表。
    
      -a        將當前繪畫的歷史行追加到歷史文件中
      -n        從歷史文件中讀取所有未被讀取的行
      -r        讀取歷史文件並將內容追加到歷史列表中
      -w        將當前歷史寫入到歷史文件中 並追加到歷史列表中

環境變量 :

PATH 命令路徑

HISTSIZE 命令歷史大小

示例:# echo $HISTSIZE ,顯示緩存命令的大小

#echo $shell ,顯示用戶Shell 環境

文件名通配 ,globbing

* 匹配任意長度的任意字符,包含空#ls a*

? 匹配任意單個字符 ,#ls ?y*

[ ] 匹配指定範圍內的任意單個字符,如[a-zA-Z][0-9] [0-9a-zA-Z]

[[:space:]] 所有的空白字符

[[:punct:]] 所有標點符號

[[:lower:]] 所有小寫字符

[[:upper:]] 所有大寫字符

[[:alpha:]] 所有大小寫字母

[[:digit:]] 所有數字

[[:alnum:]] 數字和大小寫字

[^] 匹配指定範圍之外的任意單個字符

例#ls [[:alpha:]]*[[:space:]]*[[:alpha:]] ,顯示以字母開頭並以字母結束,且中間包含空格的文件

站在用戶登錄的角度來說,shell 的類型

登錄式shell

正常通過某終端登錄

su - USERNAME

su -l USERNAME

非登錄式shell

su USERNAME

圖形終端下打開的命令窗口

自動執行的shell 腳本

bash 的配置文件

全局配置

/etc/profile , /etc/profile.d/*.sh , /etc/bashrc

個人配置

~/.bash_profile , ~/.bashrc

profile類的文件

設定全局環境變量

登錄運行命令或腳本

bash 類的文件

設定本地變量

定義命令別名


登錄式shell 如何讀取配置文件

/etc/profile ---> /etc/profile.d/*.sh ---> ~/.bash_profile -->~/.bashrc -->/etc/bashrc

非登錄式shell

~/.bashrc -->/etc/bashrc-->/etc/profile.d/*.sh


本文出自 “Wish_亮” 博客,請務必保留此出處http://itwish.blog.51cto.com/11439802/1963152

Linux學習筆記——bash命令及shell變量簡介