shell初探

linux注意點

linux和window的區(qū)別

linux嚴格區(qū)分大小寫,注意和doc是不一樣的
linux的所有內容都以文件的形式保存,包括硬件
linux沒有擴展名的這種名稱的

  • 壓縮包:.gz .bz2 .tar.baz2 .tgz等
  • 二進制: .rpm
  • 網頁 html .php
  • 腳本 .sh
  • 配置文件 .conf
    以上就是約定俗稱的的名稱但是如果沒有
    window的程序不能直接在linux下運行

字符界面的優(yōu)勢

占用的系統(tǒng)資源更少
減少了出錯,減少了被攻擊的可能性

linux的安裝

  • ide 硬盤”、: /dev/hd*

  • scsi usb sata : /dev/sd*

linux的常用命令

[root@loclalhost ~]#
root 當前登錄用戶
localhost 主機名
~當前所在的目錄
#超級用戶的提示符
$ 如果是普通用戶的話,就顯示$

一、命令基本格式

命令 [選擇] [參數(shù)]
注意

  • 個別不支持上述的命令格式
  • 多個選項是后,可以寫在一起
  • 簡化 -a 完整的選項 --a 有兩個剛

權限;

-rw-r--r--

文件類型:看第一位:如果是-文件 d目錄 l軟連接文件
rw- (u所有者)r--(g所屬組)r--(o其他人): rwk r:red w:write寫 x:執(zhí)行

ls

ls [選項] [file/dir]
選項:-a 所有的文件包括隱藏的 -l詳細信息
-d查看目錄屬性 -h人性化顯示文件大小 -i顯示inode

linux的隱藏文件:以.開頭的文件

二、文件處理命令

目錄處理命令:

mkdir -p [目錄名稱]

-p 遞歸創(chuàng)建 (目錄名稱是一串多個目錄的時候)

cd (change directive)

cd [目錄]
簡化操作
cd ~ 當前用戶的家目錄
cd 同上
cd - 進入上次目錄
cd .. 進入上一級目錄
cd. 進入當前目錄

絕對路徑:
cd /etc/這個就是從根目錄開始的
cd ../etc/這個就是相對路徑的

pwd顯示當前文件路徑
rmdir (remove empey directive )

只能刪除非空目錄 這里刪除的比較少

rm 刪除不管是不是非空文件

rm -rf /japan/
參數(shù) -rf
r 表示刪除目錄
f 強制刪除(不再疑問)

cp (copy)

cp 【選項】 【源文件/目錄】 【目標文件/目錄】
-r 復制目錄
-p 連帶文件屬性復制
-d 源文件是鏈接文件,就復制鏈接屬性
-a 相當與 -pdr

ll 就是ls -l兩個命令完全一樣
mv (move)

mv [源文件或目錄] [目標目錄]
剪切 ,沒有-r
如果源文件和目標文件在同一個文件下,就是改名
如果源文件和目標文件不在同一個文件下,就是剪切

常用的目錄
/bin   
/sbin  命令保存目錄   超級用戶才能使用
/usr/bin/系統(tǒng)命令 普通用戶
/usr/sbin /系統(tǒng)命令超級用戶才能使用

以上都是用來保存系統(tǒng)命令的,區(qū)別在于普通權限還是超級用戶權限

/boot 啟動目錄
/dev 特殊文件保存目錄
/etc系統(tǒng)的配置文件
/lib 函數(shù)庫的保存位置

以下三個是空目錄,用來掛載外接的設備的

/media
/mnt
/misc 

以下兩個是掛在內存的盤符:

/sys
/proc

臨時目錄:/tmp
系統(tǒng)軟件資源目錄 /usr/
系統(tǒng)相關的文檔內容/var

鏈接命令

ln -s [源文件] [目標文件]

link
生成鏈接文件
選項 -s 創(chuàng)建軟鏈接

硬鏈接特征:

  1. 擁有相同的i節(jié)點和儲存block塊 可看成是同一個文件
  2. 同過i節(jié)點識別
  3. 不能夸分區(qū)
  4. 不能針對目錄使用

