<article class="_2rhmJa">
管理整個計算機(jī)硬件的其實是操作系統(tǒng)的核心 (kernel)答朋,這個核心是需要被保護(hù)的! 所以我們一般使用者就只能通過 shell 來跟核心溝通,以讓核心達(dá)到我們所想要達(dá)到的工作。
二、Bash
Bash 【Bouren Again SHell】的簡稱咳蔚,也是基于GNU的架構(gòu)下發(fā)展出來的
是眾多shell中的一個.
Linux系統(tǒng)中的shell保存在/etc/shells這個文件中
可以這樣查看:
chsh -l//查看目前系統(tǒng)安裝的shell/bin/sh//改變目前的shell
CentOS7 中默認(rèn)可用 Shell
cat /etc/shells
三、Bash 的功能
命令別名: alias, unalias
藏終端輸入:stty
stty -echo//隱藏命令的輸入sttyecho//恢復(fù)
程序化腳本: (shell scripts)
可以將你平時管理系統(tǒng)常需要的連續(xù)命令寫成一個文件搔驼, 該文件并且可以通過交互式的方式來運行谈火。
命令別名: alias
alias//顯示目前終端的全部別名aliasll=“l(fā)s -l” // 設(shè)置別名unaliasll //取消別名設(shè)置
Bash shell 的內(nèi)建命令 type
用途: 用來測試命令的類型
type [-tpa] name
選項和參數(shù):
:不加任何選項,會顯示name是外部命令舌涨,還是bash內(nèi)置命令
-t //會將name以下面這些關(guān)鍵字來表示出他的意義:
file :外部命令
alias :命令別名
builtin :bash內(nèi)置命令
不顯示任何數(shù)據(jù)時糯耍,表示name不是任何命令
-p //后面接外部命令時,才會顯示出命令的完整文件名
-a //會由PATH變量定義的路徑中,將所有含name的指令都列出來温技,包括alias
歷史命令:history
查看及操作:
history//列出全部歷史命令記錄history10 //顯示最近10條執(zhí)行過的命令history-c //清除目前 shell 中的所有歷史命令history-w //即刻寫入 .bash_history
使用執(zhí)行:
!25//執(zhí)行第25條歷史命令! ser//執(zhí)行最近一次以 “ser”開頭的命令!!//執(zhí)行上一條命令
注意history的安全問題革为,歷史命令的記錄數(shù)量上要控制好
注意:同一帳號同時多次在線執(zhí)行命令時,這樣會產(chǎn)生多個bash舵鳞,那么會以最后一個登出的命令歷史記錄為準(zhǔn)
建議使用一個用戶登入bash震檩,再用[Ctrl]+z fg bg 來控制前后臺來切換不同的工作
history 無法記錄時間
解決方法:可以透過~/.bash_logout來進(jìn)行history的記錄,并加上date來增加時間參數(shù)
bash 的登錄主機(jī)歡迎信息: /etc/issue, /etc/motd
當(dāng)你登錄到系統(tǒng)之前蜓堕,想了解這個系統(tǒng)的一些簡單的硬件及軟件版本信息等可以做如下設(shè)置:
/etc/issue//修改這個文件的內(nèi)容即可
image.png
/etc/motd//編輯這個文件抛虏,會在用戶登錄之后看到一些歡迎信息
文件系統(tǒng)及程序限制關(guān)系
為了放置有人惡意打開多個大容量的檔案,是內(nèi)存耗盡導(dǎo)致系統(tǒng)宕機(jī)套才,bash可以限制用戶的某些系統(tǒng)資源嘉蕾。
image.png
最常用的就是 -f 了
例如:限制用戶僅等建立10MBytes以下容量的文件
ulimit-f 10240
永久生效,編輯/etc/security/limits.conf
格式:
用戶 限制的級別 類型 限制的值
比如
shark soft nofile 100
shark hard nofile 100
nofile 限制文件打開數(shù)量
nproc 網(wǎng)絡(luò)連接數(shù)
Bash 快捷鍵
編輯命令
Ctrl + a :移到命令行首
Ctrl + e :移到命令行尾
Ctrl + f :按字符前移(右向)
Ctrl + b :按字符后移(左向)
Alt + f :按單詞前移(右向)
Alt + b :按單詞后移(左向)
Ctrl + xx:在命令行首和光標(biāo)之間移動
Ctrl + u :從光標(biāo)處刪除至命令行首
Ctrl + k :從光標(biāo)處刪除至命令行尾
Ctrl + w :從光標(biāo)處刪除至字首
Alt + d :從光標(biāo)處刪除至字尾
Ctrl + d :刪除光標(biāo)處的字符
Ctrl + h :刪除光標(biāo)前的字符
Ctrl + y :粘貼至光標(biāo)后
Alt + c :從光標(biāo)處更改為首字母大寫的單詞
Alt + u :從光標(biāo)處更改為全部大寫的單詞
Alt + l :從光標(biāo)處更改為全部小寫的單詞
Ctrl + t :交換光標(biāo)處和之前的字符
Ctrl+c 終止目前在進(jìn)行的命令
Ctrl+d 輸入結(jié)束(EOF)霜旧,例如寫郵件結(jié)束的時候
Ctrl+u 在提示符下,刪除光標(biāo)前面所有的字符
Ctrl+h 在命令提示符下儡率,刪除光標(biāo)前面的單個字符
Ctrl+k 在命令提示符下挂据,刪除光標(biāo)后面所有的字符
通配符與特殊符號
通配符如下表:
image.png
image.png
[dmtsai@study ~] ll -d /etc/cron* >==加上 -d 是為了僅顯示目錄而已范例二:找出 /etc/ 下面文件名“剛好是五個字母”的文件名[dmtsai@study ~]
ll -d /etc/[0-9] >==記得中括號左右兩邊均需 范例四:找出 /etc/ 下面崎逃,文件名開頭非為小寫字母的文件名:[dmtsai@study ~]
mkdir /tmp/upper; cp -a /etc/[^a-z]/tmp/upper
特殊符如下:
批注符號\ 轉(zhuǎn)移符號,可以將具有特殊意義的符號變?yōu)橐话阕址鹼 管道符眉孩,把前一個命令的結(jié)果傳遞給后一個命令个绍,可以多個,以此類推; 連續(xù)下達(dá)命令的分隔符
( )取代() 在中間為子shell的起始與結(jié)束{} 在中間為命令區(qū)塊的組合
數(shù)據(jù)流重導(dǎo)向
image.png
image.png
黑洞文件/dev/null
可以將一些錯誤的標(biāo)準(zhǔn)輸出,重新輸出到/dev/null中
find /home/ -name .bashrc2>/dev/null
一些典型案例
image.png
image.png
image.png
管道
cut 補(bǔ)充
把export輸出的信息呀潭,取出第12個字符以后的所用字符串钉迷。
export| cut -c 12-