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 19:54

相關推薦

  • Linux中的文本查看和處理練習題

    linux中的文本查看和處理練習題
    linux用戶和組管理類命令的使用方法及練習

    Linux筆記 2018-07-08
  • 邏輯卷

    邏輯卷如果分區分區類型id8epvs查看現有的物理卷 或者pvdisplay(詳細)pvcreate /dev/sdd1 /dev/sdb 把硬盤和分區編程物理卷vgs查看現有的卷組 或者vgdisplay (詳細)vgcreate -s 16M vg0 /dev/sd{d1,b} 創建vg0卷組把sdd1和sdb加入卷組指定PE為16Mlvcreate -…

    Linux筆記 2018-04-30
  • shell打印選擇菜單shell

    每天一練小腳本

    Linux筆記 2018-05-19
  • 第二周博客作業-N31-Linux文件、目錄及其相關命令

    本篇文章主要圍繞Linux的文件、目錄及其相關的操作命令,如:mkdir、rmdir、tree、cat、tail、more、less、mv、cp、rm等命令

    2018-07-27
  • 加密和安全

    常見的加密算法和安全協議 一、對稱加密:加密和解密使用同一個密鑰,依賴于算法和密鑰,其安全性依賴于密鑰而非算法 常見的算法:DES ? 特性: ? 加密、解密使用同一個密鑰 ? 將明文分隔成固定的大小塊逐個進行加密 ? 缺點: ? 密鑰過多、密鑰分發 二、非對稱加密:采用的是公鑰加密方法,密鑰是成對出現的,公鑰是從私鑰中提取出來的 ? 公鑰:公開給所有人;p…

    Linux筆記 2018-05-10
  • 第三周作業

    1 列出當前系統上所有已經登陸的用戶的用戶名,注意:同一個用戶名登陸多次,則只顯示一次。
    2 取出最后登陸到當前系統的用戶的相關信息。
    3 取出當前系統上被用戶當作其默認shell的最多的那個shell.
    4 將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
    5 取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
    6 列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字裝換為大寫后保存至/tmp/etc.conf文件中。
    7 顯示/var目錄下一級子目錄或文件的總個數。
    8 取出/etc/group文件中第三個字符段數值最小的10個組的名字。
    9 將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
    10. 請總結描述用戶和組管理類命令的使用方法并完成以下練習:
    (1)創建組distro, 其GID為2016
    (2)創建用戶mandriva, 其ID號為1005,基本組為distro
    (3)創建用戶mageia, 其ID號為1100,家目錄為/home/linux
    (4)給用戶mageia添加密碼,密碼為mageedu
    (5)刪除mandriva, 但保留其家目錄
    (6)創建用戶slackware, 其ID號為2002, 基本組為distro, 附加組為peguin
    (7)修改slackware的默認shell為/bin/tcsh
    (8)為用戶slackware的新增附加組admins

    2018-06-05
欧美性久久久久