軟連接的特點:

  1. 類似于window的快捷方式
  2. 有自己的i節(jié)點和block塊,但是只保存源文件的文件名和I節(jié)點號,沒有實際的文件數(shù)據
  3. lrwxrwxrwxx 權限全放開
  4. 修改任意文件,另一個都改變
  5. 刪除源文件,軟連接不能使用

三、文件搜索命令

1、 文件搜索命令 locate

速度最快

localte 文件名
在后臺數(shù)據庫中按文件名搜索,速度更快
/var/lib/mlocate會在這個里邊進行搜索,而不會搜索實際的文件,這個數(shù)據庫一天一更新,所以找不到新建的文件

updatedb 這個命令強制更新數(shù)據庫
locate locate 這個查看locate的文件命令
eg:

locate changls//只能根據文件名來查看

在文件/etc/updatedb.com配置文件中
prune_bind_mounts = "yes"開啟搜索x限制

prunefs = 不搜索的文件系統(tǒng)

prunenames= 不搜索的文件類型
prunepaths 不搜索的路徑

2、 命令的搜索命令whereis 與which

whereis 命令名
搜索命令所在的位置:
whereis ls這個就是查看命令文件的
選項:-b 只查找可執(zhí)行文件
-m 只查找?guī)椭募?/p>

which命令:
搜索文件所在的路徑一及別名能夠看到文件的別名
which ll

alias ll='ls -l --color=auto'
    /usr/bin/ls

3、 文件搜索命令find

完全匹配
find [范圍] [文件名]

find / -name install.log 
#根據名字搜索
find / -iname install.log 
# iname名字不區(qū)分大小寫
find /root -user root 
#根據所有者查詢

find /root  -nouser
#沒有所有者的文件
find /var/log/ -mtime +10
#查找十天前修改的文件
find . -size 25k
# 注意:這里的k是小寫,然后M是大寫
# 查找文件大小是25k的文件
find . -inum 262422 
# 查找inum結點是26422的文件
按照時間 find /var/log/ -mtime +10
  • -10 10天內修改的文件

  • 10 10天當天修改的文件

  • +10 10天前修改的文件

  • atime 文件訪問的時間

  • ctime 改變文件屬性

  • mtime 修改文件內容

find在系統(tǒng)當中搜索符合條件的文件名,如果需要匹配,使用通配符,通配符是完全匹配的

find的復雜操作

find /etc -size +20k -a -size -50k
# -a表示 and 邏輯與
# -o 表示 or 邏輯或
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
查找 并且顯示詳細的信息
# -exec/-ok 命令{} \對搜索結果執(zhí)行操作
-exec/ (這里填寫執(zhí)行情況) {} \ ;這是一個固定的命令格式
通配符:
* 
?表示任意一個字符
[ab]表示匹配a或者是b

4、字符串搜索命令 grep

grep [選項] 字符串 文件名
在文件當中匹配符合條件的字符串
-i 忽略大小寫
-v 排除指定字符串

其實就是在后頭的文件中找到關鍵字對應的信息

5、find與 gerp的區(qū)別

find:
系統(tǒng)當中搜索符合條件的文件名,需要完全匹配

grep 文件當中搜索符合條件的字符串,如果需要匹配,使用正則表達式進行匹配,正則表達式也是包含匹配

四、幫助命令

man

查看文件說明
man -f 相當于 whatis命令 查看有哪些對應的幫助等級
舉例:

 man -5 passwd 
man -4 null
man -8 ifconfig

man的級別

  1. 查看命令的幫助
  2. 可被內核調用的函數(shù)的幫助
  3. 函數(shù)和函數(shù)庫的幫助
  4. 查看特殊文件的幫助,主要是/dev下的文件
  5. 查看配置文件按的幫助
  6. 游戲的幫助
  7. 其他雜項的幫助
  8. 系統(tǒng)管理員可用命令的幫助
  9. 和內核相關文件的幫助

