Linux之Bash基礎特性配置檔案 4

2021-09-21 02:48:28 字數 4802 閱讀 9635

前言

在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之前

exportpath=/usr/local/nginx/sbin:$path

$ vim ~/.bash_profile##在~/.bah_profile中¥path之前定義mysql的二進位制檔案的路徑

path=/usr/local/mysql/bin:$path:$home/.local/bin:$home/bin

exportpath

如果先讀到的,顯示在後,讀取配置檔案的順序在前

重啟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程序有效 如果想永久有效,則要定義在配置檔案中 配置檔案的修改生效範圍 僅對當前使用...