一昌粤、linux命令
Linux是一個內(nèi)核
內(nèi)核是一個操作系統(tǒng)的核心
現(xiàn)實(shí)中熱門的操作系統(tǒng)有:windows(個人)、ios蘋果啄刹、liunx(安卓婚苹、鴻蒙、麒麟鸵膏、歐拉)
企業(yè)服務(wù)器有的多的有:centos膊升、紅帽、ubantv谭企、debian(kaili)
服務(wù)器:是一個工業(yè)級的電腦廓译,從物理結(jié)構(gòu)上來看我們個人電腦沒有一模一樣,區(qū)別性能更強(qiáng)
工業(yè)生產(chǎn):我們公司跑的網(wǎng)站债查,用的app非区,小程序等等線上業(yè)務(wù)
集群:多臺電腦協(xié)作完成一件事,對外用戶提供服務(wù)
Linux下管理員root
windows下管理員角administrator(admin)
我們電腦網(wǎng)卡兩個
eth0(linux):作用是將我們的設(shè)備和網(wǎng)絡(luò)中的其他設(shè)備聯(lián)系起來
lo網(wǎng)卡(windows):默認(rèn)127.0.0.1盹廷,設(shè)備的自檢網(wǎng)卡
容災(zāi)思想(如何甩鍋):如果這個業(yè)務(wù)產(chǎn)生了故障征绸,你怎么保證它的數(shù)據(jù)安全
操作系統(tǒng)里的命令分:內(nèi)部命令和外部命令
內(nèi)部:ip a
外部:ifconfig
type可以查看命令是否時內(nèi)部、外部命令
liunx:用的解析器角shell(又叫bash)
Inodo:相當(dāng)于身份證
access:訪問時間
modify:內(nèi)容修改時間
change:文件的內(nèi)容和屬性信息的改變(數(shù)據(jù)信息和元數(shù)據(jù)信息)
打開VMware-->打開終端俄占,或者打開遠(yuǎn)程連接工具練級liunx
type是可以查看命令是否是內(nèi)部命令還是外部命令
1管怠、查看IP命令、網(wǎng)卡情況和系統(tǒng)應(yīng)用
查看IP:ifconfig
查看系統(tǒng)應(yīng)用啟動與關(guān)閉:chkconfig
開啟應(yīng)用:chkconfig --level=5 應(yīng)用 on
關(guān)閉應(yīng)用:chkconfig --level=5 應(yīng)用 off
網(wǎng)卡情況:ip a
# hostname弊端為查所以IP缸榄,當(dāng)前如果是自己練習(xí)可以使用查ip渤弛。
# 工作中有多個IP,就不適合
查IP:hostname -I
2甚带、連網(wǎng)與斷網(wǎng)命令
連網(wǎng):ifup eth0
斷網(wǎng):ifdown eth0
3她肯、查看當(dāng)前處于的位置、當(dāng)前路徑下有什么
當(dāng)前位置:pwd
當(dāng)前路徑下有:ls
ls -a #查看當(dāng)前路徑下所以的內(nèi)容鹰贵,a表示all
ls -l (簡寫ll)
# ll查詢的結(jié)果晴氨,總共7部分
1權(quán)限 2硬鏈接數(shù) 3屬主 4屬組 5文件大小 6上次修改文件時間 7文件名
ls --help # 查看命令的幫助
ls -lh # 人性化的方式顯示
ls -d test # 查看當(dāng)前文件的信息
4、查看當(dāng)前網(wǎng)絡(luò)情況碉输、結(jié)束進(jìn)程和查看端口
ping命令是
結(jié)束進(jìn)程:CTRL+C
例如:ping 網(wǎng)站(www.baidu,con)
# 查看端口
netstat -antup | grep "端口名稱"
netstat -antup | grep "httpd" # 查看httpd的端口
5籽前、路徑切換
cd命令
切換到根目錄:cd /
切換到上一級:cd ..
cd 目標(biāo)路徑
cd
cd - # 切換到上一次的訪問路徑
6、創(chuàng)建文件夾(目錄)和創(chuàng)建文件(.txt類型)
創(chuàng)建目錄:mkdir 目錄名稱
創(chuàng)建文件:touch 文件名稱
例如:
創(chuàng)建test目錄:mkdir test
創(chuàng)建多個目錄:mkdir test test1 test2
mkdir test{0..5}
mkdir -p ./test/testt # 創(chuàng)建多層文件(套娃)
創(chuàng)建test.txt文件:touch test.txt
創(chuàng)建多個文件: touch test.txt tset1.txt test2.txt
touch test{0..6}.txt
#在同一目錄下不能用相同的目錄或文件名稱
7、刪除
# rm命令:
rm 文件名稱
例如:刪除test(目錄)
rm test
rm -r test
rm -rf test
# -f :非交互強(qiáng)制刪除
# -r:刪除目錄(rm -rf 一起使用)
# -r:遞歸
8聚假、復(fù)制
# cp命令 cp還具有改名功能
cp 源文件路徑 目標(biāo)文件路徑
例如:把test.txt復(fù)制到test里
cp test.txt test
cp -r test test # -r 忽略目錄 復(fù)制目錄test到test
# -r:遞歸
例如:把test.txt復(fù)制到test中.并test.txt修改ttt.txt
cp test.txt test/ttt.txt
例如:復(fù)制時不改變文件屬性
cp -p test.txt test
9块蚌、剪切
# mv命令 還可以修改名稱
mv 源文件路徑 目標(biāo)文件路徑
例如:把test.txt剪切到test里
mv test.txt test
例如:把test.txt剪切到test里,并修改test.txt為ttt.txt
mv test.txt test/ttt.txt
10膘格、輸入輸出
#echo命令
echo 字段 文件名
echo 字段
例如:顯示在終端
echo “hello word”
例如:寫入test.txt
echo "hello word" test.txt
# 輸出結(jié)果有換行輸出
echo -e "hello word \n hello yunjisuan"
11峭范、查看文件內(nèi)容
# cat命令、head命令瘪贱、tail命令
# cat:查看全部
# head:默認(rèn)查看前10行
# tail:默認(rèn)查看末尾10行
例如:查看test.txt
cat test.txt # 全部
head test.txt # 前10行纱控,默認(rèn)前10行
tail test.txt # 后10行,默認(rèn)后10行
# head和tail還有 -n命令
例如: 查看test.txt的前20和查看后20行
head -20 test.txt # 前20行
tail -20 test.txt # 末尾20行
head -20 test.txt;tail -20 test.txt # 前20末尾20行
例如:查詢test.txt中的30行到40行的內(nèi)容
head -40 test.txt | tail -11
例如:查詢并查詢行號
cat -n test.txt # n表示的是number的意思
nl test.txt # nl表示 cat -n 的縮寫
例如:可以查看test.txt隱藏的特殊符號
cat -A test.txt # 可以查看隱藏的特殊符號
例如:到這輸出test.txt
tac test.txt # 從最后一行正著輸出
例如:實(shí)時監(jiān)控test.txt結(jié)尾的文件清空并關(guān)閉
tail -f test.txt # 實(shí)時監(jiān)控test.txt的末尾行情況
CTRL+C # 停止監(jiān)控
例如:以空格出頁數(shù)
more test.txt # 空格換頁菜秦,只能向下翻頁
例如:按光標(biāo)查詢
less test.txt # 按光標(biāo)滾輪上下翻頁 點(diǎn)q退出
12甜害、find命令
#find命令類型
find 當(dāng)前路徑 -type f或者d
find . -name 目標(biāo)文件名稱
例如:查找test中的test.txt
find . -name "test.txt"
例如:查找當(dāng)前路徑下的文件(.txt類型)或者目錄(文件夾)
find . -type f #查找文件
find . ! -type f #查找當(dāng)前路徑下所以不是文件的文件
find . -type d #查找目錄(文件夾)
#加其他用法
例如:刪除當(dāng)前目錄下的.txt類型的文件
find . -name "*.txt" -type f -exec rm -rf {} \;
find . -name "*.txt" -type f | xargs rm -rf
例如:移動剪切到/tmp中
find . -name "test*" -type f | xargs -i mv {} /tmp \;
find . -name "*.txt" -type f -exec mv {} /tmp \;
#刪除.txt類型的文件
find . -name "*.txt" -type f -exec rm -rf {} \;
# 按大小查詢
find . -size +M或者-M (+表示大于,-表示小于)
# 按用戶查找
find . -user 用戶名 # 按用戶查找
# 按時間查找
find . -mtime n # 按照時間查找 n表示天數(shù)1表示訪問一天
# 按當(dāng)前文件下遞歸2此查詢
find . -maxdepth 2 # 向下遞歸幾層目錄來查詢
# find中有兩個特殊的-a和-o:
# -a:默認(rèn)并且
# 查找當(dāng)前目錄下所以為test的文件
find . -type f -a -name "test"
find . -type f -name "test"
# -o:或者
# 查找當(dāng)前目錄下所以文件或者名字為test的目錄
find . -type f -o -name "test"
# 以inode號976423查文件
find / -inum 976423
13球昨、grep命令
#grep命令類型
grep 目標(biāo)字段 目標(biāo)文件(.txt)
例如:查看test.txt中含有t
grep "t" test.txt # 過濾只有t的一行內(nèi)容
grep -n "t" test.txt # 過濾并顯示有t那一行內(nèi)容并顯示行號
grep -v "t" test.txt # 過濾沒有t的一行內(nèi)容
grep -A 10 "11" test.txt # 10行后11行的內(nèi)容
grep -B 10 "11" test.txt # 10行前11行的內(nèi)容
grep -C 10 "11" test.txt # 10的前后各11行內(nèi)容
grep -o "adc{2,4}" test.txt # 只顯示test.txt中的adcc尔店、adccc、adcccc
grep -w "ab" test.txt # 精準(zhǔn)查找test.txt中的ad
ls | grep -l "ab" # 查找當(dāng)前路徑下顯示含有匹配內(nèi)容的文件名
# 查找test.txt中a主慰、aa嚣州、aaa、aaa共螺、aaaa该肴、..等的字符
grep -E "a+" test.txt # E擴(kuò)展正則,+表示匹配前一個字符一次或無限次
egrep "a+" test.txt # egrep 是 grep -E 的縮寫
# 大小寫
grep "SEK" test.txt # 大小寫必須清楚
grep -i "sek" test.txt # -i 忽略大小寫
# 顏色查詢
alias grep="grep --color=auto" # 給grep復(fù)制
alias grep="grep" # 返回默認(rèn)grep
grep "t" test.txt # 接上一行g(shù)rep查詢test.txt中查詢t并賦給它顏色
# 查詢文件中的(點(diǎn)字符)
grep "\." test.txt # 查詢文件中含有 . 的內(nèi)容 藐不, 這里的 \ 表示轉(zhuǎn)換
grep "abc*" test.txt # 查詢含有abc*匀哄,*表示多個c,這里就是正則的表示
grep "." test.txt # . 表示任意一個字符(正則) 這里的 . 等于 通配符中的 雏蛮?
# 查詢ab涎嚼?的結(jié)果
grep "ab[abcde]" test.txt
grep "ab.*" test.txt # 正則 .* 表示表示任意,相當(dāng)于通配符中的*
# 取反
grep "ab[^c]" test.txt # 取abc的相反值
# 查找test.txt只顯示匹配adcc底扳、adccc和adcccc的字符
grep -o "adc{2,4}" test.txt # 只顯示匹配字符
# 過濾test.txt中的空行并顯示行號
grep -n "^$" test.txt
# 查找的test.txt中不顯示含有#和空行
grep -Ev "^$\#" test.txt
14铸抑、seq命令(隨機(jī)數(shù))
seq n(n表示隨機(jī)數(shù))
例如:輸出11個數(shù)
seq 11
例如:100個隨機(jī)數(shù)寫入test.txt
seq 100 > test.txt
15贡耽、xargs命令
數(shù)據(jù)橫向轉(zhuǎn)換
find . -type f | xargs grep 字段
#查詢出所以文件衷模,并查詢該字段
# find 查出的結(jié)果是豎著顯示,xargs是使豎向的結(jié)果橫向輸出
16蒲赂、sed
sed '區(qū)間' 要查的文件
# p表示行
# -n表示NO的意思
sed '70,80p' test.txt # 要查詢的雙倍顯示
例如:查詢test.txt中的70到80行
sed -n '70,80p' test.txt
例如:只查詢70行和八十行
sed -n '70p;80p' test.txt
#題型
sed -n '/test/p' test.txt # 查詢test.txt中有test字符的哪一行
sed -n '/test/p;/es/p' test.txt # 查詢test.txt中的test哪一行和es哪一行
sed -n '/test/,/es/p' test.txt # 查詢test.txt的test哪一行到es哪一行之間的內(nèi)容
sed '/test/d' test.txt # 取反阱冶,顯示沒有test字符的其他行,d表示刪除其他的
# 替換舊新內(nèi)容 ###號可以換成其他的字符
sed 's#舊內(nèi)容#新內(nèi)容#' test.txt
sed 's@test@hello@' test.txt # 每行只修改每行第一個匹配字符
sed 's$test$hello$g' test.txt # 修改全部匹配字符
# -i 的使用 是修改test.txt內(nèi)容
sed -i 's#test#hello#' test.txt # 修改test.txt中的匹配字符
# sed的-n和d不能連用
#####################################################################################
# sed命令中a的使用
sed '1a hello' test # 在文件的第一行的下一行加一行寫入hello
sed '1,3a hello' test # 從第1行到第3行的每個下一行加一行寫入hello
sed '1i hello' test # 在文件的第一行加hello
sed ‘$a ssss’ test # 在文本末尾加一行寫入ssss
sed '1 s/^/#/' test # 在行首插入#號,將第一行注釋掉
sed '5 s/^/#/' test # 將第5行注釋
sed '/postfix/ s/^/#/' test # 按字符所在的行注釋
sed ‘1,5 s/^/#/’ test # 按照范圍注釋
# sed命令中e的使用
sed -e '/postfix/ s/^/#/' -e '/shhd/ s/^/#/' test # 多條件替換
sed ‘2 s/$/hello/’ test # 行尾加hello
sed ‘1~2 s/^/#/’ test # 按照指定的步長取插入#滥嘴,注釋
sed ‘2c hello 222’ test # 替換第二行內(nèi)容為hello 222
# 按步長替換 (2~3表示第二行開始替換木蹬,每三行換一次)
#(還可以是1~4表示第一行開始,每4行替換一次))
sed ‘2~3c hello 222’ test
# 將test中指定內(nèi)容替換為空
sed 's#test##' test
# 將文本內(nèi)容保存成另一個文件
sed '1,3w 1.txt' test # 將文件test中1到3行內(nèi)容寫到1.txt中
sed '1,3r test' 1.txt # 將文件test讀到1. txt中
# sed的擴(kuò)展正則
# 先在當(dāng)前命令下創(chuàng)建100個文件 touch benen_data_{1..100}_make.txt
# 修改所以文件名稱中data給刪除
ls | sed -r 's#(.*)_(.*)_(.*)_(.*)#mv \0 \1_\3_\4#' | bash
# test文件中匹配的abc字符之后向下匹配兩行
sed -n ‘/abc/,+2p’ test
17若皱、awk
awk '區(qū)間' 文件
# NR在awk中表示行號
awk 'NR==90' test.txt # 查詢test.txt中的90行內(nèi)容
awk 'NR>90' test.txt # 查詢test.txt中的90行以后內(nèi)容
awk 'NR<90' test.txt # 查詢test.txt中的90行以前內(nèi)容
awk 'NR>=90' test.txt
awk 'NR<=90' test.txt
awk 'NR<90&&NR>10' test.txt # 查詢10行到90行之間內(nèi)容 &&表示并且的意思
awk 'NR<=90&&NR>=10' test.txt
awk 'NR>=90||NR<=10' test.txt # 查詢10行前的內(nèi)容和90行以后的內(nèi)容,||表示或者的意思
18镊叁、which 和 man
which # 查看命令的絕對路徑
例如:cp的絕對路徑
which cp
區(qū)別:絕對路徑cp執(zhí)行是非交互強(qiáng)制覆蓋
cp test.txt ttt # ttt 中有一個test.txt尘颓,覆蓋有是否確認(rèn)
/bin/cp test.txt ttt # ttt中有test.txt,覆蓋無確認(rèn)晦譬,直接覆蓋
man # 查看命令的詳細(xì)使用方法
man ls # ls 的使用使用方法
19疤苹、start
start test.txt # 查看文件的詳細(xì)情況
20、du
du test.txt # 是查看文件占用磁盤空間的大小
du -sh test.txt # 人性化顯示
21敛腌、kill 和 ps
ps aux # a 表示all u表示用戶 x表示執(zhí)行
ps -eLf # 查看線程
ps -elf # 查看父進(jìn)程
kill -9 3008 # 殺死3008這條進(jìn)程
kill -l 3008 # 重啟該進(jìn)程
kill -9 -t pts/2 # 殺掉異常終端
pkill -1 進(jìn)程號或者程序名稱 # 重啟該進(jìn)程
pkill -9 進(jìn)程號或者程序名稱 # 徹底殺死
# pkill 還可以殺掉異常終端
pkill -9 -t pts/2
22卧土、wc
wc test.txt # 查詢的結(jié)果 行數(shù) 單詞數(shù) 字符數(shù) 文件
wc -l test.txt # 文件行數(shù)
23、解壓和壓縮(打包和解包)
# 壓縮grup.conf
gzip grup.conf
# 解壓grup.conf
gzip -d grup.conf
unzip grup.conf # 解壓并保存原文件
unzip -d /tmp grup.conf # 解壓grup.conf到tmp中
gzip -9 grup.conf
# tar acvf 打包后文件存放的路徑 目標(biāo)文件的路徑
tar zcvf grup.conf.tar.gz grup.conf
# z:壓縮
# c:歸檔
# v:顯示打包過程(可省略)
# f:指向文件(最后放f)
tar tf benet.tar.gz # 打包
tar xf benet # 解壓
tar xf benet -C ./test # 解壓并改名
tar zcf benet.tar.gz bent/ --exclude = "grup.conf,gz"
24像樊、vi和vim
vi命令分為編輯模式尤莺、命令模式、末行模式
#####################################################
命令模式的操作:
j:向下移動光標(biāo)
k:向上移動光標(biāo)
h:向左移動光標(biāo)
l:向右移動光標(biāo)
u:撤銷操作
D和dd和ndd:刪除光標(biāo)及以后內(nèi)容生棍、刪除整行颤霎、刪除光標(biāo)后n行
# ndd(可以是任意數(shù)字,例如:2dd刪除光標(biāo)下2行內(nèi)容)
r和R:替換原內(nèi)容和進(jìn)入替換模式(esc健退出模式)
G和ngg:到文件末行和跳轉(zhuǎn)到n行()
nyy和p粘貼:復(fù)制n行涂滴,p粘貼
#####################################################
進(jìn)入編輯模式:
i和I:前面輸入和首行輸入
a和A:后面輸入和行尾輸入
o和O:下一行輸入和上一行輸入
#####################################################
進(jìn)入末行模式
set nu # 顯示行號
?字段 # 從下而上找 n鍵向上
/字段 # 從上而下找 n鍵向下
w鍵 # 保存
w鍵+q鍵 # 保存退出
q # 退出
q! # 強(qiáng)制不保存退出
s/// # 替換當(dāng)前行內(nèi)容
% s/// # 切換全部文件全部行
% # 表示全文捷绑,g表示整行替換
25、chmod和chown氢妈、umask
linux系統(tǒng)下的權(quán)限管理是靜態(tài)管理
軟連接相當(dāng)于Windows下的快捷鍵
軟連接在linux下是綠色的
socket : 守護(hù)進(jìn)程文件
我們在創(chuàng)建文件的時候粹污,已經(jīng)將文件的權(quán)限設(shè)定好了
一個文件有軟連接也有硬鏈接
在操作系統(tǒng)中權(quán)限以類型分類:
讀權(quán)限:不對文件產(chǎn)生修改的操作權(quán)限(讀)(r)(4)
寫權(quán)限:對文件產(chǎn)生修改的操作權(quán)限(增刪改)(w)(2)
執(zhí)行權(quán)限:運(yùn)行該文件的權(quán)限(在系統(tǒng)中文件默認(rèn)不具備執(zhí)行權(quán))(x)(1)
無權(quán)限:無(無)(-)(0)
-----------(使用ll查看文件或者目錄)(一般有11個)
第一部分:-(文件)、d(目錄)首量、l(軟鏈接)壮吩、p(管道文件)、s(socket通信套接字)加缘、
c(字符設(shè)備[鍵盤設(shè)備])鸭叙、b(塊設(shè)備文件)
第二部分:屬主(u)
第三部分:屬組(g)
第四部分:其他用戶權(quán)限(0)
第五部分:某個國家安全局的保護(hù)
lnmt:它分為linux、nginx拣宏、mysql和tomact
權(quán)限管理
chmod
chmod g+w test # 添加test的屬組中的權(quán)限(u/g/o)
chmod g-w test # 刪除test中屬組的權(quán)限(u/g/o)
chmod 777 test # 修改test文件的所以權(quán)限開啟
chmod 444 test # 修改test文件只能讀(444沈贝、400、404勋乾、440)
chmod 222 test # 修改test文件只能寫(222宋下、220、202辑莫、200)
chmod 111 test # 修改test文件只能執(zhí)行(111学歧、110、101各吨、100)
chmod 000 test # 關(guān)閉test文件所以權(quán)限
chown
chown -R tom test # 修改test屬主為tom
chown -R tom.benet test # 修改test的(屬主和屬組)為(tom和benet)
chown -R .benet test # 修改test的屬組為benet
umask
# 目錄一般是777 文件一般是666
umask碼是一個權(quán)限掩碼
umask碼值:超級用戶(0022)枝笨、普通用戶(0002)
umask 333 # 修改umask暫時為 0333
# 創(chuàng)建test時指定權(quán)限為0744
mkdir -m 744 test
26、mount和umount(掛載與取消掛載)
mount 設(shè)備 掛載路徑
mount # 查看當(dāng)前系統(tǒng)掛載的情況
mount -o ro # 以只讀的方式掛載
mount -a # 掛載/etc/fstab下全部
umount -a # 取消掛載/etc/fstab下全部
例如:掛載sr0到cdrom sr0為鏡像文件
mount /dev/sr0 /media/cdrom
例如:取消/dev/sr0掛載
df -h # 查看掛載的設(shè)備
umount /dev/sr0
27、w横浑、who和whoami
w # 查看當(dāng)前登錄的所以用戶 平均負(fù)載
who
whoami
28剔桨、查看內(nèi)存使用情況
free -m # 查看內(nèi)存使用情況
29、history
history # 查詢之前使用的命令
history -c # 清除之前的命令
30徙融、防火墻
# CentOS6
service iptables restart # 查看防火墻當(dāng)前情況
service iptables stop # 關(guān)閉防火墻
service iptables start # 開啟防火墻
# CentOS7
systemctl start firewalld # 開啟防火墻
systemctl stop firewalld # 關(guān)閉防火墻
systemctl restart firewalld # 查看防火墻當(dāng)前情況
二领炫、特殊符號
①波浪線(~):家目錄
②井號(#):超級用戶、注釋
③花括號({}):序列张咳、可以是數(shù)字帝洪、字母
例如:在終端中輸出0到10
echo {0..10}
# 正則
grep -E "abc{2,4}" test.txt # abc{2,4} 等于 abcc、abccc脚猾、abcccc
# {n,m} :匹配前一個字符n次到m次
# {n}:匹配前一個字符n次
# {n,} : 匹配前一個字符無限次
④星號(*):任意
例如:查詢當(dāng)前路徑下所以
ls *
⑤點(diǎn)(.)(..):一個點(diǎn)表示當(dāng)前路徑葱峡、兩個點(diǎn)表示上一級路徑
cd .. #回到上一級
ls . #查詢當(dāng)前路徑下東西
⑥大于(>)(1>)(2>)(&>)(>>)(1>>)(2>>)(&>>)
#重定向
echo "111" > 1.txt # 把111寫入1.txt中疼约,二次輸入會覆蓋
echo "111" 1> 1.txt #命令正確寫入111到1.txt
echo "222" 2> 1.txt # 命令寫錯時報錯碼寫入到1.txt
echo "333" &> 1.txt #正確1.txt中有333厘托,錯誤1.txt中報錯碼
echo "111" >> 1.txt
echo "222" 1>> 1.txt
echo "333" 2>> 1.txt
echo "444" &>> 1.txt
⑦(!:感嘆號):取反
find . ! -name 目標(biāo)文件/目錄字段 #查看沒有字段的內(nèi)容
⑧(|:管道符)(&&:表示并且)(||:表示或者)
管道符:將管道符左側(cè)命令的執(zhí)行結(jié)果傳給右側(cè)坏逢,成為右側(cè)的執(zhí)行對象
# | (管道符)
例如:
find . -type f | grep t #查找當(dāng)前項目下的所以文件給右側(cè)革屠,右側(cè)過濾有t的內(nèi)容
ls /data | grep "can" | xargs rm -rf # 刪除data下含有can的文件和目錄
# || (前面命令執(zhí)行不成功,執(zhí)行后面的命令)
# &&(前面命令執(zhí)行成功斩跌,執(zhí)行后面的命令)
例如:進(jìn)入test失敗的話創(chuàng)建test
cd test || mkdir test # 有test 的話就不會創(chuàng)建testl
例如:進(jìn)入test并顯示ttttt
cd test && echo ttttt # 進(jìn)入test并顯示ttttt宠进,如果沒有test則報錯
⑨分號(屏箍;)
分號:并列執(zhí)行
head -20 test.txt ; tail -20 test.txt
#結(jié)果是test.txt的前20行和末尾20行
⑩等號(=)($:取變量值)
#賦值
a=2
echo $a # 輸出時加$可以顯示賦值的值
``(反引號)和 $()
# 刪除當(dāng)前目錄下所以
rm -rf `find . -name "*" -type d`
rm -rf $(find . -find d -name "*")
(右斜杠)(轉(zhuǎn)義符)
echo -e "hello world \n hello yuo" # \n 輸出時換行
?(問號)
echo "hello?world?hello" # ?表示任意一個字符
&:表示查詢放在后臺執(zhí)行
[]:匹配括號內(nèi)任意字符
[1-6]:匹配1到6的數(shù)字
[123456]=[1-6]
[1-6]=[123456]
三称勋、理論
1胸哥、簡單理論
絕對路徑:從根下到目標(biāo)位置的路徑
相對路徑:以當(dāng)前路徑為啟示到目標(biāo)的路徑
三劍客:grep、sed赡鲜、awk
grep 命令是用來過來文件內(nèi)容中的字符
find 根據(jù)文件類型或者文件名稱來查找的
sed 用來過濾文件內(nèi)容的字符空厌,并且可以對內(nèi)容進(jìn)行修改
awk 精確過濾文件內(nèi)容中的字符(并且根據(jù)需要統(tǒng)計數(shù)值)
xargs 將文本流格式改成文件名格式
四個重要查找命令:cat、head银酬、tail嘲更、grep
硬件、cpu揩瞪、內(nèi)存赋朦,程序到進(jìn)程的區(qū)別:程序是寫著代碼的文件的,存在硬盤里我們要執(zhí)行程序需要把程序執(zhí)行到內(nèi)存里
cat在工作中是一個危險命令李破,cat是將文件一次性全部打開到內(nèi)存中宠哄,在工作中查看大文件的時候要慎重,
grep喷屋、sed琳拨、awk三個命令是按行讀取文件,這三個命令可以和正則符號配合實(shí)現(xiàn)更準(zhǔn)確的查找內(nèi)容屯曹,正則式一些匹配規(guī)則。
PATH:在系統(tǒng)里有個環(huán)境變量PATH,它記錄了系統(tǒng)命令存放的位置
2恶耽、符號理論(除正則外的叫法和用發(fā))
#:超級用戶的標(biāo)識密任,注釋
~:家目錄
*:任意的意思
?:任意一個字符
..:標(biāo)識上一級目錄
.:標(biāo)識當(dāng)前路徑
>:輸出重定向(先清空目錄文件,在輸入)
>>:追加輸出重定向(不清空源文件偷俭,直接在源文件末尾追加內(nèi)容)
1>:正確輸出重定向
2>:錯誤輸出重定向
&>:無論正確錯誤都重定向
@嘶洹:取反*(否定)*
|:管道符
;:分號表示并列執(zhí)行涌萤,分號的前后都是一條完整的命令
$:取變量值
{}:序列
\:轉(zhuǎn)義符
&&:表示并且
||:表示或者
``:優(yōu)先執(zhí)行($()功能一樣)
&:程序在后臺執(zhí)行
[]:匹配括號內(nèi)任意一個字符
[5-9]:匹配括號內(nèi)5-9數(shù)字
3淹遵、正則符
^:以……開頭
$:以……結(jié)尾
^$:空行
():分組
|:或者
*:表示匹配前一個字符0次或無限次
.:表示任意一個字符
.*:表示任意
[]:表示匹配括號內(nèi)任意字符,括號內(nèi)加^則表示匹配這個字符取反
+:表示匹配前一個字符1次或無限次
?:表示匹配前一個字符0次或1次
{n}:表示匹配前一個字符n次
{n,}:表示匹配前一個字符n到無限次
{n,m}:表示匹配前一個字符n到m次
{,m}:表示匹配前一個字符0到m次
三负溪、快捷鍵透揣、目錄和略記的單詞
單詞
mem # 內(nèi)存
cpu # cpu
net/network # 網(wǎng)絡(luò)
disk # 硬盤
master # 接待用戶請求,但不處理用戶請求川抡,
# master進(jìn)程接待用戶請求但不會處理辐真,會創(chuàng)建一個子進(jìn)程,由子進(jìn)程處理崖堤,master會監(jiān)聽?wèi)?yīng)用端口
worker #
socket # 守護(hù)進(jìn)程
CTRL + U # 剪切光標(biāo)之前的子
CTRL + K # 剪切光標(biāo)之后的子
CTRL + y # 黏貼時的內(nèi)容
CTRL + C # 結(jié)束進(jìn)程
CTRL + D # 注銷
CTRL + A # 光標(biāo)移動到行首
CTRL + E # 光標(biāo)移動到行尾
CTRL + Z # 后臺運(yùn)行
fg # 顯示后臺
根路徑
/root :系統(tǒng)管理員的家目錄(宿主目錄)
/home :普通用戶家目錄的宿主目錄
/boot :系統(tǒng)啟動文件存放的位置
/dev :設(shè)備管理文件存在
/etc :保存配置文件的目錄???.conf文件侍咱,這個是各個應(yīng)用的核心配置文件
/bin :普通用戶使用命令文件存放目錄
/sbin/ :超級用戶使用命令文件存放位置
/usr 和 /opt :用來做第三方應(yīng)用的安裝路徑
/var :主要是存放臨時文件,比如日志文件密幔,程序運(yùn)行起來的臨時緩存文件
/mut :一般用來掛載移動設(shè)備
/media :多媒體文件存放位置
/lib 和 /lib64 :庫文件存放位置
proc 這是一個特殊目錄楔脯,這個目錄是存放在內(nèi)存中
# proc中都是 進(jìn)程在proc中運(yùn)行
/dev/null/:黑洞文件
/dev/zero/:零時文件
/etc/init.d 和 /etc/init
/etc/yum.repos.d/ : yum源文件路徑
/etc/sysconfig/network-scripts/ifcfg-eth0 :網(wǎng)卡配置文件
/etc/hosts :主機(jī)映射文件
/etc/rc.d/rc.local :開機(jī)自動執(zhí)行腳本
/etc/skel/ :創(chuàng)建用戶的初始環(huán)境
/etc/defaults/useradd/ 或者 /etc/login.defs :創(chuàng)建的用戶信息
/etc/group/ 或者 /etc/gshadow/ :管理組文件
/etc/posswd/ 或者 /etc/shadow/ :影子文件
/etc/profile/ :權(quán)限掩碼
# 影子文件分布 以冒號分隔
# /etc/posswd/ 密碼占用符一般用x表示 有7個字段
# 登錄腳本分兩種:該用戶禁止登錄/sbin/noloin 和 該用戶允許登錄/bin/bask
用戶名 : 密碼占用符 : 用戶id : 組id : 說明 : 家目錄 : 登錄腳本
# /etc/shadow/ 8個字段
用戶名 : 加密后的密碼 : 用戶創(chuàng)建時間 : 創(chuàng)建多久后可以修改密碼 : 密碼過期天數(shù) :
強(qiáng)制修改密碼提示時間 : 當(dāng)密碼過期后經(jīng)過多少天該賬戶會禁用 : 密碼過期日期
四、區(qū)別
1胯甩、 {}和[]的區(qū)別
括號 | 命令 | 解釋 |
---|---|---|
{} | touch {a..z} | 識別{},創(chuàng)建a到z文件 |
[] | touch [a-z] | 不識別[],創(chuàng)建一個[a-z] |
2淤年、單引號('')雙引號(“”)不加引號的區(qū)別
引號 | 命令 | 解釋 |
---|---|---|
無引號 | echo $PATH abcdefg {0..10} | 一切符號都是本身意義 |
單引號 | echo '$PATH abcdefg {0..10}' | 不識別通配符 |
雙引號 | echo "$PATH abcdefg {0..10}" | 一切符號不生效 |
3、parted和fdisk
parted | fdisk |
---|---|
mbr和gpt管理 | mbr管理方式 |
沒有限制 | 最大劃分2T;大于2T看不見無顯示 |
沒有邏輯分區(qū) | 只能劃分4個主分區(qū)蜡豹,其余都是邏輯分區(qū) |
不能手動保存 | 分完區(qū)后手動保存 |
4麸粮、硬鏈接與軟連接
鏈接 | 是否可以夸系統(tǒng)(設(shè)備)使用 | 是否可以手動創(chuàng)建 | 指向 | 刪除移動源文件后是否影響使用 |
---|---|---|---|---|
軟鏈接 | 可以 | 可以 | 文件名 | 影響 |
硬鏈接 | 不可以 | 對文件可以,對目錄不可以 | indoe號 | 不影響 |
5镜廉、進(jìn)程和程序
程序 | 進(jìn)程 |
---|---|
可運(yùn)行的文件,含有程序員寫的代碼的可運(yùn)行文件 | 運(yùn)行的程序 |
靜態(tài)文件 | 動態(tài)的資源 |
硬盤上 | 內(nèi)存 |
永久存在 | 臨時存在 |
五弄诲、正則符
^ # 以.....開頭
$ # 以....結(jié)尾
[] # 匹配括號里的任意一個字符娇唯,再括號與^一起使用表示取反
^$ # 表示的是空行
* # 表示匹配前一個字符0次到無限次(次數(shù))
. # 表示任意一個字符
.* # 表示任意齐遵,相當(dāng)于通配符中的*
+ # 匹配內(nèi)容一次到無限次(擴(kuò)展正則)
| # 或者
() # 分組
{n} # 匹配前一個字符n次
{n,m} # 匹配前一個字符n到m次
六梗摇、安裝
rpm包诸迟,相當(dāng)于我們在windows下用的.exe文件 xxx.rpm
lrzsz-0.12.20-27.1.el6.x86_64.rpm 安裝
cd / # 切換到根
mkdir /media/cdrom # 創(chuàng)建掛載點(diǎn)
mount /dev/sr0 /media/cdrom # 掛載sr0
cd /media/cdrom/Packages/ # 切換到lrzsz所在文件
rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm # 安裝lrzsz
# i 表示install
# v 顯示安裝過程
# h 以#號顯示安裝過程
rpm -qa lrzsz # 查找安裝的lrzsz應(yīng)用
rpm -qi lrzsz # 查看lrzsz的應(yīng)用信息
rpm -ql lrzsz # 查看命令和應(yīng)用安裝路徑
rpm -qf /usr/bin/sz # 歸屬安裝包
rpm -e lrzsz # 卸載lrzsz
# 這是 -e 先別刪除 可以從windows桌面或者文件中拖拽到xshell中的當(dāng)前文件中
# rz是拖進(jìn)命令
yum安裝
cd / # 切換到根
mkdir /media/cdrom # 創(chuàng)建cdrom
mount /dev/sr0 /media/cdrom # 掛載sr0
df -h # 查看掛載
cd /etc/yum.repos.d # 切換到y(tǒng)um文件
mkdir backcp # 創(chuàng)建backcp 創(chuàng)建部分
mv *.repo backcp # 移動所以后綴為repo的文件進(jìn)入備份
cp backcp/CentOS-Media.repo . # 復(fù)制備份中的CentOS-Media.repo到當(dāng)前路徑
vi CentOS-Media.repo # 檢查文件來源 是否啟用軟件
# vi 修改gpgchenk=0 enabled=1
# gpgchenk 的0表示不檢查润努,1表示檢查
# enabled 的0表示不啟動倚聚,1表示啟動
yum -y clean all # 清理緩存
yum makecache # 創(chuàng)建緩存7
# yum文件都是以 .repo 結(jié)尾的
源碼安裝
#獲取安裝包
下載或者yum直接下載
#配置yum源
yum配置
#下載支持包(httpd支持包包)
瀏覽器下載
#將源碼包導(dǎo)入到系統(tǒng)(服務(wù)器系統(tǒng))(導(dǎo)入需要先安裝lrzsz應(yīng)用)
yum -y install gcc gcc-c++ make #從物理機(jī)使用shell把安裝包拖到liunx種
#解壓源碼包到指定路徑(解壓到/usr/src)
tar xf http-2.2.12 -C /usr/src
#切換到源碼包路徑下(切換到/usr/src/httpd)
cd /usr/src/httpd
#進(jìn)行預(yù)配置(指定到某個路徑)()
./configure --prefix=/usr/local/apache
echo $? # 結(jié)果必須是0
#進(jìn)行編譯
make
echo $? # 結(jié)果必須是0
#開始安裝
make install # 安裝
echo $? # 結(jié)果必須是0
yum的應(yīng)用
yum -y install gcc # yum安裝gcc # -y 表示不交互 不詢問
yum -y remove gcc # yum卸載gcc
yum history # yum查看操作歷史
yum history undo 操作的id # yum 回滾
yum search rz(命令的) # 查看某個命令的安裝包
yum provides *bin/rz # 查詢某個命令的安裝包
七攻臀、創(chuàng)建
1、創(chuàng)建邏輯卷
pvcreate /dev/sd[bc] # 創(chuàng)建物理卷
vgcreate -s 8 vg0 /dev/sd[bc] # 創(chuàng)建卷組 vg0為卷組名稱
lvcreate -L 5G -n lvg vg0 # 創(chuàng)建邏輯卷 lvg為邏輯卷名稱 L指定邏輯卷為多少
mkfs.ext4 /dev/lvg # 格式化邏輯卷與卷組
mkdir /date # 創(chuàng)建掛載點(diǎn)
mount /dev/lvg /date # 掛載
# 在線擴(kuò)容
pvcreate /dev/sdd # pv化物理卷
vgdisplay /dev/lvg /dev/sdd # 擴(kuò)容系統(tǒng)卷組
# 擴(kuò)容系統(tǒng)邏輯卷
lvextend -L 10G /dev/lvg # 直接增加邏輯卷的內(nèi)容到10G
lvextend -L +10G /dev/lvg # 在邏輯卷的原基礎(chǔ)內(nèi)存上加10G
lvextend -L +100%FREE /dev/lvg # 把硬盤剩余所以內(nèi)存加到指定邏輯卷種
2测砂、創(chuàng)建RAID5
# 添加至少4塊硬盤或者系統(tǒng)盤
mdadm -Cv /dev/md5 -L5 -x1 /dev/sd[bcde]
# 格式化
mkfs.ext4 /dev/md5
# 創(chuàng)建data
mkdir data
# 掛載
mount /dev/md5 /data
# 修改/etc/fstab加一行 掛載的命令為創(chuàng)建掛載的目錄
# 加 /dev/md5 掛載的目錄 ext4 defaults 1 2
vi /etc/fstab
mdadm -D -s > /etc/mdadm.conf
# 修改/etc/mdadm.conf 第一行行尾加auto=yes
vi /etc/mdadm.conf
3茵烈、sda毀壞
將系統(tǒng)盤(sda)備份MBR分區(qū)到數(shù)據(jù)盤
1百匆、增加數(shù)據(jù)盤并且格式化掛載
mkfs.ext4 /dev/sdb
mkdir /data
mount /dev/sdb /data
2砌些、備份sda系統(tǒng)盤
dd if=/dev/sda of=/dev/mbr.bak bs=512 count=1
3、系統(tǒng)盤壞了
dd if=/dev/zero of=/dev/sda bs=512 count=1 # 沒壞自毀一次來一遍
reboot # 重啟
4加匈、進(jìn)入緊急模式
CentOS6 開機(jī)時選擇re……并不連網(wǎng)
5存璃、進(jìn)入shell
6、創(chuàng)建掛載點(diǎn)并掛載數(shù)據(jù)盤到掛載點(diǎn)
mkdir /date
mount /dev/sdb /date
dd if=/date of=/dev/sda bs=512 count=1
7雕拼、重啟
4纵东、fdisk:mbr分區(qū)
創(chuàng)建分區(qū)順序
fdisk /dev/sdb
n # 添加一個新分區(qū)
p # 一級分區(qū)
1 # 分區(qū)號
回車 # 第一個氣缸(默認(rèn)1)
+5G # 最后一個圓柱體
w # 保存退出
5、parted創(chuàng)建分區(qū)
創(chuàng)建分區(qū)順序:
parted /dev/sdb
mklabel # 創(chuàng)建新的分區(qū)
gpt # 分區(qū)類型
mkpart # 做一個分區(qū)
part1 # 分區(qū)名稱
ext2 # 文件系統(tǒng)類型
1K # 起始點(diǎn)
+5G # 結(jié)束點(diǎn)
q # 退出parted模式
6啥寇、useradd的使用(創(chuàng)建用戶)
# 如果出現(xiàn)bash的問題應(yīng)該 cp -r /etc/skel/.nash* /root/
useradd user1 # 創(chuàng)建用戶user1
head /etc/passwd # 查看創(chuàng)建的user1
head /etc/shadow # 查看創(chuàng)建的user1
passwd user1 # 創(chuàng)建修改user1的密碼
# 基本組:創(chuàng)建用戶時與用戶相同的組偎球,每個用戶只能有一個基本組
# 附加組:根據(jù)需求將用戶添加的其他組,可以有多個附加組
usaradd -g 506 user4 # 創(chuàng)建用戶時指定基本組 -g 指定基礎(chǔ)組
useradd -G user1 user5 # 指定附加組
useradd -u 508 user8 # 指定uid 指定新用戶
useradd -c “test web” user6 # 描述用戶信息 -c 擴(kuò)展名
-d # 共用一個家目錄
useradd -M user10 # 不創(chuàng)建家目錄
useradd -s /sbin/nologin user11 # 指定登錄腳本
useradd -e 20231123 user18 # 指定用戶的有效期7655
useradd -e 7day user10 # -e 也可以指定天數(shù)辑甜,日期
userdel -r user1 # 不加-r只刪除用戶不刪除家目錄衰絮,加-r連家目錄一起刪除
passwd -l user1 # 鎖定用戶user1
passwd -u user1 # 解鎖用戶user1
passwd -s user1 # 查看用戶的當(dāng)前狀態(tài)
gpasswd -a "tom" user4 # 將tom增加到user4的附加組中
groupadd -g 506 user4 # 指定附加組
id user1 # 查看user1的uid、gid和組
w # 查看當(dāng)前登錄的所以用戶 平均負(fù)載
who #
whoami #
八磷醋、特點(diǎn)
開機(jī)十部
1猫牡、開機(jī)時先進(jìn)行BIOS自建,硬盤插在主板邓线,檢測硬盤的完整性和可用性淌友,蜂鳴報警
2、開機(jī)進(jìn)行MBR引導(dǎo)骇陈,讀取了mbr引導(dǎo)分區(qū)震庭,通過2字節(jié)效驗(yàn)碼識別是否是系統(tǒng)盤,開始進(jìn)行啟動系統(tǒng)你雌。通過引導(dǎo)程序加載啟動系統(tǒng)器联。通過主引導(dǎo)程序加載啟動模塊
3、進(jìn)入了grub菜單匪蝙,在grub菜單里記錄主籍,內(nèi)核信息,和邏輯卷信息
4逛球、啟動內(nèi)核
5千元、由內(nèi)核啟動系統(tǒng)的一個進(jìn)程,進(jìn)程的id是1颤绕,1號進(jìn)程在centos6下叫init進(jìn)程幸海,在centos7下叫systemd進(jìn)程
6祟身、啟動1號進(jìn)程以后,1號進(jìn)程會讀取/etc/initrab啟動開機(jī)模式物独,進(jìn)行下一步啟動
7袜硫、開始進(jìn)行初始化系統(tǒng)加載/etc/rc.d/init.d
8、讀取/etc/rc.d/rcn.d確定當(dāng)前需要啟動的應(yīng)用
9挡篓、讀取個人配置腳本:/etc/rc.d/rc.local
10婉陷、進(jìn)入開機(jī)界面
linux下有7中開機(jī)啟動級別:
0:關(guān)機(jī)
1:單用戶模式,此模式免密登錄官研,不支持遠(yuǎn)程操作秽澳,只能是在主機(jī)旁登錄
2、無網(wǎng)絡(luò)文件系統(tǒng)的多用戶模式
3戏羽、有網(wǎng)絡(luò)文件系統(tǒng)的多用戶模式
4担神、開發(fā)者模式或者是叫保留模式(這種模式未被啟動)
5、桌面模式(系統(tǒng)了桌面模式始花,如果沒裝沒有用)
6妄讯、重啟
九、密碼丟失
centOS6的管理員(root)密碼找回
屏幕初起亮屏?xí)r酷宵,按e
選擇第2個
下一部按e
下一部加 空格加1
回車
下一步按b
現(xiàn)在就可以修改root密碼了 passwd root
重啟 密碼為你修改的密碼
centOS7
屏幕初起亮屏?xí)r亥贸, 按e
下一步在liunx16的行尾加空格rd.break
CTRL+X 下一步
掛載mount -o remount,rw /sysroot
切換到/sysroot 命令:chroot /sysroot
修改root密碼:passwd root
創(chuàng)建/.autorelabel文件 :touch /.autorelabel
退出sh-4.2#模式:exit
重啟:reboot
登錄