查看和命令相關的所有的幫助:
man -k 命令
相當與 apropos命令

命令--help
shell內部命令
  1. help 內部命令
    help cd
    如和判斷是不是內部命令 如果通過whereis 找不到對應的文件,只能找到幫助文檔就知道是內部命令了
    help 和man分別獲取前后的命令
  2. info
    -回車 進入子幫助界面,帶有* 標記
    -u 進入上層頁面
    -n 進入下一個幫助小節(jié)
    -p 進入上一個幫助小節(jié)
    -q 退出

五、 壓縮與解壓縮命令

常見的五種壓縮格式: .zip/ .gz/ .bz2 /.tar.gz/ .tar.bz2

zip

zip 壓縮文件名 源文件(壓縮文件)
zip -r 壓縮文件名 源文件 (壓縮目錄)加個-r就是目錄

gzip

.gz 類型的文件
gzip 源文件 (源文件會丟失)
gzip -c 源文件 > 壓縮文件

尖括號>用來輸出文件,就比如 ls > abc 就把ls下所有輸出的東西寫到了abc文件中

壓縮為.gz格式的文件,但是源文件保留
gzip -r 目錄
壓縮目錄下的所有的子文件,但是不能壓縮目錄

解壓文件 gzip -d 壓縮文件
以上為解壓縮文件
gunzip 壓縮文件
解壓縮文件
gzip壓縮目錄有問題

bzip 源文件

.bz2格式,但是不保留源文件
-k 無論在壓縮還是解壓縮的是后,都保留了原來的文件
bzip2 -k 源文件 壓縮后保留源文件
注意;bzip2命令不能壓縮目錄

解壓縮: bzip2 -d 壓縮文件/bunzip2 壓縮文件

打包命令tar

tar -cvf 打包文件 源文件
-c 打包 -v 顯示過程 -f 指定打包后的文件名

tar -xvf 打包文件名
-x 解打包

如果打包加壓縮成gz

tar -zcvf 壓縮包名.tar.gz 源文件
解壓縮加解包
tar -zxvf 壓縮包名.tar.gz 源文件

如果打包加壓縮成bz2
tar -jcvf 壓縮包名.tar.bz2 源文件
解壓加解打包
tar -jxvf 壓縮包名.tar.bz2

六、關機和重啟命令

shutdown命令

shutdown [選項] 時間
-c 取消前一個關機命令 -h關機 -r 重啟
shutdown -r 05:30 &

這個&的作用是在后臺執(zhí)行,倒時候會自動執(zhí)行
時間可以是now

other 關機命令

halt /poweroff /init 0
都不會很安全

other 重啟命令

reboot /init6
系統(tǒng)的運行級別:
0 關機
1 單用戶
2 不完全多用戶,不含nfs服務
3 完全多用戶
4 未分配
5 圖形界面
6 重啟

退出登錄

logout 推出登陸

七、其他常用命令

掛載命令

用戶登陸查看和用戶交互命令
mount 掛載命令
mount -a 依據配置文件,/etc/fstab的內容,自動掛載

掛載命令格式

mount [-t 文件系統(tǒng)] [-o 特殊選項] 設備文件名 掛載點

選項:
-t 文件系統(tǒng),制定掛載的類型,可以是ext3 ext4 iso9660等文件系統(tǒng)
-o特殊選項:可制定掛載的額外選項

賦予執(zhí)行權限:
chmod 755 [filename]

vi

#!/bin/bash
#第一行必須是上邊的那句話,不可省略
echo "helloworld "

用戶登陸查看命令

  • w 用戶/顯示用戶的信息
  • who 用戶名
  • last 查看所有用戶的登陸信息/系統(tǒng)的重啟時間
  • lastlog 默認讀取var/log/lastlog文件內容

命令輸出
-用戶名 登陸終端 ip最后一次登陸時間

shell基礎

腳本的執(zhí)行方式

1、 echo輸出命令
echo [選項] [輸出內容]

