前言
在bash程序中,讀取到bash程序記憶體中的資料,在bash程序終止時,程序中的資料會被作業系統**,變數也是定義在當前shell程序記憶體空間的資料。在shell終止時,變數也會失效
作用選項:定義命令的工作行為
配置檔案也能定義工作行為,主要儲存命令的諸多選項,定義長期有效的行為
功能讓使用者能更好的使用bash
配置檔案的分類
對所有使用者生效的配置:
/etc/profile,/etc/profile.d/
/etc/bashrc
對當前使用者有效
~/.bashrc
~/.bash_profile
profile類,定義環境變數和指令碼
bashrc類:定義本地變數和別名
登陸式切換:會讀取目標使用者的配置檔案,初始化環境
1)su -l user
2)輸入密碼登陸
1
2
3
4
5
6
# echo $path
/usr/local/apache/bin
:
/usr/local/nginx/sbin
:
/usr/local/sbin
:
/usr/local/bin
:
/usr/sbin
:
/usr/bin
:
/root/bin
# su -l testbash
-sh-4.2$
echo
$path
/usr/local/nginx/sbin
:
/usr/local/bin
:
/bin
:
/usr/bin
:
/usr/local/sbin
:
/usr/sbin
-sh-4.2$
讀取配置檔案的順序: profile --> profile.d --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
1
2
3
4
5
6
7
8
9
10
$ nano
/etc/profile
.d
/nginx
.sh
##在profile.d中定義nginx的二進位制文字的路徑在$path之前
export
path=
/usr/local/nginx/sbin
:$path
$ vim ~/.bash_profile
##在~/.bah_profile中¥path之前定義mysql的二進位制檔案的路徑
path=
/usr/local/mysql/bin
:$path:$home/.
local
/bin
:$home
/bin
export
path
如果先讀到的,顯示在後,讀取配置檔案的順序在前
重啟
bash
程序
$
echo
$path
/usr/local/mysql/bin
:usr
/local/nginx/sbin
:
非登陸式切換:不會讀取目標使用者的配置檔案
2)無需輸入密碼登陸:su user, 圖形介面下的終端
2)指令碼執行時,在當前shell的子shell中執行
1
2
3
4
5
# echo $path
/usr/local/apache/bin
:
/usr/local/nginx/sbin
:
/usr/local/sbin
:
/usr/local/bin
:
/usr/sbin
:
/usr/bin
:
/root/bin
# su testbash
$
echo
$path
/usr/local/apache/bin
:
/usr/local/nginx/sbin
:
/usr/local/sbin
:
/usr/local/bin
:
/usr/sbin
:
/usr/bin
:
/root/bin
讀取配置檔案的順序:~/.bashrc --> /etc/bashrc --> profile.d
******驗證指令碼執行為當前shell的子shell程序*********
環境變數對當前shell的子shell程序生效
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@izpo45bh60h6bsz ~]
# name="obama jerry" ##有空格的字元引用,加引號,否則會報錯
[root@izpo45bh60h6bsz ~]
# echo $name
obama jerry
[root@izpo45bh60h6bsz ~]
# declare -x name ##申明為環境變數
[root@izpo45bh60h6bsz ~]
# nano tr_d_dc_s_i.sh
#!/bin/bash
echo
$name
[root@izpo45bh60h6bsz ~]
# chmod +x tr_d_dc_s_i.sh ##給予指令碼執行許可權
[root@izpo45bh60h6bsz ~]
# ls -l tr_d_dc_s_i.sh
-rwxr-xr-x 1 root root 23 jun 10 14:48 tr_d_dc_s_i.sh
[root@izpo45bh60h6bsz ~]
# ./tr_d_dc_s_i.sh ##變數生效
obama jerry
[root@izpo45bh60h6bsz ~]
# unset name ##撤消變數
[root@izpo45bh60h6bsz ~]
# ./tr_d_dc_s_i.sh ##變數為空
[root@izpo45bh60h6bsz ~]
#
Linux之bash基礎特性一
命令補全 tab shell程式在接收到使用者執行命令的請求,分析完成後,最左側的字串會被當做命令 命令查詢機制 查詢內部命令 根據path環境變數中設定的目錄,自左而右逐個搜尋目錄下的檔名 給定的打頭字元如果能唯一標識某命令檔案程式,則直接補全 給定的打頭字元如果不能唯一標識某命令檔案程式,在一次...
Linux之bash基礎特性二
目錄管理類命令 cd,pwd,ls mkdir,rmdir mkdir options p 存在於不報錯,且可自動建立所需的各目錄 v 顯示詳細資訊 m mooe 建立目錄時直接指定許可權 tree d 只顯示目錄 l level 指定顯示的層級數目 p pattern 只顯示由指定pattern匹...
Linux之bash基礎特性三
命令別名 命令 alias 定義別名 1 alias 不加引數直接使用 顯示當前shell程序所有可使用的命令別名 2 alias name values 定義命令別名 注意 在命令列中定義的別名,僅對當前shell程序有效 如果想永久有效,則要定義在配置檔案中 配置檔案的修改生效範圍 僅對當前使用...