2020-09-03
云計(jì)算培訓(xùn)
好程序員云計(jì)算培訓(xùn)分享Linux Shell常見命令總結(jié)大全,Linux shell命令應(yīng)該算是非常入門的東西,但是實(shí)際上在使用的時(shí)候,會(huì)遇到各種各樣的問題,前幾天我在我們的項(xiàng)目上需要做一個(gè)功能,根據(jù)進(jìn)程名字殺死這個(gè)進(jìn)程,下面是過程。
(1) 我們正常需要的操作是
$ps |grep xxx
$kill -9 xx
(2) kill命令是常用的,但是用killall命令會(huì)更快
$killall -9 xxx
(3) 令我困擾的是我用的那個(gè)沒有killall然后我做了下面的操作
$adb shell ps |grep speech |awk '{print $2}' > 1.txt
$cat 1.txt |xargs -n1 adb shell kill -9
我用這個(gè)的原因是用一條指令重定向總是各種問題,正常情況下用這條就可以了
$adb shell ps |grep speech |awk '{print $2}'|xargs -n1 kill -9
1. 關(guān)機(jī)/重啟
關(guān)機(jī)(必須用root用戶)
shutdown -h now ## 立刻關(guān)機(jī)
shutdown -h +10 ## 10分鐘以后關(guān)機(jī)
shutdown -h 12:00:00 ##12點(diǎn)整的時(shí)候關(guān)機(jī)
halt # 等于立刻關(guān)機(jī)
重啟
shutdown -r now
2. echo
root@ubuntu:~# a="hello,world"
root@ubuntu:~# echo a
a
root@ubuntu:~# echo &a
[1] 3091
a: command not found
[1]+ Done echo
root@ubuntu:~# echo $a
hello,world
root@ubuntu:~#
3. vim文本編輯器
最基本用法
vi somefile.4
1 首先會(huì)進(jìn)入“一般模式”,此模式只接受各種快捷鍵,不能編輯文件內(nèi)容
2 按i鍵,就會(huì)從一般模式進(jìn)入編輯模式,此模式下,敲入的都是文件內(nèi)容
3 編輯完成之后,按Esc鍵退出編輯模式,回到一般模式;
4 再按:,進(jìn)入“底行命令模式”,輸入wq命令,回車即可
常用快捷鍵
一些有用的快捷鍵(在一般模式下使用):
a 在光標(biāo)后一位開始插入
A 在該行的最后插入
I 在該行的最前面插入
gg 直接跳到文件的首行
G 直接跳到文件的末行
dd 刪除一行
3dd 刪除3行
yy 復(fù)制一行
3yy 復(fù)制3行
p 粘貼
u undo
v 進(jìn)入字符選擇模式,選擇完成后,按y復(fù)制,按p粘貼
ctrl+v 進(jìn)入塊選擇模式,選擇完成后,按y復(fù)制,按p粘貼
shift+v 進(jìn)入行選擇模式,選擇完成后,按y復(fù)制,按p粘貼
查找并替換
1 顯示行號(hào)
:set nu
2 隱藏行號(hào)
:set nonu
3 查找關(guān)鍵字
:/you ## 效果:查找文件中出現(xiàn)的you,并定位到diyi個(gè)找到的地方,按n可以定位到下一個(gè)匹配位置(按N定位到上一個(gè))
4 替換操作
:s/sad/bbb 查找光標(biāo)所在行的diyi個(gè)sad,替換為bbb
:%s/sad/bbb 查找文件中所有sad,替換為bbb
4. 拷貝/刪除/移動(dòng)/更換文件名字
cp somefile.1 /home/hadoop/
rm /home/hadoop/somefile.1
rm -f /home/hadoop/somefile.1
mv /home/hadoop/somefile.1 ../
mv a.txt b.txt //把a(bǔ).txt更名為b.txt
5. 打包壓縮
1、gzip壓縮
gzip a.txt
2、解壓
gunzip a.txt.gz
gzip -d a.txt.gz
3、bzip2壓縮
bzip2 a
4、解壓
bunzip2 a.bz2
bzip2 -d a.bz2
5、打包:將指定文件或文件夾
tar -cvf bak.tar ./aaa
將/etc/password追加文件到bak.tar中
tar -rvf bak.tar /etc/password
6、解壓
tar -xvf bak.tar
7、打包并壓縮
tar -zcvf a.tar.gz aaa/
8、解包并解壓縮(重要的事情說三遍!!!)
tar -zxvf a.tar.gz
解壓到/usr/下
tar -zxvf a.tar.gz -C /usr
9、查看壓縮包內(nèi)容
tar -ztvf a.tar.gz
zip/unzip
10、打包并壓縮成bz2
tar -jcvf a.tar.bz2
11、解壓bz2
tar -jxvf a.tar.bz2
6. 常用查找命令的使用
1、查找可執(zhí)行的命令所在的路徑:
which ls
2、查找可執(zhí)行的命令和幫助的位置:
whereis ls
3、從某個(gè)文件夾開始查找文件
find / -name "hadooop*"
find / -name "hadooop*" -ls
4、查找并刪除
find / -name "hadooop*" -ok rm {} \;
find / -name "hadooop*" -exec rm {} \;
5、查找用戶為hadoop的文件
find /usr -user hadoop -ls
6、查找用戶為hadoop的文件夾
find /home -user hadoop -type d -ls
7、查找權(quán)限為777的文件
find / -perm -777 -type d -ls
8、在指定目錄不分大小寫查找某個(gè)文件
find ./sound/ -iname ft56Q.c
9、顯示命令歷史
history
7. grep命令
最常用的-全字匹配
grep -wrn weiqifa ./sound/
查找 某個(gè)字符串但是不在指定文件夾查找
grep -E "http" ./ -R --exclude-dir=./sound/
grep -E "http" . -R --exclude-dir={.git,res,bin}
排除擴(kuò)展名為 java 和 js 的文件
grep -E "http" . -R --exclude=*.{java,js}
1 基本使用
查詢包含hadoop的行
grep hadoop /etc/password
grep aaa ./*.txt
2 cut截取以:分割保留第七段
root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# grep dsl /etc/passwd | cut -d: -f7
/bin/bash
root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# grep dsl /etc/passwd
dsl:x:1000:1000:dsl,,,:/home/dsl:/bin/bash
root@ubuntu:~/kernel_rk3399_yan4_dev/kernel#
3 查詢不包含hadoop的行
grep -v hadoop /etc/passwd
4 正則表達(dá)包含hadoop
grep 'hadoop' /etc/passwd
5 正則表達(dá)(點(diǎn)代表任意一個(gè)字符)
grep 'h.*p' /etc/passwd
6 正則表達(dá)以hadoop開頭
grep '^hadoop' /etc/passwd
7 正則表達(dá)以hadoop結(jié)尾
grep 'hadoop$' /etc/passwd
規(guī)則:
. : 任意一個(gè)字符
a* : 任意多個(gè)a(零個(gè)或多個(gè)a)
a? : 零個(gè)或一個(gè)a
a+ : 一個(gè)或多個(gè)a
.* : 任意多個(gè)任意字符
\. : 轉(zhuǎn)義.
o\{2\} : o重復(fù)兩次
查找不是以#開頭的行
grep -v '^#' a.txt | grep -v '^$'
以h或r開頭的
grep '^[hr]' /etc/passwd
不是以h和r開頭的
grep '^[^hr]' /etc/passwd
不是以h到r開頭的
grep '^[^h-r]' /etc/passwd
8. linux文件權(quán)限的描述格式解讀
drwxr-xr-x (也可以用二進(jìn)制表示 111 101 101 --> 755)
d:標(biāo)識(shí)節(jié)點(diǎn)類型(d:文件夾 -:文件 l:鏈接)
r:可讀 w:可寫 x:可執(zhí)行
diyi組rwx: ## 表示這個(gè)文件的擁有者對(duì)它的權(quán)限:可讀可寫可執(zhí)行
第二組r-x: ## 表示這個(gè)文件的所屬組用戶對(duì)它的權(quán)限:可讀,不可寫,可執(zhí)行
第三組r-x: ## 表示這個(gè)文件的其他用戶(相對(duì)于上面兩類用戶)對(duì)它的權(quán)限:可讀,不可寫,可執(zhí)行
9. 修改文件權(quán)限
chmod g-rw haha.dat ## 表示將haha.dat對(duì)所屬組的rw權(quán)限取消
chmod o-rw haha.dat ## 表示將haha.dat對(duì)其他人的rw權(quán)限取消
chmod u+x haha.dat ## 表示將haha.dat對(duì)所屬用戶的權(quán)限增加x
chmod a-x haha.dat ## 表示將haha.dat對(duì)所用戶取消x權(quán)限
也可以用數(shù)字的方式來修改權(quán)限
chmod 664 haha.dat
就會(huì)修改成 rw-rw-r--
如果要將一個(gè)文件夾的所有內(nèi)容權(quán)限統(tǒng)一修改,則可以-R參數(shù)
chmod -R 770 aaa/
10. 修改文件所有權(quán)
<只有root權(quán)限能執(zhí)行>
chown angela aaa ## 改變所屬用戶
chown :angela aaa ## 改變所屬組
chown angela:angela aaa/ ## 同時(shí)修改所屬用戶和所屬組
11. 統(tǒng)計(jì)文件或文件夾的大小
root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# du -sh sound/
33M sound/
root@ubuntu:~/kernel_rk3399_yan4_dev/kernel#
df -h 查看磁盤的空間
root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 394M 6.4M 388M 2% /run
/dev/sda1 294G 93G 186G 34% /
tmpfs 2.0G 204K 2.0G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 394M 80K 394M 1% /run/user/1000
root@ubuntu:~/kernel_rk3399_yan4_dev/kernel#
開班時(shí)間:2021-04-12(深圳)
開班盛況開班時(shí)間:2021-05-17(北京)
開班盛況開班時(shí)間:2021-03-22(杭州)
開班盛況開班時(shí)間:2021-04-26(北京)
開班盛況開班時(shí)間:2021-05-10(北京)
開班盛況開班時(shí)間:2021-02-22(北京)
開班盛況開班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開班時(shí)間:2020-09-21(上海)
開班盛況開班時(shí)間:2021-07-12(北京)
預(yù)約報(bào)名開班時(shí)間:2019-07-22(北京)
開班盛況Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號(hào)-5 京公網(wǎng)安備 11010802035720號(hào)