選項:
\a 警告 \n換行 \b 退格,左刪除\r回車\t制表\v垂直制表\Onnn 按八進制輸出字符\xhh十六進制輸出字符

第一個腳本

[root@localhost filegz]# vi testsh
然后執(zhí)行
#!/bin/bash
# The first programe
echo -e "hello world"

調用的時候,兩種方式:
./test.sh
或者是bash test.sh

別名與快捷鍵

bash 的基本功能:

1、命令別名與快捷鍵

查看所有的別名:alias

設值別名:注意自己別隨便添加空格
alias ls='ls --color =never'

寫入環(huán)境變量配置文件
vi ~/.bashrc

刪除別名unalias 別名

命令生效的順序:
1、 第一順位執(zhí)行用絕對路徑或者是相對路徑執(zhí)行的命令
2、執(zhí)行別名
3、執(zhí)行bash的內部命令
4、執(zhí)行按照$path環(huán)境變量定義的目錄查找順序找到的第一個命令

快捷鍵

  1. 強制終止 ctrl+c
  2. 清屏 ctrl+u
  3. 光標移動到命令行首 ctrl+a
  4. 光標移動到命令行尾 ctrl+e
  5. 光標刪除到行首 ctrl+u
  6. 命令放入到后臺 ctrl+z
  7. 歷史命令中搜索 ctrl + r

2、歷史命令
上下箭頭來調用
使用 !n 重復執(zhí)行第n條歷史命令
使用 !!上一條歷史命令
使用 !字符串重復執(zhí)行最后一條以該字串開頭的命令

    history [選項] [歷史命令的保存文件]

-c 清空歷史命令 -w 把緩存中的歷史命令寫入歷史命令保存文件 ~/.bash_history

歷史命令中默認保存1000條,如果不滿意可改變/etc/profile/ HISTSIZE=10000

命令文件的補全:Tab鍵盤
命令補全以來Path目錄 echo $PATH

3、輸出重定向

標準輸出重定向(只有正確的是后)
命令 > 文件 命令的內容寫到文件中
命令 >> 文件 命令的內容追加到file中
標準錯誤輸出
命令 2>> file 追加的是錯誤的信息
命令 2>file 覆蓋的是錯誤的信息
如果是錯誤輸出,大于號左邊是不能有空格的

如果一個文件錯誤不錯誤的信息都輸入到這個文件中:

ifconfig longzls >> test2.log 2>&1

同時保存:
命令 > 文件 2>&1 # 覆蓋的形式
命令 >> 文件 2>&1 # 追加的形式
命令 &>文件 #覆蓋的方式
命令 &>>文件 #追加的方式
命令>>文件1 2>>文件2 #正確的輸出追加到文件1中,錯誤的輸出追加到文件2中

輸入重定向:
wc [選項][file]
-c 統(tǒng)計直接數(shù)
-w t統(tǒng)計單詞數(shù)
-l 統(tǒng)計行數(shù)

之后ctrl +d 就能看了

4、多命令順序執(zhí)行

; 多個命令順序執(zhí)行,命令之間沒有任何邏輯聯(lián)系
&& 邏輯與前邊執(zhí)行,后頭才會執(zhí)行,1不對,短路
|| 邏輯或,命令1執(zhí)行不正確,命令2才會執(zhí)行

管道符
命令1 | 命令2 命令1的正確輸出作為命令2的操作對象

5、shell中的特殊符號
通配符:

  • ? 只能匹配一個支付
    • 只能匹配多個字符
  • [] 只能匹配中括號內的東西【abv】就指有a 或是b或是c
  • [-] [1-9]表示匹配1-9
  • [^] [^1-9] 不是數(shù)字所有的單個字符

正則表達式:

其他的特殊符號:

  • "
  • '
  • ``括起來的內容就是系統(tǒng)命令,bash中會先執(zhí)行類似于$()
  • $()
  • #注釋
  • $ 調用變量的值
  • \ 轉義字符
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容