shell編程基礎二

profile bashrc 混合命令行展開

1、bash如何展開命令行

 把命令行分成單個命令詞
 展開別名
 展開大括號的聲明({})
 展開波浪符聲明(~)
 命令替換$() 和 ``)
 再次把命令行分成命令詞
 展開文件通配(*、?、[abc]等等)
 準備I/0重導向(<、>)
 運行命令

由上到下順序進行命令行展開

2、防止命令行擴展

 反斜線(\)會使隨后的字符按原意解釋
 $ echo Your cost: \$5.00
 Your cost: $5.00
 加引號來防止擴展
 ? 單引號(’)防止所有擴展
 ? 雙引號(”)也防止所有擴展,但是以下情況例外:
 $(美元符號) - 變量擴展
 `(反引號) - 命令替換
 \(反斜線) - 禁止單個字符擴展
 !(嘆號) - 歷史命令替換

3、bash的配置文件:

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

個人配置:

~/.bash_profile
 ~/.bashrc

4、shell登錄的兩種方式

交互式登錄

(1)直接通過終端輸入賬號密碼登錄
(2)使用“su - UserName” 切換的用戶
執行順序:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非交互式登錄

(1)su UserName
(2)圖形界面下打開的終端
(3)執行腳本
(4)任何其它的bash實例
 執行順序: ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

Profile類

profile類:為交互式登錄的shell提供配置
全局:/etc/profile, /etc/profile.d/*.sh
個人:~/.bash_profile
功用:

(1)用于定義環境變量
(2)運行命令或腳本

bashrc類:為非交互式和交互式登錄的shell提供配置
全局:/etc/bashrc
個人:~/.bashrc
功用:

 (1) 定義命令別名和函數
 (2) 定義本地變量

5、編輯配置文件立即生效

修改profile和bashrc文件后需生效 ,兩種方法:

1 重新啟動shell進程
2 .或source

例:
. ~/.bashrc
Bash 退出任務

保存在~/.bash_logout文件中(用戶)
在退出登錄shell時運行
用于
? 創建自動備份
? 清除臨時文件

6、$-變量

 h:hashall,打開這個選項后,Shell 會將命令所在的路徑hash下來,避免每次都要查詢。通過set +h將h選項關閉
 i:interactive-comments,包含這個選項說明當前的 shell 是一個交互式的 shell。所謂的交互式shell,在腳本中,i選項是關閉的。
 m:monitor,打開監控模式,就可以通過Job control來控制進程的停止、繼續,后臺或者前臺執行等。
 B:braceexpand,大括號擴展
 H:history,H選項打開,可以展開歷史列表中的命令,可以通過!感嘆號來完成,例如“!!”返回上最近的一個歷史命令,“!n”返回第 n 個歷史命令

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95694

(0)
parrotparrot
上一篇 2018-04-11 14:05
下一篇 2018-04-11

相關推薦

  • MYSQL軟件安裝

    二進制包安裝,yum源多實例安裝

    Linux筆記 2018-06-10
  • linux通配符和正則表達式

    通配符、正則表達式

    2018-04-17
  • LVM創建級管理

    linux LVM 存儲 磁盤

    Linux筆記 2018-05-13
  • shell腳本:判斷,循環及數組切片

    條件判斷:case語句case 變量引用 inPAT1);;PAT2);;…*)默認分支;;esaccase支持glob風格的通配符:*: 任意長度任意字符?: 任意單個字符[]:指定范圍內的任意單個字符a|b: a或babc|efg : abc或efg 循環:while 的特殊用法:while read LINE;dofile=/path/to…

    Linux筆記 2018-05-15
  • N31第二周作業

    本周(6.25–7.1)第2周 1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 目錄管理類命令:cd pwd ls mkdir rmdir tree cd:change directory cd [/PATH/TO/SOMEDIR] cd:切換回家目錄 注意:bash中,~表示家目錄 cd~:切換回自己的家目錄 cd…

    Linux筆記 2018-07-02
  • 總結_系統初始設置

    啟動 自動聯網 gedit /etc/sysconfig/network-scripts/ifcfg-ens33 /*圖形界面 gedit*/ ONBOOT=yes 自動登錄 nano /etc/gdm/custom.conf /*字符界面 nano*/ [daemon] AutomaticLoginEnable=Ture AutomaticLogin=XX…

    Linux筆記 2018-03-30
欧美性久久久久