day07-linux指令
1、linux系統(tǒng)介紹
發(fā)展史
unix:是一款操作系統(tǒng)揍障,收費的崔泵,有錢人用的東西
mnix:unix的簡化版彩扔,也收費称诗,還可以接受
林納斯脫襪子,用自己壓歲錢岩齿,買了mnix太颤,自己寫了一個linux,
linux內核盹沈,windows操作系統(tǒng)內核 nt
美國兩大派人物
比爾蓋茨 copyright(版權意識)
理查德斯托曼 copyleft(開源自由) 說服了
GNU/linux
linux基金會上班呢龄章,三流的公司賣產品,二流的公司賣品牌乞封,一流的公司賣標準
優(yōu)點
(1)開源免費
(2)多用戶
(3)良好的界面(桌面端瓦堵、字符端)
(4)穩(wěn)定持久
發(fā)行版本
只要是基于linux內核的操作系統(tǒng),統(tǒng)一稱為linux系統(tǒng)
不同系列歌亲,基本指令都是一樣的,只有軟件的安裝方式不一樣
大便系列:Debian
Ubuntu:屬于大便系列 16.04 桌面端(個人計算機使用居多)
apt-get
賤兔系列: Gentoo
RedHat: 紅帽系列(收費的)
CentOS:屬于紅帽系列澜驮,免費的陷揪,非常穩(wěn)定,常用作服務器系統(tǒng)
也有桌面端 yum 6.8 7.x
費德羅: Federo杂穷,紅帽系列
2悍缠、遠程連接
使用工具:putty、xshell
打開你的虛擬機耐量,會出現(xiàn)login飞蚓,輸入用戶名 root 輸入密碼 123456 敲enter即可進入系統(tǒng)
修改配置文件,讓其有ip
vi /etc/sysconfig/network-scripts/ifcfg-eth0
先關機 poweroff 再去修改 編輯--虛擬網絡編輯器 VMnet0 手動選擇網卡
3廊蜒、簡單指令
[root@localhost ~]#
root: 超級管理員趴拧,擁有至高無上的權限溅漾,所以進來之后別亂動
為了防止系統(tǒng)玩壞,首先拍個快照著榴,純凈水
localhost:主機名
~ : 代表的是在哪一個目錄下面添履,~代表的是當前用戶的家目錄
# : 代表的意思是超級管理員在執(zhí)行指令,
$: 代表的是普通用戶在執(zhí)行指令
如果是普通用戶bajie脑又,進來之后就是這樣的:[bajie@localhost ~]$
簡單指令:
pwd : 當前目錄的絕對路徑
ls : 顯示當前目錄里面所有的文件
cd : 切換目錄 cd 目錄路徑
目錄就是文件夾
絕對路徑 :相對于跟目錄的路徑
相對路徑 :相對于當前目錄的路徑
./ : 當前目錄里面的哪個文件 可以省略不寫 ?
../ : 上一級目錄下面哪個文件 ?
/ : 跟目錄
../ : 上一級目錄 ?
~ : 當前用戶的家目錄 root用戶的家目錄就是 /root
普通用戶的家目錄 /home/bajie
去往家目錄的快捷鍵 cd
cd ~ == cd ?
- : 去往上一個目錄暮胧,類似遙控器的 回看
關機指令:poweroff halt
重啟指令:reboot
tab鍵:自動補全功能 ?
清除屏幕: clear
ctrl + l: 清除屏幕
ctrl + a: 快速的來到指令的最前面 ?
ctrl + e : 快速的來到指令的最后面 ?
ctrl + c : 終止當前的進程
ping :測試兩臺機器是否聯(lián)通
ping ip地址
ping 10.7.181.xx
上下按鍵:快速的調出歷史指令
shutdown :
shutdown -h now 立馬關機
shutdown -r now 立馬重啟
shutdown -h +5 '我要關機啦' 5分鐘之后關機
shutdown -h 12:00 到指定的時間關機
4、ssh
ssh是一個協(xié)議(遠程登錄協(xié)議)问麸,同時也是一個指令往衷,ssh協(xié)議默認端口號是22
ssh也是linux里面的一個指令,可以實現(xiàn)登錄別的linux系統(tǒng)
linux1登錄linux2严卖,通過ssh登錄
windows登錄linux席舍,需要使用軟件,xshell
ssh root@10.7.181.66 輸入密碼即可登錄
ssh 用戶名@ip地址
5妄田、目錄結構
linux各種顏色的意思
下面是linux系統(tǒng)默認不同類型文件的顏色:
白色:表示普通文件
藍色:表示目錄
綠色:表示可執(zhí)行文件
紅色:表示壓縮文件
淺藍色:鏈接文件
紅色閃爍:表示鏈接的文件有問題
黃色:表示設備文件
灰色:表示其他文件
根目錄下的目錄都是什么意思
/bin : 二進制文件俺亮,指令存放地方
/boot : 存放和啟動相關的內容
/dev : 存放設備的地方(*)
/etc : 存放配置文件的地方(*)
/home : 家,普通用戶家目錄存放的地方(*)
/lib /lib64 : 存放都是庫文件
lost + found : linux系統(tǒng)文件獨有的一個目錄
/media : 媒體設備
/mnt : mount 是以后我們要掛載的地方(*)
/opt : 可選的附加程序
/proc : 和進程相關的文件
/root : root用戶的家目錄(*)
/sbin : 只有超級管理員才能執(zhí)行的指令 sudo ?
/selinux : 是linux的一種安全機制疟呐,基本沒用過脚曾,還得關掉它
/srv : 相關服務文件存放的地方
/sys : 和windows的sys,存放硬件相關驅動信息
/tmp : 臨時文件存放的地方
/usr : unix system resource, 自己后續(xù)手動安裝軟件的時候安裝到 /usr/local里面(*)
/var : 存放的是日漸增長的文件启具,比如日志本讥,比如數據庫等
6、ls
顯示當前目錄下面的所有文件
ls 目錄路徑(路徑鲁冯,絕對和相對都可以)
ls -a : 在linux里面拷沸,以點開頭的是隱藏文件,顯示所有文件
ls -R : 遞歸的顯示所有的文件 薯演?
ls -l : 以列表顯示文件的詳細信息撞芍,可以簡寫為 ll
ll之后的每一列代表的意思
第一列:文件類型
- : 一個文件
d : 一個目錄
l : 一個鏈接
c : 字符設備
b : 塊設備
第二列-第十列:文件權限(詳情見后面)
第十一列:是一個點.沒影響,不用管
第十二列:如果是文件跨扮,代表的是硬鏈接的個數序无,如果是目錄,忘了 !=!
第十三列:所屬用戶 root
第十四列:所屬組 root
第十五列:文件的大小 kb
ls -lh 查看文件大小
第十六衡创、十七帝嗡、十八:文件創(chuàng)建、修改時間
第十九列:文件的名字
7璃氢、vi哟玷、vim
vi和vim是編輯器(編輯器之神)
vi是linux自帶的編輯器,vim是增強版的編輯器一也,但是需要安裝才能使用
簡單使用:
(1)vi 1.txt
vi后面跟文件路徑巢寡,沒有就創(chuàng)建這個文件喉脖,有就打開這個文件
進來就是vi的命令模式
(2)按小寫字母i
從命令模式切換到了編輯模式、插入模式
開始編輯
(3)按esc
從編輯模式退出到命令模式
(4)輸入 :wq 保存并且退出 英文的冒號
輸入冒號之后讼渊,稱之為底行模式
vi的其它用法
命令模式==》編輯模式
i : 在光標所在處進入編輯模式
I : 在當前行的第一個非空字符進入編輯模式
a : 在光標所在字符的后一個字符進入編輯模式
A : 在光標所在行末尾進入編輯模式
o : 在光標下新建一行進入編輯模式
O : 在光標所在行的上面新建一行進入編輯模式
s : 刪除當前字符進入編輯模式
S : 刪除當前行進入編輯模式
編輯模式==》命令模式
按esc
命令模式==》底行模式
: 英文的冒號即可
vi的快捷鍵 (13個+7個+6個)
gg : 快速切換到第一行的行首
G :快速切換到最后一行的行首
ngg : 快速切換到指定行的行首
^ : 快速切換到該行行首
$ : 快速切換到該行行尾
dd : 刪除光標所在行
u : 撤銷操作
ndd :刪除光標下n行动看,包含光標所在行
yy :復制光標所在行
p : 粘貼復制的內容
np : 復制幾次
nyy : 復制光標下n行,包含光標所在行
10000dd : 刪除文件中所有行
ctrl + f : 下一頁 forward
ctrl + b : 上一頁 backward
ctrl + d : 下翻半頁 down
ctrl + u : 上翻半頁 up
zt : 光標所在行頂行顯示 top
zb : 光標所在行尾行顯示 bottom
zz : 光標所在行中間顯示 zhongjian
底行模式:
:set nu 顯示行號
:set nonu 取消顯示行號
:wq 保存并且退出
:x 保存并且退出
shift+zz 保存并且退出
:q! 不保存爪幻,強制退出
day08-linux
1菱皆、vi
字符串查找(常用)
從上往下找 :/要查找的字符串 敲enter開始查找 n代表下一個 N代表上一個
從下往上找 ?/要查找的字符串 敲enter開始查找 n代表下一個 N代表上一個 ?挨稿?
字符串替換
光標所在行時的字符串替換
:s/孤單/幸福 將光標所在行的第一個孤單替換為幸福
:s/孤單/幸福/g 將光標所在行的所有孤單替換為幸福
指定行的字符串替換
:n,ms/孤單/幸福 將n到m行第一個孤單替換為幸福
:n,ms/孤單/幸福/g 將n到m行所有孤單替換為幸福
所有行的字符串替換
:%s/孤單/幸福 將所有行的第一個孤單替換為幸福
:%s/孤單/幸福/g 將所有孤單替換為幸福
vi打開快捷到某行
vi lala.txt +n 打開文件默認到第n行行首
vi lala.txt + 打開文件默認到尾行行首
vi的配置文件 仇轻??奶甘?篷店?
.vimrc 如果想用vi來寫python代碼,搞一個配置文件
vi ~/.vimrc
vi的常見錯誤 臭家?疲陕??钉赁?
非法編輯退出vi的時候蹄殃,會產生一個 .2.txt.swp 的一個交換文件,只要有這個文件存在, 那么打開這個文件的時候就會有提示你踩,不想要這個提示诅岩,刪除這個文件即可
rm -f .2.txt.swp
vi -r 2.txt 恢復到上次編輯的內容
2、文件相關指令
文件和文件夾的相關指令带膜,創(chuàng)建吩谦、刪除、拷貝膝藕、移動式廷、查看
(1)創(chuàng)建:
<1>創(chuàng)建文件:
vi 文件路徑
touch 文件路徑
<2>創(chuàng)建文件夾:
mkdir 目錄路徑 創(chuàng)建指定的目錄
mkdir -p dudu/haha/xixi 遞歸創(chuàng)建目錄
(2) 刪除
一般都不刪除文件,一般都是備份一下芭挽,編輯新的文件
<1>刪除文件:
rm 文件路徑
rm -f 文件路徑 強制刪除
通配符:*
rm -f *.txt 刪除所有txt文件
rm -f * 刪除所有文件
<2>刪除目錄:
rmdir 目錄路徑 只能刪除空目錄
rm -rf 目錄路徑 刪除非空目錄
(3)拷貝
<1>cp 源文件路徑 目標文件路徑
拷貝文件的時候可以修改名字
<2>cp -r 源文件夾 目標文件夾
拷貝文件夾的時候可以修改
cp -r lihong jielun/ 使用原來的名字
cp -r lihong jielun/hong 修改名字
(4) 移動
<1>mv 源文件路徑 目標文件路徑
移動的時候可以修改文件名字
<2>移動文件夾不用加 -r 參數
(5)查看文件
<1>vi就能查看
<2>cat 文件名
-n 顯示行號
<3>tac 文件名 倒著查看
<4>head 文件名 默認查看文件前十行
head -5 文件名 查看文件前五行
<5> tail 文件名 默認查看文件后十行
tail -5 文件名 查看文件后五行
<6> more 文件名
enter : 往下走一行
空格 : 往下走一頁
不能向上看滑废,按q退出
<7> less 文件名
enter : 往下走一行
空格 : 往下走一頁
按q退出
pageup 上翻頁
pagedown 下翻頁
/要查找的字符 也可在文件全文查找字符
3、文件系統(tǒng)
文件系統(tǒng)就是文件管理系統(tǒng)的簡稱览绿,不同的文件系統(tǒng)存儲和讀取數據的方式都不一樣,就會
導致同樣的東西穗慕,不同的文件系統(tǒng)來存饿敲,存的大小不一樣
apfs:蘋果手機的格式
常見的文件系統(tǒng)格式
windows:
fat
fat16 已經淘汰
fat32 經常使用,尤其在u盤領域
fat64 (exfat) 在windows和mac都可以直接讀寫
ntfs
windows的默認系統(tǒng)格式
linux:
ext
ext2
ext3
ext4 目前是這個格式 不能讀寫ntfs逛绵,如果要讀寫怀各,安裝其他軟件
mac:
hfs
hfs+ 不能寫入ntfs倔韭,如果想要寫入,需要安裝插件瓢对,該插件收費
4寿酌、用戶和組?
linux是一個多用戶多組的操作系統(tǒng)
一個用戶能否屬于多個組 yes
一個組能否擁有多個用戶 yes
一個用戶至少必須屬于一個組硕蛹,一個用戶必須擁有自己的主組醇疼,其他組稱之為附加組
用戶創(chuàng)建
useradd bajie ?
創(chuàng)建成功之后會留下記錄法焰, tail /etc/passwd 秧荆?
創(chuàng)建一個用戶的同時,會給當前用戶創(chuàng)建一個名字一模一樣的組作為該用戶的主組
給用戶添加密碼
passwd 用戶名
(這個操作只能在root去給某個普通用戶設置密碼埃仪,在普通用戶下只能給自己修改密碼乙濒,不能設置其他普通用戶密碼)
-d : 創(chuàng)建用戶的時候指定家目錄,不指定會在home下面創(chuàng)建一個和用戶名一模一樣的目錄卵蛉,一般不指定 颁股?
-g : 指定主組,如果不指定傻丝,默認創(chuàng)建一個和用戶名一模一樣的組作為主組 甘有?
-G : 指定附加組 ?
-u :指定用戶id 一般都不用 桑滩?
用戶修改
usermod
-g : 修改主組 梧疲?
usermod -g 501 bajie 修改bajie主組
-l : 修改用戶名 ?
usermod -l wuneng bajie 將bajie用戶名修改為wuneng
-u : 修改用戶id 运准?
usermod -u 505 wuneng 將wuneng用戶id修改為505
-d : 修改家目錄 幌氮?
usermod -d /home/lala wuneng 不用
用戶刪除
userdel
userdel 用戶名 只刪除文件中的記錄
userdel -r 用戶名 將家目錄一并刪除
如果操作不規(guī)范,家目錄也可手動干掉
用戶切換
centos里面
su 用戶名
從root切換到普通不用密碼
從普通切換到root胁澳,需要輸入root的密碼该互,通過exit返回上一個用戶
這里面不能sudo,因為不支持韭畸,如果要支持宇智,需要相關配置
Ubuntu里面
不允許root直接登錄,需要配置才可以胰丁。
用普通用戶登錄随橘。 sudo 指令,提示輸入密碼锦庸,這個密碼是當前用戶的密碼
組創(chuàng)建
查看當前組机蔗, tail /etc/group
groupadd 組名
-g : 可以指定組id
刪除組
groupdel 組名
【注】如果一個組是主組的話,這個組刪不掉
【注】如果一個組是一個用戶的主組,并且僅僅是這個用戶的主組萝嘁,而且組名和用戶名相同梆掸,那么在刪除用戶的同時,該組也就刪除了
修改組
groupmod
-g : 修改組的id號 groupmod -g 513 dudu
-n : 修改組名 groupmod -n xixi dudu
5牙言、文件權限
權限什么意思酸钦?系統(tǒng)中,文件的權限都有哪些咱枉?讀卑硫、寫、執(zhí)行
讀:read r
寫:write w
執(zhí)行:execute x
如果寫一個-代表沒有這個權限
權限表示
rwx 111 7
rw- 110 6
r-x 101 5
r-- 100 4
-wx 011 3
-w- 010 2
--x 001 1
--- 000 0
rwx r-x r-x
所屬用戶權限 組內用戶權限 組外用戶權限
權限表示法:0755
常用權限:0755(rwxr-xr-x) 0777(rwxrwxrwx) 0644(rw-r--r--)
修改權限修改組的指令不是亂用的庞钢,需要root用戶的權限才能修改拔恰,Ubuntu下需要使用sudo,centos需要切換root執(zhí)行
修改權限:chmod
格式: chmod 權限 文件路徑
chmod 755 1.txt
chmod g+w,g-x 1.txt ?
u : 修改所屬用戶
g : 修改組內用戶
o : 修改組外用戶
目錄權限修改
chmod 777 目錄路徑 只修改該目錄的權限
chmod -R 777 目錄路徑 遞歸修改目錄里面所有文件的權限
修改用戶:chown
chown 用戶名 文件路徑 只修改用戶名
chown 用戶名:組名 文件路徑 用戶和組都修改
chown :組名 文件路徑 只修改組名
chown -R 用戶名:組名 目錄路徑 遞歸修改目錄里面所有文件的用戶和組
修改組:chgrp
chgrp 組名 文件路徑
chgrp -R 組名 目錄路徑 遞歸修改
umask
是什么基括?
系統(tǒng)創(chuàng)建文件默認權限是 644
系統(tǒng)創(chuàng)建目錄默認權限是 755
目錄默認比文件多了一個可執(zhí)行權限颜懊,對目錄來說,可執(zhí)行就是打開目錄
umask就決定了文件和目錄的默認權限
0777-0022 = 0755 這就是默認權限风皿,文件都少可執(zhí)行權限
指定umask進行修改河爹,將umask指定為0011
0777-0011 = 0766(目錄) 0666(文件)
6、文件搜索
find
用法如下:
find 在哪找 怎么找 找什么
在哪找:就是一個路徑桐款,默認是當前路徑
怎么找:按照名字咸这、大小、用戶魔眨,其實就是參數
-name : 按照名字找
-size : 按照大小找
-user : 按照用戶找
-group : 按照組找
-maxdepth : 查找最大目錄級別
-mindepth : 查找最小目錄級別
找什么:1.mp3 *.txt
find / -name dudu.py
find / -size 10k 等于10k的文件
+10k 大于10k的文件
-10k 小于10k的文件
find / *.txt -user liuyan
find / -maxdepth 3 -mindepth 2 -name *.txt 找指定級別的文件
day09-linux
1媳维、文件內容搜索
grep 內容 文件路徑
參數:
-i :忽略大小寫
--color=auto : 顏色自動提示,將grep設置為默認顏色提示遏暴,其實就是可以給grep指令器別名
vi ~/.bashrc ?
添加一句 alias grep='grep --color=auto'
source ~/.bashrc 讓添加的指令生效
-n : 顯示內容出現(xiàn)的行號 (grep -n 內容 文件路徑) --->必須空一格
-l : 顯示內容出現(xiàn)在的文件名 (grep -l 內容 文件路徑)
-c : 顯示出現(xiàn)該內容的次數 (grep -c 內容 文件路徑)
grep 王者榮耀 1.txt --->找出在文件1.txt中包含王者榮耀的句子
grep 王者榮耀 *.txt --->找出在所有txt文件中包含王者榮耀的句子
grep 王者榮耀 ~/.txt --->找出所有家目錄下中包含王者榮耀的句子
也可以寫正則表達式, 注意使用 -P
電話號碼的正則表達式:13838384380
\d{11}
^1\d{10} 3456789
^1[3-9]\d{9}
郵箱的正則表達式: test@qq.com duduxixi@163.com lalahehe@sina.cn
\w+@\w+\.(com|cn|net)
grep -P '1[3-9]\d{9}' 3.txt (正則表達式查看侄刽,P必須大寫)
grep -E '1[3-9]\d{9}' 3.txt (-E的效果一樣)
2、管道
格式: 指令1 | 指令2
指令1的輸出作為指令2的輸入朋凉,指令2的輸出顯示到屏幕中
常用的管道指令有:
ls -l /etc | less
ls -l /etc | head -5 顯示內容中的前5行
ls -l /etc | tail -5 顯示內容中的后5行
ls -l /etc | head -10 | tail -5 顯示內容中前10行中的后5行(即6-10行)
ls -l /etc | grep 找的內容 顯示查找的內容
查看進程相關
ps -ef | grep ssh
3州丹、搭建主機信任
密碼學的內容--->加密-解密,用到一個東西 --->秘鑰
加密-解密的秘鑰相同--->對稱加解密
加密-解密的秘鑰不相同--->非對稱加解密
一對秘鑰包括:公鑰和私鑰
公鑰:給你們杂彭,你們拿的都是公鑰
私鑰:我自己擁有墓毒,
公鑰加密-私鑰解密,
私鑰加密-公鑰解密
實現(xiàn)免密碼登錄亲怠,linux1登錄linux2所计,實現(xiàn)免密碼登錄:
(1)在linux1上,生成公鑰和私鑰
ssh-keygen 一路敲enter即可
(2)來到生成秘鑰的文件中
id_rsa : 私鑰
id_rsa.pub : 公鑰
(3)復制公鑰
cat id_rsa.pub 顯示公鑰的內容团秽,點右鍵復制
(4)來到linux2中
vi ~/.ssh/authorized_keys
將公鑰粘貼進來即可
這樣在通過linux1登錄linux2的時候就實現(xiàn)了免密碼登錄
6主胧、scp
scp:基于ssh的cp钾腺,cp是實現(xiàn)本機之間來回拷貝,scp是在兩臺linux之間進行拷貝
scp的用法:
scp 源路徑 目標路徑
scp 1.txt root@ip地址:路徑
如果發(fā)送文件夾讥裤,需要添加 -r 選項
scp -r 1.txt root@10.7.181.10:/root
linux和linux之間使用scp進行互發(fā),如果搭建了主機信任姻报,不用輸入密碼
winscp己英,實現(xiàn)windows和linux之間使用scp進行互發(fā)
安裝,使用即可吴旋,左邊:windows目錄损肛,右邊:linux目錄,相互拖動即可
4荣瑟、重定向
標準輸入(stdin, 鍵盤)治拿、標準輸出(stdout, 屏幕)
輸出重定向:意思就是不輸出到屏幕,輸出到其他地方
ls -l > 1.txt >作用:首先清空文件笆焰,然后寫入文件
ls -l >> 1.txt >>作用:追加內容
錯誤重定向:指令有錯劫谅,錯誤信息顯示到哪里
ls /lala 2> 1.txt 將錯誤信息顯示到指定文件中
ls /lala 2>> 1.txt 將錯誤信息追加到指定文件中
5、掛載嚷掠、磁盤相關指令
掛載:神馬意思捏检?看圖形
將u盤和目錄對應的過程就是掛載
(1)插上u盤
u盤只能讓你的linux識別,如果是虛擬機不皆,在虛擬機設置里面點擊讓虛擬機識別贯城,
(2)linux識別成功之后,通過指令查看你的設備
fdisk -l
/dev/sda 就是linux系統(tǒng)的硬盤設備
如果有分區(qū) /dev/sda1 /dev/sda2 xxx
u盤設備往下走
/dev/sdb 就是你的u盤設備
如果有分區(qū) /dev/sdb1 /dev/sdb2
掛載u盤
mount -t 需要掛載的設備 掛載點
auto : 自動識別
vfat : fat32
ntfs-3g : ntfs格式 需要插件支持
-o iocharset=utf8 如果有中文霹娄,可以指定字符集
mount /dev/sdb1 /mnt/usb
取消掛載能犯,不能再掛載的目錄中取消掛載
umount /dev/sdb1 /mnt/usb
umount /dev/sdb1
umount /mnt/usb
如果取消掛載時候顯示該設備正在忙,需要輸入指令把使用的進程給干掉犬耻,再取消掛載即可
fuser -m -k /mnt/usb
和磁盤相關的指令
df
顯示當前可用的設備的使用情況
-h 人性化的顯示大小
du
當前目錄的使用情況
-h 人性化的方式顯示大小
配置開機掛載
vi /etc/fstab
添加一行信息
/dev/sdb1 /mnt/usb vfat defaults 0 0
7踩晶、軟硬鏈接
link,為了解決文件的共享問題香追,引入了鏈接機制合瓢。分為軟鏈接和硬鏈接,以軟鏈接使用居多
硬鏈接
ln 源文件 目標文件
也可以使用link
鏈接之后透典,目標文件和源文件內容相同晴楔,修改其中一個,另外一個也被修改
在ll之后峭咒,可以看見硬鏈接個數税弃,增加
刪除其中一個,另外一個不受影響
可以理解為凑队,給一個文件起了一個外號则果、別名
【注1】不能給目錄創(chuàng)建
【注2】創(chuàng)建完硬鏈接之后幔翰,你的用戶名和組信息不變
軟鏈接
ln -s 源文件 目標文件
軟鏈接創(chuàng)建之后,修改其中一個西壮,另一個也修改
【注1】可以給目錄創(chuàng)建
【注2】創(chuàng)建完之后遗增,用戶和組信息是創(chuàng)建時候的信息
軟硬鏈接的不同之處
在linux里面,存放一個文件款青,由三部分組成做修,一個文件名,一個是文件索引(inode)抡草,一個是數據部分
見百鳥朝鳳圖
8饰及、壓縮和解壓(很常用)
在linux里面,常見壓縮格式有兩種康震,一種叫做gz燎含,一種叫做bz2
gzip\gunzip(后綴名是.gz)
gzip 文件1 文件2
生成之后,源文件不在了腿短,只有壓縮文件屏箍,每一個都生成一個壓縮文件
gunzip 文件
不能實現(xiàn)打包壓縮,不能實現(xiàn)保留源文件
bzip2\bunzip2(后綴名是.bz2)
bzip2 文件1 文件2
每一個生成一個壓縮文件
-k : 保留源文件
bunzip2 壓縮文件1 壓縮文件2
tar(可以實現(xiàn)壓縮和解壓橘忱,可以實現(xiàn)打包的功能)
如果打包壓縮使用的gzip壓縮的铣除,那么后綴名 .tar.gz .tgz
如果打包壓縮使用的bzip2壓縮的,那么后綴名 .tar.bz2
常用的參數有:
-z : 使用gzip壓縮
-j : 使用bzip2壓縮
-f : 打包壓縮的時候指定壓縮后的文件名
-c : 打包文件
-x : 解壓縮使用的
-v : 壓縮和解壓縮時候顯示進度
打包使用gzip壓縮:
tar -zcvf 壓縮后的名字.tar.gz 文件1 文件2 文件3
使用gzip解壓縮
tar -zxvf 壓縮包.tar.gz
打包使用bzip2壓縮
tar -jcvf 壓縮后的名字.tar.bz2 文件1 文件2 文件3
使用bzip2解壓縮
tar -jxvf 壓縮包.tar.bz2
9鹦付、軟件安裝之yum安裝
紅帽系列軟件安裝使用 yum安裝
大便系列軟件安裝使用 apt-get安裝
去哪下載軟件呢尚粘?yum源,這個源在哪呢敲长?默認都有自己的源郎嫁,但是這個源是在國外的。所以使用linux經常將源設置為國內源祈噪,阿里源泽铛、清華源、搜狐源辑鲤、網易源盔腔、中科大源
如何配置為國內源?
打開阿里源月褥,點擊幫助
(1)mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
(2)下載對應的源配置文件
wget是一個專業(yè)的下載軟件弛随,但是需要安裝
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
或者
curl是自帶的,不用安裝
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
(3)執(zhí)行
如果是本地宁赤,需要網絡舀透,吃飯的時候執(zhí)行,晚上執(zhí)行决左,熱點執(zhí)行
yum clean all
yum make cache
day10-linux
1愕够、軟件安裝
(1)yum安裝(多)
安裝: yum install -y 包名 中間一路yes
卸載: yum remove -y 包名
可以只下載安裝包走贪,不安裝
yum install -y --downloadonly --downloaddir=./ wget
下載就是.rpm的包。
(2)rpm安裝(一般不用惑芭,依賴軟件太多)
不論你用的是yum還是用的rpm安裝坠狡,其實安裝的都是rpm包。在linux里面遂跟,安裝軟件的時候擦秽,不僅僅是安裝這么一個軟件,與之對應的要按照很多的依賴軟件
a ==》 b===》c==》d
如果使用rpm安裝漩勤,你要知道軟件依賴關系才能安裝,但是使用yum的話缩搅,不用知道依賴關系,yum自動為你解決
比如 yum install -y --downloadonly --downloaddir=./ vim
包含vim的包以及vim依賴的包,全部下載下來之后放接,估計10個包倘感,這10個都是rpm,請問先裝哪個后裝哪個堂鲤。
yum install -y vim 依賴關系自動解決
-ivh :安裝 rpm -ivh 包.rpm
-e :卸載 rpm -e wget
-ql : 列出包安裝路徑 rpm -ql wget
-qi : 列出指定包的詳細信息 rpm -qi wget
(3)編譯安裝(多)
相對來說亿傅,編譯安裝是需要編譯源碼的,安裝的軟件更加適合你的電腦瘟栖,你的軟硬件環(huán)境葵擎,更加的穩(wěn)定,相比較yum來說穩(wěn)定
編譯安裝3個步驟:
(1)配置
./configure --prefix=你安裝路徑(/user/local/mysql) --以及其它參數
(2)編譯
linux里面的軟件都是使用c半哟、c++寫的酬滤,所以你得有編譯器
gcc gcc-c++
yum install -y gcc gcc-c++
make
(3)安裝
make install
走完一步之后,可以執(zhí)行一個指令 echo $? ,如果返回0寓涨,代表上面指令執(zhí)行成功盯串,如果返回其它,說明執(zhí)行失敗
指令可以連寫: make && make install
安裝ntfs-3g
安裝python
2戒良、服務和進程相關指令
linux的啟動等級体捏,打開這個文件 vi /etc/inittab
0 : 關機等級
1 : 單用戶模式
2 : 多用戶的無網絡模式
3 : 多用戶模式,有網絡
4 : 保留模式
5 : 界面模式
6 : 重啟模式
切換等級 init 0 init 1 init 6
查看當前等級 runlevel who -r
whoami : 我是誰糯崎,查看當前用戶
查看隨開機啟動的服務
chkconfig --list
隨開機啟動的服務几缭,我們給他們起了一個非常好聽的名字,守護進程(daemon)
sshd httpd mysqld 其實就是一個隨機開機啟動的服務
開啟沃呢、關閉服務
要有控制開啟奏司、關閉服務的腳本,比如iptables(防火墻)
/etc/init.d/iptables start | stop | restart
/etc/init.d/network start | stop | restart
經常找腳本樟插,太不方便了韵洋,將服務腳本放到 /etc/init.d ,如果支持服務模式竿刁,那么就可以使用如下指令開啟和關閉
service iptables start | stop | restart
service network start | stop | restart
一般情況,安裝服務的時候搪缨,控制服務的腳本在安裝包就有食拜,但是有的沒有,比如nginx沒有
自己按照的服務副编,你就可以將腳本放到 /etc/init.d 里面负甸,然后通過service控制它的開啟和關閉 service nginx start
自己按照的服務隨開機啟動
chkconfig nginx on 默認設置的等級為2345
chkconfig nginx off
還得給腳本權限,權限一般設置為755
通過chkconfig --list 查看有沒有配置成功
進程相關指令
top : 實時查看系統(tǒng)的運行情況
w :查看系統(tǒng)的當前用戶的鏈接情況
free : -h 內存的使用情況
ps : 查看進程相關信息
ps -ef | grep ssh
ps aux | grep ssh
kill : 殺死一個進程
kill -9 進程id
netstat -lnp : 查看網絡和端口使用情況
netstat -lnp | grep 80
3痹届、shell簡介(了解一下)
shell編程 wget url 包.tar.gz
python break : 終止循環(huán)
continue : 結束當次循環(huán)呻待,進入下一次循環(huán)
4、ftp服務搭建
ftp是什么队腐?文件傳輸協(xié)議蚕捉,用在將本地文件上傳到服務器
1、ftp搭建
關閉防火墻和selinux
setenforce 0
依賴 gcc和openssl-devel和perl
0柴淘、yum install -y gcc openssl-devel perl
1迫淹、去pureftp官網
download==》releases==》pure-ftpd-1.0.41.tar.gz
2、下載
wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.41.tar.gz
3为严、解壓
tar -zxvf 文件名
4敛熬、配置
./configure #進行配置 -h 查看配置參數
--prefix=/usr/local/pureftpd #安裝目錄
--without-inetd #不使用ineted 超級服務器管理
--with-altlog #采用alt日志
--with-puredb #采用puredb來存儲ftp虛擬用戶信息
--with-throttling #開啟帶寬控制
--with-tls #開啟ftps支持
./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-tls
echo $? 如果是0說明上一步成功,其它為錯誤
make && make install
5第股、修改配置文件
cd configuration-file/
mkdir /usr/local/pureftpd/etc 創(chuàng)建目錄
cp pure-ftpd.conf /usr/local/pureftpd/etc/
修改:vi /usr/local/pureftpd/etc/pure-ftpd.conf 如下
在文件最后添加如下兩行
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
PIDFile /var/run/pure-ftpd.pid
6应民、拷貝控制文件
cp pure-config.pl /usr/local/pureftpd/sbin/
chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
7、啟動服務
cd /usr/local/pureftpd
./sbin/pure-config.pl ./etc/pure-ftpd.conf
檢查:ps -ef | grep ftp
8夕吻、添加管理用戶
useradd test
mkdir -p /var/www/html/
chown -R test:test /var/www/html/
./bin/pure-pw useradd ftp_user1 -u test -d /var/www/html
ftp_user1:ftp登錄用戶名
-u:指定系統(tǒng)中存在的用戶
-d:指定訪問的目錄
9瑞妇、創(chuàng)建虛擬的用戶數據庫
./bin/pure-pw mkdb
/usr/local/pureftpd/bin/pure-pw list #查看用戶列表
/usr/local/pureftpd/bin/pure-pw userdel 用戶名 #刪除用戶
10、通過ftp鏈接工具(FileZilla)測試
5梭冠、nfs搭建
nfs是什么辕狰?可以實現(xiàn)linux之間的文件共享
nfs客戶端還有服務端
nfs搭建教程
服務器上操作
關閉防火墻 service iptables stop
關閉selinux setenforce 0
1、yum install -y nfs-utils
2控漠、編輯配置文件
vi /etc/exports
/nfstest 10.0.144.0/24(rw,sync)
要共享的目錄 網段
3蔓倍、創(chuàng)建目錄
mkdir /nfstest
vi /nfstest/lala.txt
4、啟動服務
nfs是基于rpc協(xié)議的盐捷,所以首先啟動rpc
service rpcbind start
service nfs start
客戶端上操作
1偶翅、yum install -y nfs-utils
2、查看對應ip地址上面共享的目錄
showmount -e 10.0.144.156
3碉渡、掛載nfs
mount -t nfs 10.0.144.156:/nfstest /mnt/usb
mount -t nfs 10.7.181.94:/nfstest /mnt/usb
4聚谁、配置開機掛載
vi /etc/fstab
10.0.142.34:/test/ /root/nfs nfs defaults 0 0
6、nginx服務搭建
nginx是什么? web服務器 apache打交道
nginx服務器的根目錄(www)在 /usr/local/nginx/html
ip:端口 域名(jd.com baidu.com taobao.com mi.com)
sb.com
DNS服務商滞诺,阿里云形导、騰訊云都有
一個服務器是否能放多個網站呢环疼?可以的,配置虛擬主機
nginx安裝
1朵耕、關閉防火墻和selinux
2炫隶、安裝依賴軟件
yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel
3、tar -zxvf nginx-1.11.5.tar.gz
4阎曹、創(chuàng)建www用戶伪阶,不允許以www用戶登錄系統(tǒng)
useradd www -s /sbin/nologin
5、./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
6处嫌、make && make install
7栅贴、cp nginx /etc/init.d/
8、開啟服務
service nginx start
9熏迹、設置開機啟動
chkconfig nginx on
chkconfig --list 查看是否開機啟動
10檐薯、查看網絡和端口使用情況
netstat -lnp | grep nginx
nginx默認監(jiān)聽的端口為80端口
虛擬主機配置步驟
(1)修改nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
在第116行加一行代碼
include vhost/*.conf;
(2)新建一個vhost文件夾
mkdir /usr/local/nginx/conf/vhost
(3)來到vhost下,新建一個虛擬主機配置文件
vi /usr/local/nginx/conf/vhost/www.lala.com.conf
server
{
server_name www.lala.com;
root html/lala;
index index.html;
}
[說明]:
server_name : 域名
root : 網站的根目錄
index : 網站的默認首頁
(4)新建虛擬主機根目錄
mkdir /usr/local/nginx/html/lala
vi /usr/local/nginx/html/lala/index.html
service nginx restart 重啟服務
(5)編輯本機的hosts文件
C:\Windows\System32\drivers\etc\hosts
10.9.151.154 www.lala.com
Python搭建教程
1癣缅、下載源碼
Gzipped source tarball 這種后綴是 .tar.gz
yum install -y zlib* (必須的哥們)
tar -zxvf Python-3.6.4.tgz
cd Python-3.6.4
編譯
./configure --prefix=/usr/local/python3 --enable-optimizations
(必須的)
vi Modules/Setup
將第366行的那個#號去掉
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
make && make install
2、鏈接過來指令包
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
終端輸入python3,即可進入python3的終端模式
3哄酝、pip3設置
find / -name pip3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
pip3 -V 查看pip3版本信息
升級pip
pip3 install --upgrade pip
CentOS和Ubuntu的區(qū)別
1. centos中新建的非root用戶是沒有sudo的權限的友存,如果需要使用sudo權限必須在/etc/sudoers 中加入賬戶和權限,所以切換到root賬號的時候只需要輸入:su陶衅,加入root賬號的密碼即可屡立。 在Ubuntu中,一般使用sudo+命令搀军,如果是第一次使用會提示輸入當前用戶的密碼(而不是root的密碼)
2. 在線安裝軟件中膨俐,centos使用的是yum命令,而ubuntu中使用的是apt-get命令罩句。除此之外yum中還有一個從軟件源中搜索摸個軟件的方法:yum search + 軟件名
CentOS7.0系列新指令:
centos7.0 沒有netstat 和 ifconfig命令問題
yum -y install wget
yum -y install net-tools
centos7.0服務管理相關指令
https://www.cnblogs.com/lgqboke/p/6069170.html
7焚刺、各系統(tǒng)指令區(qū)別總結
centos6.8
centos7.0
ubuntu16.04
需要執(zhí)行的下載指令有
yum install -y gcc gcc-c++
yum install -y zlib*
yum install -y nfs-utils
yum install -y gcc openssl-devel perl
yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel
環(huán)境變量和shell編程
1. 環(huán)境變量
環(huán)境變量用來存儲工作環(huán)境信息的變量,主要分為系統(tǒng)全局變量和用戶級全局變量
-
全局變量
常見的全局環(huán)境變量 : PATH 指令的搜索路徑 HOME 用戶的工作目錄 LOGNAME 用戶的登錄名 SHELL 當前系統(tǒng)shell類型 #使用全局變量 echo $PATH #顯示單個全局變量,注意使用全局變量门烂,必須加$ export name='hello' #設置新的全局變量 #系統(tǒng)級全局變量 這類變量對系統(tǒng)內的所有用戶都生效乳愉,所有用戶都可以使用這類變量。 這類變量在/etc/profile文件中設置屯远,只有root用戶才能設置 vim /etc/profile export a=100 :wq #存盤退出蔓姚,這個時候a不會立即生效,應該是有 source /etc/profile #單用戶級全局變量 在用戶主目錄內有三個文件 ~/.bash_profile慨丐、~/.bashrc和~/.profile 在這個文件中定義變量只針對當前用戶坡脐,添加方式同系統(tǒng)級全局變量
-
添加PATH環(huán)境變量
echo $PATH #x顯示全局PATH環(huán)境變量 #1 臨時設置 PATH=$PATH:/home/csl #將/home/csl添加到系統(tǒng)環(huán)境變量,只針對當前登錄有效 #2 對所有用戶永久有效 vi /etc/profile export PATH=$PATH:/usr/local/sysbench/bin source /etc/profile # 3.對登錄用戶有效 # vi ~/.bashrc 在里面加入: export PATH=$PATH:/usr/local/mysql/bin source ~/.bashrc
2. shell編程
2.1 什么是shell
shell是一個命令解釋器房揭,將用戶輸入的命令解釋給操作系統(tǒng)內核备闲。
Shell既是一種命令語言晌端,又是一種程序設計語言。作為命令語言浅役,它類似于Windows下的cmd.exe斩松,可以交互式地解釋和執(zhí)行用戶輸入的命令;作為程序設計語言觉既,它定義了各種變量和參數惧盹,并提供了許多在高級語言中才具有的控制結構,但是Shell是不需要進行編譯的瞪讼,它是從腳本程序中一行一行的讀取并執(zhí)行命令钧椰。
Shell有兩種執(zhí)行命令的方式:交互式(Interactive),用戶輸入一條命令符欠,Shell就解釋執(zhí)行一條嫡霞;批處理(Batch),用戶事先寫一個Shell腳本(Script)希柿,其中有很多條命令诊沪,讓Shell一次把這些命令執(zhí)行完,而不必一條一條地敲命令曾撤。
2.2 常見的shell類型
Linux 的 Shell 種類眾多端姚,常見的有:
(1) BourneShell(sh):是由AT&T Bell實驗室的 Steven Bourne為AT&T的Unix開發(fā)的,它是Unix的默認Shell挤悉,也是其它Shell的開發(fā)基礎渐裸。Bourne Shell在編程方面相當優(yōu)秀,但在處理與用戶的交互方面不如其它幾種Shell装悲。
(2) BourneAgain Shell (即bash):是自由軟件基金會(GNU)開發(fā)的一個Shell昏鹃,它是Linux系統(tǒng)中一個默認的Shell。Bash不但與Bourne Shell兼容诀诊,還繼承了C Shell洞渤、Korn Shell等優(yōu)點。
(3) ash:ash Shell是由Kenneth Almquist編寫的属瓣,是Linux 中占用系統(tǒng)資源最少的一個小Shell您宪,它只包含24個內部命令,因而使用起來很不方便奠涌。
(4) CShell(csh):是加州伯克利大學的Bill Joy為BSD Unix開發(fā)的宪巨,共有52個內部命令,與sh不同溜畅,它的語法與C語言很相似捏卓。它提供了Bourne Shell所不能處理的用戶交互特征,如命令補全、命令別名怠晴、歷史命令替換等遥金。但是,C Shell與BourneShell并不兼容蒜田。該Shell其實是指向/bin/tcsh這樣的一個Shell稿械,也就是說,csh其實就是tcsh冲粤。
(5) KornShell(ksh):是AT&T Bell實驗室的David Korn開發(fā)的美莫,共有42 條內部命令,它集合了C Shell和Bourne Shell的優(yōu)點梯捕,并且與Bourne Shell向下完全兼容厢呵。Korn Shell的效率很高,其命令交互界面和編程交互界面都很好傀顾。
(6) zch:是Linux 最大的Shell之一襟铭,由Paul Falstad完成,共有84 個內部命令短曾。如果只是一般的用途寒砖,沒有必要安裝這樣的Shell。
- 可以使用系統(tǒng)變量SHELL查看當前使用的shell:echo $SHELL
- 也可以到/etc/shells文件里查看系統(tǒng)可以使用的shell
2.3 shell的交互方式
命令行
-
腳本執(zhí)行
- 編寫腳本嫉拐,文件后綴名一般為.sh
- 文件必須以#!/bin/bash開頭
- 添加腳本的可執(zhí)行權限
chmode +x 腳本名
- 執(zhí)行腳本:
- 在當前目錄里執(zhí)行:
./腳本名
- 在其他目錄中執(zhí)行:使用絕對路徑
- 在當前目錄里執(zhí)行:
#!/bin/bash #使用#注釋哩都,第一行是特殊存在 cd / ls -al :wq #存退出盤 chmod +x 1.sh #修改權限,添加可執(zhí)行權限 ./1.sh #執(zhí)行當前目錄下的shell腳本
2.4 定義變量
-
變量類型
- 局部變量:只在本shell中使用
- 環(huán)境變量 : 使用整個系統(tǒng),一般大寫
-
局部變量的使用
#1 定義局部變量 a=10 #注意等號兩邊不要留空格椭岩,否則會看成多個命令 b=$a #2顯示局部變量 echo $b echo $茅逮 echo "a=$a" #雙引號中的變量解釋 #3.銷毀變量 unset a #干掉一個變量璃赡,不要帶$符 #注意反引號判哥,反引號引起來的是命令,可以執(zhí)行碉考,將執(zhí)行結果給變量 d=`date` 【注】:等號兩邊不要留空格
-
位置變量
$0 表示腳本的名稱 $1-$9表示傳遞給腳本的的參數 #test.sh腳本 #!/bin/bash echo 'hello world' echo $0 $1 $2 執(zhí)行輸出: hello world ./test.sh lala dudu
-
特殊變量
$#表示傳遞給腳本的參數個數 $*表示傳遞給腳本的所有參數 $?表示上一個命令執(zhí)行的返回值塌计,返回值為0表示成功執(zhí)行,否則命令執(zhí)行錯誤
常量
readonly a=10 #定義常量 echo $a a='ll' #-bash: name: 只讀變量,不能修改
-
2.5 引號
- 雙引號中解釋變量侯谁,解釋轉義字符
- 單引號不解釋變量锌仅、不解釋轉義字符
- 反引號會執(zhí)行當中的內容
- 特殊字符要用反斜線轉義:& * ?| $ ^
2.6 字符串
- 計算字符串長度
${#字符串名}
- 提取子串:
${字符串名:start:len}
從下標為start開始墙贱,提取len個字符
2.7 數組
- 數組定義:a=(1 2 3) #千萬注意热芹,數值之間用空格分隔
- 獲取數組元素:${a[0]}
- 賦值$a[0]=100
- 獲取數組長度:
{#a[*]}
2.8 seq
- 生成連續(xù)整數
- 示例:
seq 1 10
,生成1-10的連續(xù)整數
2.9 運算
- 數學運算
shell默認所有變量都是字符串,執(zhí)行數學計算需要用[]括起來
a=100
echo $[$a+10]
echo $[$a/2]
echo $[$a*2]
echo $[$a-80]
echo $[10%2]
echo $((3+5))
echo $((10/2))
echo $((10/3)) #3 整除
echo $((10*3))
echo $((10%3))
let a=5+6
echo $a
let a+=10
echo $a
echo `expr 3 + 5` #也可以用expr進行計算
-
關系運算
運算符 說明 舉例 -eq ==惨撇,相等返回 true伊脓。 [ b ]
-ne !=,不相等返回 true魁衙。 [ b ]
-gt >
报腔,如果是株搔,則返回 true。[ b ]
-lt <纯蛾,如果是纤房,則返回 true。 [ b ]
-ge >=
翻诉,如果是炮姨,則返回 true。[ b ]
-le <=
米丘,如果是剑令,則返回 true。[ b ]
-
邏輯運算
運算符 說明 舉例 && 邏輯的 AND [[ b -gt 100 ]] 返回 false
|| 邏輯的 OR [[ b -gt 100 ]] 返回 true
-
字符串判斷
運算符 說明 舉例 = 檢測兩個字符串是否相等拄查,相等返回 true吁津。 [ b ] 返回 false。
!= 檢測兩個字符串是否相等堕扶,不相等返回 true碍脏。 [ b ] 返回 true。
-z 檢測字符串長度是否為0稍算,為0返回 true典尾。 [ -z $a ] 返回 false。 str 檢測字符串是否為空糊探,不為空返回 true钾埂。 [ $a ] 返回 true。 -
文件判斷
操作符 說明 舉例 -d file 檢測文件是否是目錄科平,如果是褥紫,則返回 true。 [ -d $file ] 返回 false瞪慧。 -f file 檢測文件是否是普通文件(既不是目錄髓考,也不是設備文件),如果是弃酌,則返回 true氨菇。 [ -f $file ] 返回 true。 -r file 檢測文件是否可讀妓湘,如果是查蓉,則返回 true。 [ -r $file ] 返回 true榜贴。 -w file 檢測文件是否可寫豌研,如果是,則返回 true。 [ -w $file ] 返回 true聂沙。 -x file 檢測文件是否可執(zhí)行秆麸,如果是,則返回 true及汉。 [ -x $file ] 返回 true沮趣。 -s file 檢測文件是否不為空(文件大小是否大于0),不為空返回 true坷随。 [ -s $file ] 返回 true房铭。 -e file 檢測文件(包括目錄)是否存在,如果是温眉,則返回 true缸匪。 [ -e $file ] 返回 true。
2.10 分支語句
-
if-else
a=100 if [ $a -gt 90 ] then echo "a>90" else echo "a<=90" fi
-
case
case $變量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默認執(zhí)行的命令序列 ;; esac
1 #!/bin/bash 2 case $1 in 3 start | begin) 4 echo "start" 5 ;; 6 stop | end) 7 echo "stop" 8 ;; 9 *) 10 echo "I don't know" 11 esac
2.11 循環(huán)語句
for 變量 in 列表
do
command1
command2
...
commandN
done
示例:
for i in 1 2 3 4 5;do
echo $i
done
#從命令讀取值
for line in `cat 1.txt`;do
echo $line
done
#讀取目錄列表
for file in ~/*;do
echo $file;
done
for i in `seq 1 100`;do
let sum+=$i
done
#遍歷數組
for x in ${a[*]};do
echo $x;
done
- while
#當型循環(huán)
while condition
do
command
done
sum=0
i=0
while [ $i -lt 10];do
let sum+=$i
let i+=1
done
- until
#直到型循環(huán)
#condition為假執(zhí)行循環(huán)类溢,為真停止
until condition
do
command
done
until [ ! $i -lt 10 ];do
echo $i;
let i+=1;
done
2.12 break和continue
和以前的用法一模一樣
2.13 函數
- 函數必須先定義后使用
#函數定義
test()
{
echo "簡單函數"
}
#函數調用
test()