- 命令怎么用(三種方式)
shutdown --help
shutdown --?
man shutdown (man 就是manual 手冊, 指南)
- 服務 service
怎么知道服務的名字呢?用這個命令chkconfig:
chkconfig --list 會列出所有的服務項
啟動服務,例如啟動Mysql的服務
service mysql start 不是所有的命令都有這個d這個字母
service iptables stop 關掉防火牆
service vsftpd start 啟動vsFTP服務器
service vsftpd stop 服務停止
service vsftpd restart 重新啟動
- 開機自啟動
你不用再手動的再去啟動Mysql,vsftp,apache等等
用chkconfig這個命令,check configure 檢查配置
chkconfig --list | more
chkconfig --list | grep mysql
chkconfig --list | grep vsftpd
chkconfig mysql on 這幾個3 4 5級別都啟動
chkconfig --level 3 mysql on 只是在3這個級別啟動
chkconfig mysql off
Mysql數據庫的服務--------------mysql
vsFTP服務器的服務------------vsftpd
防火牆的服務------------iptables
ssh的服務------------sshd
http------------------httpd
- 修改系統默認的啟動級別
修改那一個配置文件時,先備份
修改配置文件 /etc/inittab,將id:5:initdefault中的數字5改為3
3 純命令行界面,有網絡共享
5 圖形界面
下一回系統啟動的就不進入那個圖形界面了
- 查看硬件信息
# uname -a # 查看內核/操作系統/CPU信息
# head -n 1 /etc/issue # 查看操作系統版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看計算機名
# lspci -tv # 列出所有PCI設備
# lsusb -tv # 列出所有USB設備
# lsmod # 列出加載的內核模塊
# env # 查看環境變量資源
# free -m # 查看內存使用量和交換區使用量
# df -h # 查看各分區使用情況
# du -sh # 查看指定目錄的大小
# grep MemTotal /proc/meminfo # 查看內存總量
# grep MemFree /proc/meminfo # 查看空閑內存量
# uptime # 查看系統運行時間、用戶數、負載
# cat /proc/loadavg # 查看系統負載磁盤和分區
# mount | column -t # 查看掛接的分區狀態
# fdisk -l # 查看所有分區
# swapon -s # 查看所有交換分區
# hdparm -i /dev/hda # 查看磁盤參數(僅適用於IDE設備)
# dmesg | grep IDE # 查看啟動時IDE設備檢測狀況網絡
# ifconfig # 查看所有網絡接口的屬性
# iptables -L # 查看防火牆設置
# route -n # 查看路由表
# netstat -lntp # 查看所有監聽端口
# netstat -antp # 查看所有已經建立的連接
# netstat -s # 查看網絡統計信息進程
# ps -ef # 查看所有進程
# top # 實時顯示進程狀態用戶
# w # 查看活動用戶
# id # 查看指定用戶信息
# last # 查看用戶登錄日志
# cut -d: -f1 /etc/passwd # 查看系統所有用戶
# cut -d: -f1 /etc/group # 查看系統所有組
# crontab -l # 查看當前用戶的計划任務服務
# chkconfig –list # 列出所有系統服務
# chkconfig –list | grep on # 列出所有啟動的系統服務程序
# rpm -qa # 查看所有安裝的軟件包
cat /proc/cpuinfo :查看CPU相關參數
cat /proc/partitions :查看硬盤和分區
cat /proc/meminfo :查看內存信息
cat /proc/version :查看版本,類似uname -r
cat /proc/ioports :查看設備I/O端口
cat /proc/interrupts :查看中斷
cat /proc/pci :查看pci設備的信息
cat /proc/swaps :查看所有swap分區的信息
- 查看系統日志
/var/log
/var/log/dmesg /核心啟動日志
/var/log/messages /系統報錯日志
/var/log/maillog /郵件系統日志
/var/log/xferlog /FTP服務用日志
/var/log/secure /安全信息 系統登陸與網絡連接的信息
/var/log/wtwp /登錄記錄
# tail -f /var/log/messages /查看最近發生的信息.
- 系統開關機
切換虛擬工作台:
Alt鍵和一個功能鍵來實現,通常使用F1-F6 。
如用戶登錄后,按一下“Alt+F2”鍵,用戶就可以看到上面出現的“login:”提示符,說明用戶看到了第二個虛擬控制台。只需按“Alt+ F1”鍵,就可以回到第一個虛擬控制台。
一個新安裝的Linux系統允許用戶使用“Alt+F1”到“Alt+F6”鍵來訪問前六個虛擬控制台。
虛擬控制台最有用的是:當一個程序出錯造成系統死鎖時,可以切換到其它虛擬控制台工作,關閉這個程序。
關閉計算機
shutdown -h -t 30 30秒后安全地關機斷電
shutdown -c 取消關機命令執行
重啟計算機reboot
退出命令行 exit
- 切換運行級別
運行級就是操作系統當前正在運行的功能級別。
這個級別從1 到6 ,具有不同的功能。這些級別在/etc/inittab 文件里指定。這個文件是init 程序尋找的主要文件,最先運行的服務是那些放在/etc/rc.d 目錄下的文件。
大多數的linux 發行版本中,啟動腳本位於 /etc/rc.d/init.d。這些腳本被ln 命令來連接到 /etc/rc.d/rcn.d 目錄。(這里的n 就是運行級0-6)例如/etc/rc.d/rc2.d 下面的S10network 就是連接到/etc/rc.d/init.d下的network 腳本的。
文件開頭的S 代表start 就是啟動服務的意思,后面的數字10 就是啟動的順序。例如,在同一個目錄下,你還可以看到 S80postfix 這個文件,80 就是順序在 10 以后,因為沒有啟動網絡的情況下,啟動postfix是沒有任何作用的。另外,在/etc/rc.d/rc2.d 還可以看到那些K 開頭的文件,例如/etc/rc.d/rc2.d/K45named,K 代表 kill ,表示停止服務的意思。
標准的linux運行級為3 或者5 ,如果是3 的話,系統就在多用戶狀態。如果是5的話,則是運行着X Window。
不同的運行級定義如下:
(可以參考Red Hat linux 里面的/etc/inittab)
# 0 - 停機
# 1 - 單用戶模式
# 2 - 多用戶,但是沒有 NFS
# 3 - 完全多用戶模式
# 4 - 沒有用到
# 5 - X11
# 6 - 重新啟動 (千萬不要把initdefault 設置為6 )
對各個運行級的詳細解釋:
0 為停機,機器關閉。
1 為單用戶模式。
2 為多用戶模式,但是沒有NFS 支持。
3 為完整的多用戶模式,是標准的運行級。
4 一般不用,在一些特殊情況下可以用它來做一些事情。
5 就是 X11 ,進到 X Window 系統了。
6 為重啟,運行 init 6 機器就會重啟。
- 軟件包管理
安裝 RPM 包
# rpm -ivh package.rpm
升級 RPM 包
# rpm -Uvh package.rpm
卸載 RPM 包
# rpm -ev package
查詢 RPM 包中包含的文件列表
# rpm -qlp package
查詢 RPM 包中包含的文件列表
# rpm -qlp package
查詢 RPM 包中包含的內容信息
# rpm -qip package
查詢系統中所有已安裝 RPM 包
# rpm -qa
- 用戶管理
who:查詢當前在線的用戶
groups:查詢用戶所屬的組
id:顯示當前用戶信息
finger:查詢用戶信息
添加新的用戶 useradd username
更改用戶密碼 passwd username
改變用戶home目錄 usermod -d /home/username username
usermod -e "2009-01-01" username 給用戶設置密碼過期時間
usermod -G root(組) username (用戶) 將一個用戶添加到一個組里
usermod -g root username 更改用戶的gid
usermod -s /bin/csh username 更改用戶的默認shell
usermod -u 504 username 更改用戶的uid,改為504
usermod -L username 鎖定用戶,鎖定后用戶不能登陸linux系統
usermod -U username 解鎖用戶
passwd -s username 看用戶是否被鎖定
userdel 用戶名 僅刪除用戶注冊信息
userdel -r 用戶名 刪除屬於該用戶的的家目錄和郵件
- 存儲管理
查看新的硬盤 # fdisk -l
創建pv # pvcreate /dev/sdb
創建vg # vgcreate datavg /dev/sdb /dev/sdc
注:在使用vgcreate 在創建卷組時,還可以指定PE的大小,需要加上-s參數來實現,PE大小范圍為8 KB 到 16GB,並且必須總是2的倍數。一個卷組里面最多允許65534個PE存在。默認設置的PE大小為4 MB,這表示卷組上創建的所有邏輯卷都以 4 MB 為增量單位來進行擴充或縮減,所以4 MB 的PE決定了單個邏輯卷最大容量為 256 GB,若要創建更大的邏輯卷則創建卷組時需要指定更大的PE。
創建lv # lvcreate -L 180M -n lvdata01 datavg
注:使用剩余的空間來創建邏輯卷時,應先通過“vgdisplay”命令可查看當前卷組剩余的空間。
在創建邏輯卷的時候,還可以指定邏輯塊與物理塊映射的模式,邏輯卷的映射模式共有如下兩種:
線性模式――按照順序把一定范圍內的物理塊與邏輯塊映射,這也是默認的映射方式。例如,把邏輯卷中1-25的LE映射到PV1,把26-50的LE映射到PV2上。
條帶模式――將把邏輯塊以條帶的形式映射到不同的物理卷中,這種方式與前面講到的RAID 0有些類似,這種方式可以提高邏輯卷讀寫的性能。例如,將邏輯卷的LE 1映射為PV1的PE1,LE 2映射為PV2的PE1,LE 3映射為PV3的PE1。
# lvcreate -i 3 -I 4 -L 180M -n lvtest1 vgtest
參數的說明如下:
-i:采用條帶模式的映射方式創建邏輯卷,該參數的值用於指定所創建的邏輯卷將映射在幾個PV上。
-I:指定使用條帶模式時所采用塊的大小,單位為KB,其值必須是:2N(N≥2)。
-L:指定創建邏輯卷的大小,單位的可以用K、M、G、T表示KB、MB、GB及TB。
-n:用來指定所創建的邏輯卷名稱,該名稱可根據需要隨便定義。
-l:用於指定邏輯卷的PE數量,默認為4MB為單位計算總容量。
在使用“-i”參數指定PV的個數時,一定要確認所指定的這些PV是沒有完全被分配給任何邏輯卷的,否則將創建失敗,其次若這些PV的大小不等,那么所創建的邏輯卷只能取最小值。
創建文件系統
# mkfs.ext3 /dev/datavg/lvdata01
掛載文件系統
# mkdir /data01
# mount /dev/datavg/lvdata01 /data01
手動激活卷組 # vgchange -a y datavg
手動去激活卷組 # vgchange -a n datavg
注:卷組若不被激活,卷組和邏輯卷是不能被訪問的,在LVM 2里創建的卷組默認是激活的。
為卷組增加新的物理卷
當卷組空間不足時,可以加入新的物理卷來擴大卷組容量,這時可用“vgextend”命令來實現。
# vgextend datavg /dev/sde
移除物理卷
要從一個卷組中移除一個物理卷,首先要確認要移除的物理卷沒有被任何邏輯卷正在使用,通過“pvdisplay”命令可查看到該物理卷信息,如下:
# pvdisplay /dev/sde
--- Physical volume ---
PV Name /dev/sde
VG Name vgtest
PV Size 100.00 MB / not usable 0
Allocatable yes
PE Size (KByte) 4096
Total PE 25
Free PE 25
Allocated PE 0
PV UUID ee2IFC-UHUq-Xg67-icwt-AhdJ-7kRz-JdDjiq
若其中的“Total PE”與“ Free PE”相等,表明該物理卷沒有被使用,如果某個物理卷正在被邏輯卷所使用,就需要將該物理卷的數據轉移到其它地方,然后再移除。移除物理卷的命令為“vgreduce”。
# vgreduce datavg /dev/sde
在物理卷間轉移數據
當發現邏輯卷下的某個磁盤有錯誤,或有其它需求要轉移其中物理卷的數據時(如,更換大容量或更高速的物理設備),那么可通過“pvmove”來實現在物理卷之間轉移數據。
# modprobe dm-mirror
在使用“pvmove ”前需要用 “modprobe dm-mirror”命令來加載dm-mirror模塊,因為“pvmove”在轉移數據時需要用到該模塊,而默認系統是不加載該模塊的。# pvmove /dev/sdd /dev/sde
擴展邏輯卷
# lvextend -L +300M /dev/datavg/lvdata01 在原有的基礎上,增加300MB空間大小
# lvextend -L 300M /dev/datavg/lvdata01 擴展到300MB空間大小
邏輯卷擴展后並不馬上生效,需使用“resize2fs”命令重新加載邏輯卷的大小,該命令只針對ext2/ext3的文件系統(若是reiserfs的文件系統,則使用“resize_reiserfs”命令),如果該邏輯卷正在使用中,就應該先將該邏輯卷卸載后再執行“resize2fs”命令。
# umount lvdata01
# resize2fs /dev/datavg/lvdata01
# mount /dev/datavg/lvdata01 lvdata01
注:以上這些操作可以通過“ext2online”命令直接來實現,這樣就不用做卸載邏輯卷等操作了。
# ext2online /dev/datavg/lvdata01
刪除邏輯卷:刪除邏輯卷前首先需要將其卸載,再執行以下命令:
# lvremove /dev/datavg/lvdata01
移除卷組:在移除卷組前首先要確認該卷組中已沒有任何的邏輯卷了,或者可使用“vgchange”手工將卷組停止,移除卷組的具體操作如下:# vgremove datavg
刪除物理卷:刪除物理卷前,須確認該物理卷已從卷組中移除了。
# pvremove /dev/sde
- 網絡配置
可以使用 system-config-network-tui (文本模式) 、system-config-network-gui (圖像模式),netconfig(文本模式)等網絡配置工具。這些工具都會直接修改Linux系統中關於網絡接口的設置文件;
這是 ifconfig 命令所不能比的;其中 redhat-config-network 和system-config-network工具不僅僅是設置網卡的工具,更有設置ISDN和普通貓、ADSL的工具、網絡硬件的添加、主機名字的設置、DNS各客戶端的設置等。例如:
# /usr/sbin/system-config-network-tui
# /usr/sbin/system-config-network-gui
netconfig 工具是個在文本模式比較好的工具。
# netconfig -d eth0 /設置eth0
# netconfig -d eth1 /設置eth1
設置網卡的DHCP模式自動獲得IP
# netconfig -d eth0 --bootproto=dhcp
手動設置網卡的IP等
# netconfig -d eth0 -ip=192.168.1.33 -netmask=255.255.255.0 -gateway=192.168.1.1
(1) 配置eth0的IP地址, 同時激活該設備。
#ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up
(2) 配置eth0別名設備eth0:1的IP地址,並添加路由。
#ifconfig eth0:1 192.168.1.3
#route add –host 192.168.1.3 dev eth0:1
(3) 激活設備。 #ifconfig eth0:1 up
(4) 禁用設備。 #ifconfig eth0:down
(5) 查看指定的網絡接口的配置。 #ifconfig eth0
(6) 查看所有的網絡接口配置。 #ifconfig
(7) 查看網絡接口的連接狀態:# ethtool eth0
(1) 添加到主機的路由。
#route add –host 192.168.1.2 dev eth0:0
#route add –host 10.20.30.148 gw 10.20.30.40
(2) 添加到網絡的路由。
#route add –net 10.20.30.40 netmask 255.255.255.248 eth0
#route add –net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
#route add –net 192.168.1.0/24 eth1
(3) 添加默認網關。 #route add default gw 192.168.1.1
(4) 查看內核路由表的配置。
#route
(5)刪除路由。
#route del –host 192.168.1.2 dev eth0:0
#route del –host 10.20.30.148 gw 10.20.30.40
#route del –net 10.20.30.40 netmask 255.255.255.248 eth0
#route del –net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
#route del –net 192.168.1.0/24 eth1
#route del default gw 192.168.1.1
對於1和2兩點可使用下面的語句實現:
Ifconfig eth0 172.16.19.71 netmask 255.255.255.0
Route 0.0.0.0 gw 172.16.19.254
Service network restart
(1) 顯示網絡接口狀態信息。 #netstat –i
(2) 顯示所有監控中的服務器的Socket和正使用Socket的程序信息。 #netstat –lpe
(3) 顯示內核路由表信息。
#netstat –r
#netstat –nr
(4) 顯示TCP/UDP傳輸協議的連接狀態。
#netstat –t
#netstat –u
hostname更改主機名
#hostname myhost
- 清屏
clear是清屏幕,windows是cls
- 列出文件的內容
cat tac head tail more
cat 3.txt 正序 從第一行開始
tac 3.txt 倒序 從倒數第一行開始
head 3.txt 頭
head -3 3.txt 列出前3行
head可以帶參數 -lines
尾 tail -1 3.txt 最后一行
more 3.txt ------more默認是可以分頁的,所以很多管道用到了他
ls 橫着排顯示,這一行顯示滿了接着下一行
ls -l 一行只顯示一個文件或者目錄的詳細信息
ls -m 橫着排顯示,這一行顯示滿了接着下一行
ls -R 有點像樹狀展示
- Cp+move
cp copy 拷貝 mv move 移動
cp 1 2 把1這個文件拷貝一份,名字叫2
cp -r d1 d2 拷貝目錄必須帶參數 r
刪出一個目錄,先要刪去目錄下面的東西。要用遞歸,拷貝也是
mv d2 d1 把d2目錄移到d1,如果不行,加遞歸 mv –r
- 改名字 mv
Mv除了可以移動外,還可以改名字
Mv 3.txt 4.txt 把3.txt的名字改為4.txt
- whoami
顯示當前的用戶,是root還是其他用戶
- 按5下 ESC
按5下 ESC,會出現可以很多使用的命令
display all 2091 possiblities,即RedHat Linux有2000多個命令。
- mount 掛載+卸載
mount point 掛載點
mount /dev/cdrom /mnt/cdr 將dev目錄下的cdrom設備與
根目錄下的mnt目錄下的cdr目錄關聯起來,這就是掛載
掛載點------cdr 設備-----CDROM
卸載umount /dev/cdrom 或者 umount /mnt/cdr
- VI is important
Vi:命令模式與編輯模式,剛開始進入的命令模式,不能輸入內容。
敲a進入編輯模式,底下會出現insert這個單詞 append 追加
敲esc 退出編輯模式,進入命令模式
在命令模式敲冒號 : ,然后再敲命w 是存盤
q 是退出 q!是不存盤退出 wq是存盤退出(最常用)
wq是存盤退出 w是不是write的意思
- find
查找某個文件的名字(前提是你記得大概的名字),查找它的路徑路徑路徑。可以根據創建日期查找,查找rc.local
find / -name *local 從根目錄下面開始查找,指定一個位置,從那里開始查
find /etc -name *local
find /etc | grep local 系統回去找含有local這幾個字母的所有文件或者目錄
find / -name MySQL系統只是回去找名字叫MySQL的文件或者目錄
find / -name MySQL*找名字叫前幾個字母是MySQL(后面任意)的文件或者目錄,名字不必寫全
- whereis
whereis ls 查找ls這個命令在哪里
/bin bin 目錄下面有各種命令 vi cat ls pwd 等等
/usr/bin 目錄下面也有各種命令
- 查看環境變量
在DOS下面看環境變量
echo %path%
echo %classpath%
Linux下面 echo $PATH PATH 必須大寫
- 鏈接 ln
ln 3.txt 4 more 4
鏈接:改了3.txt,4的內容也會自動跟着改,前提是你沒有修改4
ln 3.txt 4 硬鏈接,相當於復制了一份,然后再在兩個文件之間建立了快捷方式,修改3.txt,4也會變
ln -s 3.txt 5 軟連接,相當於windows的快捷方式,修改3.txt,5也變
兩種鏈接的不同之處:
將3.txt刪去,5不存在了,連接斷掉了,4還存在。
- wc (word count)
wc -l lines 這個文件有多少行
- grep
global regular expressions print 全局正則表達式版本
在文本文件中查找指定的字符串,並且把包含的那一行給顯示出來, grep student 4
在4這個文本文件中找student這個字符串,哪一行包含它,顯示出來
^在正則表達式中,代表一行的開頭
ls -l | grep '^d' 只把目錄列出來,/etc下面的文件與目錄很多
^ 這個字符在數字6上面
rpm –qa 把所有的包都列出來,
rpm -qa | grep MySQL 查找含有MySQL這幾個詞的所有包,只要包名里面有MySQL這幾個字母,就會被找出來
- grep 與 find
find / -name MySQL*
find / | grep MySQL
fdisk -l l顯示當前的磁盤信息
- dmesg
列出開機的啟動信息 全稱是------d message
dmesg | grep eth0 看第一塊網卡啟動正常嗎
- 命令替換wall
warning all 通知所有人,警告所有人
wall helloworld
wall `date` 警告的字符是當前的時間,把date當做一個命令,把這個命令執行的結果警告出去(` 這個字符是數字1左邊那個字符)
wall date 警告的字符是 date
- 重定向
Java原來的一個程序,把out替換掉.
System.out.println() 把命令輸出到了文件中
ls
ls > cmd.txt 把剛才ls執行的命令的結果輸入到cmd.txt這個文件中
錯誤輸出重定向---------
lssss > cmd.txt 不行 , lsss這個命令不存在
lssss 2> cmd.txt
重定向輸入 wall < cmd.txt 把cmd.txt里面的內容警告出去
- 管道
分頁顯示,/etc下面的內容很多
ls -R
ls -R | more 把上一個命令執行的結果交給下一個命令
ls -l /etc | more
more默認是可以分頁的,但是ls -l 不會分頁,有時候顯示的內容巨多無比,用more將結果。分頁豈不很好。
ls -l | grep '^d' 只把目錄列出來,/etc下面的文件與目錄很多
- 文件權限 file privilege
最左邊的一共有10位
- (代表文件) d(代表目錄) l(是L代表鏈接)
把最左邊的那一個去掉,就剩下9個了,可以划分成3組。
Linux文件的權限分為4種---------
read write execute none(什么也沒有)
9位分成3組:
第一組代表這個文件的所有者有什么權限
第二組代表這個文件的所有者同組的人所擁有的權限
第三組代表剩下的人具有什么權限
x--------------execute
r-------------read
w---------------write
- 代表什么也沒有 none
- Chmod-不專業
change mode
chmod +x 4 給4這個文件加上可執行權限,其他兩組也具備
chmod -x 4 取消權限
chmod u+x 4 只給自己加上可執行權限,只給第一組加上權限
怎樣讓同組的其他人也有這個權限:
chmod g+x 4 只給第二組加上權限 group
chmod o+x 4 只給第三組加上權限 other
chmod 755 4
chmod 777 4
7表示權限都齊了 5表示沒有寫的權限
在Linux(Unix)內部表示權限,是用3個八進制數來表示的
000 =====0 111 ======7
- 怎么修改文件的所有者
chown testuser1 4 -------------change owner
- 簡單用戶的管理
當一個用戶登錄的時候,默認的路徑是這個用戶的主目錄
- 添加用戶(兩種方式)
useradd testuser
adduser testuser
- 設置密碼
passwd testuser 給這個用戶設置密碼
按了退格鍵 無效,因為密碼不顯示
- 兩個位置變化
增加一個用戶后,系統有兩個位置會有變化:/home 、 /etc
cd /home ls #home目錄會有一個自動生成的目錄,叫做testuser
cd /etc more passwd 打開 passwd這個文件
passwd這個文件沒有存密碼,存的是所有的用戶testuser:x:501:502::/home/testuser:/bin/bash
這句話的意思:這個用戶 id號---501 所位於的組:502
用戶的主目錄為----/home/testuser
這個用戶用到的shell -------- /bin/bash
用戶組------------------------------------------------
組的信息在group這個文件中 /etc/group
添加一個用戶不指定組的時候,會添加一個和你用戶名一樣的組
- 添加一個組
groupadd testg
useradd testuser2 -g testg 添加用戶的時候指定組
修改用戶所屬組 usermod -g testuser testuser2新的組 用戶名
usermod---------user modify
- 刪除用戶與組
刪除用戶分兩步---刪掉用戶 刪掉他的目錄
userdel testuser
cd /home
rm -rf testuser
組的刪除 groupdel testg
- 用戶切換
switch user
su testuser2
- Shell
內核外面有一層,叫做shell,shell會解釋你在Linux下面敲的命令,然后再與內核打交道。shell有不同的形式,有不同的shell,c shell -------c 語言形式的shell,不同的shell執行的命令是不一樣的,同樣的命令在不同的shell底下不能通用,常用的命令,可以通用。
咱們用的shell叫做 bash,以前叫做bsh,名字的由來,是由一個叫做bone的人,寫的,所以叫做bsh,后來他又寫了一遍,bone again shell ,所以叫做 bash。
bash ------ 切換到bash
csh --- 切換到 C shell
ksh ----- 切換到k shell
sh 最原始最原始的shell
bsh ------ 切換到bsh