這里介紹一些bash啟動(dòng)前、后的問題,以及一些使用bash需要注意的基本問題。
1、Bash的介紹
===========
Bash是一種Shell程序,它是一般的Linux系統(tǒng)中的默認(rèn)的Shell程序,一般情況下Bash指的是/bin/bash這個(gè)軟件。
一個(gè)Linux系統(tǒng)中有多少個(gè)可用的Shell程序,可以從/etc/shells文件中查出來。
當(dāng)前登錄用戶的默認(rèn)Shell是哪一個(gè),可以從/etc/passwd文件中與此用戶對(duì)應(yīng)的那一行最后一個(gè)字段看出來?;蛘咭部梢酝ㄟ^echo $SHELL來查看。
2、內(nèi)部命令與外部命令
====================
Bash中可用的命令分為兩類,分別是:內(nèi)部命令和外部命令。內(nèi)部命令是Bash的一部分,而外部命令都是一個(gè)一個(gè)獨(dú)立于Bash的軟件。
在bash的用戶提示符下,可以輸入內(nèi)部命令和外部命令,然后bash會(huì)分析命令,之后執(zhí)行命令。bash執(zhí)行內(nèi)部命令不會(huì)產(chǎn)生新的進(jìn)程,而在執(zhí)行外部命令的時(shí)候,bash會(huì)用fork函數(shù)生成一個(gè)新的進(jìn)程,然后用exec函數(shù)來加載這個(gè)外部命令的程序來執(zhí)行這個(gè)外部命令。
怎么來區(qū)分一個(gè)命令是內(nèi)部命令還是外部命令呢?用type命令來區(qū)分。type本身是一個(gè)內(nèi)部命令,type commandName可以知道commandName這條命令的是內(nèi)部命令還是外部命令。
3、環(huán)境變量與用戶自定義變量
=====================
環(huán)境變量是對(duì)所有的進(jìn)程(包括bash的進(jìn)程和非bash的進(jìn)程)都可見的變量,一般用大寫字母的組合作為變量名,所以也稱為全局變量。
名詞解析:臨時(shí)環(huán)境變量和永久環(huán)境變量。其實(shí)全局變量都是通過export導(dǎo)出的變量。
臨時(shí)全局變量是在bash的命令提示符下或者bash scripts下用export導(dǎo)出的變量,這些變量在機(jī)器重啟之后會(huì)消失,除非再次執(zhí)行export命令或者再次執(zhí)行相應(yīng)的scripts。
永久環(huán)境變量是寫在配置文件中的,這些配置文件在每次重啟機(jī)器甚至重開一個(gè)bash的時(shí)候都會(huì)被再執(zhí)行一次,所以這些文件中的全局變量一直存在,不會(huì)因?yàn)橹貑C(jī)器而消失,看上去好像是永久的,其實(shí)是每次都重新export了。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26