linux中的bash命令?shell(外殼),廣義的shell可以理解為是用戶的工作環境,在windows看來桌面就是一個shell,在linux看來終端就是shell,今天小編就來聊一聊關于linux中的bash命令?接下來我們就一起去研究一下吧!
shell(外殼),廣義的shell可以理解為是用戶的工作環境,在windows看來桌面就是一個shell,在linux看來終端就是shell
常見的shell有兩種,一種是圖形界面,即GUI,一種是命令行終端,即CLI。
常用的GUI:Graphic User Interface
常用的CLI:Command Line Interface
bash支持以下特性:
`` //反引号,鍵盤左上角Esc下面的鍵,用于命令替換"" //雙引号,弱引用,可以實現變量替換'' //單引号,強引用,不完成變量替換
2.2.2 bash常用操作//光标跳轉
Ctrl a //跳到命令行首
Ctrl e //跳到命令行尾
Ctrl u //删除光标至命令行首的内容
Ctrl k //删除光标至命令行尾的内容
Ctrl <-- //光标定位到離自己最近的一個單詞前面
Ctrl l //清屏
//命令曆史
history //查看命令曆史
-c //清空命令曆史
-d OFFSET [n] //删除指定位置的命令曆史
-w //保存命令曆史至曆史文件~/.bash_history中
//命令曆史的使用技巧
!n //執行命令曆史中的第n條命令
!-n //執行命令曆史中倒數第n條命令
!! //執行上一條命令
!string //執行命令曆史中最近一個以指定字符串開頭的命令
!$ //引用前一個命令的最後一個參數
esc,. //按下esc松開後按.,引用前一個命令的最後一個參數
//命令補全
搜索PATH環境變量所指定的每個路徑下以我們給出的字符串開頭的可執行文件, \
如果多于一個,兩次tab,可以給出列表,否則将直接補全
//路徑補全
搜索我們給出的起始路徑下的每個文件名,并試圖補全
//命令别名:
alias CMDALIAS='COMMAND [options] [arguments]'
在shell中定義的别名僅在當前shell生命周期中有效,别名的有效範圍為當前的shell進程。
//命令替換(把命令中某個子命令替換為其執行結果的過程)
$(COMMAND) //推薦方式
或
`COMMAND`
//命令行展開
~ //展開為用戶的家目錄
~USERNAME //展開為指定用戶的家目錄
{} //可承載一個以逗号分隔的列表,并将其展開為多個路徑
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
//文件名通配 globbing
* //匹配任意長度的任意字符
? //匹配任意單個字符
[] //匹配指定範圍内的任意單個字符
[abc],[a-m],[0-9]
[[:space:]] //表示空白字符
[[:punct:]] //表示标點符号
[[:lower:]] //表示小寫字母
[[:upper:]] //表示大寫字母
[[:alpha:]] //表示大小寫字母
[[:digit:]] //表示數字
[[:alnum:]] //表示數字和大小寫字母
使用man 7 glob命令可以獲得以上字符集合的幫助信息!!!
[^] //匹配指定範圍之外的任意單個字符
//環境變量
PATH //命令搜索路徑
HISTSIZE //命令曆史緩沖區大小
SHELL //當前shell//bash内置變量
RANDOM //保存着0-32768之間的随機數
3. 命令3.1 命令格式命令 [選項] [參數]
選項:(可以有0個或多個)
短選項:-
多個選項可以組合: -a -b = -ab
長選項:--
長選項通常不能組合
參數:命令的作用對象(可以有0個或多個)
3.2 命令類型Linux命令分為兩種類型:
type //顯示指定命令屬于哪種類型
3.3 基礎命令//目錄管理
ls //列出目錄内容
-l //長格式
文件類型
- //普通文件(f)
d //目錄文件
b //塊設備文件(block)
c //字符設備文件(character)
l //符号鍊接文件(symbolic link file)
p //命令管道(pipe)
s //套接字文件(socket)
文件權限 //9位,每3位一組,每一組:rwx(讀,寫,執行)
文件硬鍊接的次數
文件的屬主(owner)
文件的屬組(group)
文件大小(size),單位是字節
時間戳(timestamp),最近一次被修改的時間
訪問 //access
修改 //modify,文件内容發生改變
改變 //change,metadata(元數據)
-h //做單位轉換
-a //顯示以.開頭的隐藏文件
. //表示當前目錄
.. //表示父目錄
-d //顯示目錄自身屬性
-i //顯示文件的inode(index node)
-r //逆序顯示
-R //遞歸(recursive)顯示
cd //改變當前工作目錄
pwd //打印當前工作目錄路徑
mkdir //創建目錄
-p //創建目錄時若父目錄不存在則自動創建
-v //顯示目錄創建過程
rmdir //删除目錄,隻能删除空目錄
tree //查看目錄樹
//文件管理
touch //無中生有、萬象更新
stat //顯示文件或文件系統的狀态
rm //删除文件,删除命令默認會提示是否需要删除, \
//如果要使用命令本身可以在命令前加一個\,如\rm,這樣删除就不會有提示了
-r //遞歸删除,删除目錄時必須使用此選項
-f //強制删除,不詢問
cp //複制文件,一個文件到一個文件,多個文件到一個目錄
-a //歸檔複制,常用于備份
-r //遞歸拷貝,拷貝目錄時必須使用此選項
-p //拷貝時保留原權限
mv //移動文件
install //複制文件并且設置屬性
-m MODE
-o OWNER
-g GROUP
//壓縮、解壓縮命令
//壓縮格式
gz,bz2,xz,zip,Z
gzip //壓縮後的文件以.gz結尾
gzip /path/to/somefile //壓縮完成後會删除原文件
-d //解壓縮,解壓完成後會删除原文件
-c //将結果輸出至标準輸出
-# //#用1-9代替,指定壓縮比,默認為6
gunzip //解壓
gunzip /path/to/some_compress_file.gz //解壓完成後會删除原文件
zcat /path/to/somefile.gz //不解壓的情況下查看文本文件的内容
bzip2 //壓縮後的文件以.bz2結尾
//bzip2是一款比gzip有着更大壓縮比的壓縮工具,使用格式近似
bzip2 /path/to/somefile //壓縮完成後會删除原文件
-d //解壓縮,解壓完成後會删除原文件
-# //#用1-9代替,指定壓縮比,默認為6
-k //keep,壓縮時保留原文件
bunzip2 //解壓
bunzip2 /path/to/some_compress_file.bz2 //解壓完成後會删除原文件
bzcat /path/to/somefile.bz2 //不解壓的情況下查看文本文件的内容
xz //壓縮後的文件以.xz結尾
//比bzip2有着更大壓縮比的壓縮工具,使用格式近似
xz /path/to/somefile //壓縮完成後會删除原文件
-d //解壓縮,解壓完成後會删除原文件
-# //#用1-9代替,指定壓縮比,默認為6
-k //keep,壓縮時保留原文件
unxz //解壓
unxz /path/to/some_compress_file.xz //解壓完成後會删除原文件
xzcat /path/to/somefile.xz //不解壓的情況下查看文本文件的内容
zip //既歸檔又壓縮的工具。zip可以壓縮目錄,\
//gz、bz2、xz都隻能壓縮文件,zip壓縮後不會删除原文件
zip filename.zip file1 file2 ...
zip filename.zip DIR/*
unzip
unzip filename.zip
archive //歸檔,歸檔本身并不意味着壓縮
tar //歸檔工具,隻歸檔不壓縮
-c //創建歸檔文件
-f file.tar //操作的歸檔文件
-x //還原歸檔
-v //顯示歸檔過程
-p //歸檔時保留權限信息。隻有管理員才有權限用此選項
-C //将展開的歸檔文件保存至指定目錄下
--delete //從歸檔文件中删除文件
--xattrs //在歸檔時保留文件的擴展屬性信息
-tf /path/to/file.tar //不展開歸檔,直接查看歸檔了哪些文件
-zcf //歸檔并調用gzip壓縮
-zxf //調用gzip解壓縮并展開歸檔
-jcf //歸檔并調用bzip2壓縮
-jxf //調用bzip2解壓縮并展開歸檔
-Jcf //歸檔并調用xz壓縮
-Jxf //調用xz解壓縮并展開歸檔
//查看文本
cat //拼接文件内容并輸出至标準輸出(屏幕)
-n //顯示行号
//使用cat查看文件内容時會将文件的所有内容加載至内存, \
//所以應避免使用cat打開巨大文件
more //全屏查看文本文件内容,隻能從前往後,不能從後往前。\
//文件内容顯示完後自動退出
less //全屏查看文本文件内容,可從前往後亦可從後往前。推薦使用
head //從頭部開始打印文件内容,默認打印10行
-n //指定要打印的行數,可以是-n 15也可以是-15
tail //查看文本文件尾部内容
-n //指定要打印的行數,可以是-n 15也可以是-15
//文本處理
cut //截取文本内容
-d //指定字段分隔符,默認是空格
-f //指定要顯示的字段
-f 1,3 顯示1和3
-f 1-3 顯示1到3
sed //基于行的過濾和轉換文本的流編輯器
awk //基于列的文本報告工具
//文本排序
sort //默認升序排序,不是按數值大小排序的
-n //根據數值大小進行排序
-r //逆序排序
-t //字段分隔符
-k //以哪個字段為關鍵字進行排序
-u //去重,排序後相同的行隻顯示一次
-f //排序時忽略字符大小寫
uniq //報告重複的行(連續且完全相同方為重複)
-c //顯示文件中行重複的次數
-d //隻顯示重複的行
-u //隻顯示未重複的行
//文本統計
wc(word count)
-c //顯示字節數
-l //顯示行數
-w //顯示單詞數
//大小統計
du //查看文件或目錄占用的磁盤空間大小
-h //以人類友好的方式顯示大小
-s //顯示總的占用空間大小
df //報告文件系統磁盤空間使用情況
-h //以人類友好的方式顯示大小
-i //顯示inode信息
//主機名管理
hostname //查看或臨時修改主機名,重開終端有效,重啟失效
hostnamectl //查看或永久修改主機名,重開終端生效,重啟依然有效
//其它
time //顯示命令的執行時間,例如time ls /etc
clear //清屏
whoami //顯示當前登錄用戶
w //顯示當前在線用戶并顯示其在運行的命令
who //查看當前在線用戶
which //顯示指定命令的絕對路徑
date //顯示或設置日期與時間
//不帶參數的date用于顯示當前系統日期與時間
-s //以字符串方式設置時間
//格式化輸出時間:
%Y //年
%m //月
%d //日
%H //時
%M //分
%S //秒
ldd //查看指定程序有哪些依賴庫文件
程序組成?
二進制程序
庫文件
配置文件
幫助文件
3.4 如何獲取命令幫助//内部命令
help COMMAND//外部命令
COMMAND --help//在線文檔
info COMMAND //命令手冊 manual
man COMMAND//文檔
/usr/share/doc
whatis COMMAND //用于查看COMMAND出現在man的哪一章節中。
//man是分章節的,以下是每一章節的内容介紹:
1 用戶命令(/bin,/usr/bin,/usr/local/bin);
2 系統調用;
3 庫調用;
4 特殊文件(設備文件);
5 文件格式(配置文件 的語法);
6 遊戲;
7 雜項(Miscellaneous);
8 管理命令(/sbin,/usr/sbin,/usr/local/sbin)
//man手冊注意事項:
[] //可選
<> //必選
... //可以出現多次
| //多選一
{} //分組
NAME //命令名稱及功能簡要說明
SYNOPSIS //用法說明,包括可用的選項
DESCRIPTION //命令功能的詳盡說明,可能包括每一個選項的意義
OPTIONS //說明每一個選項的意義
FILES //此命令相關的配置文件
BUGS //報告bug
EXAMPLES //使用示例
SEE ALSO //另外參照
//man翻屏
向後翻一屏 //SPACE
向前翻一屏 //b
向後翻一行 //enter
向前翻一行 //k
//查找
/KEYWORD //向後
?KEYWORD //向前
n //下一個
N //前一個
q //退出
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!