中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux操作系統的介紹及命令使用技巧

發布時間:2021-07-01 11:56:50 來源:億速云 閱讀:139 作者:chen 欄目:大數據

本篇內容主要講解“Linux操作系統的介紹及命令使用技巧”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux操作系統的介紹及命令使用技巧”吧!

Linux文件基本屬性

Linux文件與目錄管理

Linux用戶和用戶組管理

Linux磁盤管理

vi/vim

vim
Vi/Vim 是所有 Unix/Linux 操作系統默認配備的編輯器
ZQ 無條件退出 
:q! 無條件退出 
ZZ 存盤并退出 
:wq 存盤并退出
j 下移一行 
k 上移一行 
/ 在文件中向前搜索(特殊字符如/需要用轉移字符\,如匹配baidu/agile/agile需要輸入:/baidu\/agile\/agile)
? 在文件中向后搜索
n 搜索下一個 
N 反向搜索下一個
#將整個文件的所有a替換為b
:%s/a/b/g
#將1至3行的第一個a替換為b
:1,3s/a/b/
#將1至3行的所有a替換為b
:1,3s/a/b/g

使用sed -i對文本字符串進行增刪改查

常用命令及使用技巧

日志

#####################tail#####################
#倒數300行并進入實時監聽文件寫入模式
tail -300f shopbase.log
#顯示文件 example.txt 的后二十行內容
tail -n 20 example.txt
#顯示文件 example.txt 的后十行內容并在文件內容增加后,自動顯示新增的文件內容。 
tail -f example.txt
#顯示文件 example.txt 的后50行內容并在文件內容增加后,自動顯示新增的文件內容。
tail -n 50 -f example.txt
#動態顯示末尾的100行包含java的內容 
tail -100f file1 | grep java
#####################cat#####################
#顯示file文件里匹配foo字串那行以及上下5行
cat error.log | grep -C 5 'foo'
#顯示foo及前5行
cat error.log | grep -B 5 'foo'
#顯示foo及后5行
cat error.log | grep -A 5 'foo'
#同時包含多個關鍵詞
cat example.txt | grep dongshihao | grep ciOnline
#忽略大小寫檢索關鍵詞
cat f.txt | grep -i shopbase
#關鍵詞出現次數
cat f.txt | grep -c shopbase
#####################grep#####################
#文件查找
grep forest f.txt
#多文件查找
grep forest f.txt cpf.txt
#目錄下查找所有符合關鍵字的文件
grep 'log' /home/admin -r -n
#指定單個文件后綴  
grep 'import' ~/code -r -n --include  '*.java'
#指定多個文件后綴  
grep 'shopbase' /home/admin -r -n --include *.{vm,java}
#反匹配
grep 'shopbase' /home/admin -r -n --exclude *.{vm,java}
#####################find#####################
#根據名稱查找/目錄下的filename.txt文件。
find / -name filename.txt
#遞歸查找所有的xml文件
find . -name "*.xml"
#遞歸查找所有文件內容中包含hello world的xml文件
find . -name "*.xml" | xargs grep "hello world"
#多個目錄去找
find /home/admin /tmp /usr -name \*.log
#按名字(不區分大小寫)查找
find . -iname \*.log
#當前目錄下的所有子目錄
find . -type d
#當前目錄下所有的符號鏈接
find /usr -type l
#符號鏈接的詳細信息 eg:inode目錄
find /usr -type l -name "z*" -ls
#超過250000k的文件,當然+改成-就是小于了
find /home/admin -size +250000k
#按照權限查詢文件
find /home/admin f -perm 777 -exec ls -l {} \;
#1天內訪問過的文件
find /home/admin -atime -1
#1天內狀態改變過的文件
find /home/admin -ctime -1 
#1天內修改過的文件     
find /home/admin -mtime -1 
#1分鐘內訪問過的文件 
find /home/admin -amin -1
#1分鐘內狀態改變過的文件 
find /home/admin -cmin -1
#1分鐘內修改過的文件   
find /home/admin -mmin -1
#刪除文件大小為零的文件
find ./ -size 0 | xargs rm -f &
#查找并刪除/data這個目錄7天前創建的文件
find /data -ctime +7 -exec rm -rf {} \;
find /data -ctime +7 | xargs rm -rf
#查找文件并復制到/opt目錄
方法1:
find /etc -name httpd.conf -exec cp -rf {} /opt/ \;    #-exec執行后面命令,{}代表前面輸出的結果,\;結束命令
方法2:
find /etc -name httpd.conf |xargs -i cp {} /opt     #-i表示輸出的結果由{}代替
#查看根目錄下大于1G的文件,默認單位是b,可以使用其他單位如,C、K、M
find / -size +1024M  
#找出IP地址
ifconfig |grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' #-o只顯示匹配字符
#查看文本中20至30行內容(總共100行)
方法1:
awk '{if(NR > 20 && NR < 31) print $0}' test.txt
方法2:
sed -n '20,30p' test.txt 
方法3:
head -30 test.txt |tail
#查看壓縮日志文件
zcat test.gz
zless test.gz
#搜索當前目錄包含某個字符串的文件(找到該字符串在哪個文件的第幾行)
grep -rn "test" *

文本分析

awk是一個強大的文本分析工具,相對于grep的查找,sed的編輯,awk在其對數據分析并生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。 

#####################awk#####################
文件a
a11 a12 a13
b21 b22 b23
c31 c32 c33
文件b
11 12 13
21 22 23
31 32 33
文件c
a:b:c
d:e:f
g:h:i
#基礎命令
awk '{print $2,$3}' a
a12 a13
b22 b23
c32 c33

awk '{print NR,$0}' a b
1 a11 a12 a13
2 b21 b22 b23
3 c31 c32 c33
4 11 12 13
5 21 22 23
6 31 32 33
    
awk '{print FNR,$0}' a b
1 a11 a12 a13
2 b21 b22 b23
3 c31 c32 c33
1 11 12 13
2 21 22 23
3 31 32 33

awk '{print FNR,FILENAME,$0}' a b
1 a a11 a12 a13
2 a b21 b22 b23
3 a c31 c32 c33
1 b 11 12 13
2 b 21 22 23
3 b 31 32 33

awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' a b
a NR=1 FNR=1 $3=a13
a NR=2 FNR=2 $3=b23
a NR=3 FNR=3 $3=c33
b NR=4 FNR=1 $3=13
b NR=5 FNR=2 $3=23
b NR=6 FNR=3 $3=33

echo 1 2 3 | awk -F:  '{print $1,$2,$3}' c
a b c
d e f
g h i

#匹配ldb
awk '/ldb/ {print}' f.txt
#不匹配ldb   
awk '!/ldb/ {print}' f.txt
#匹配ldb和LISTEN  
awk '/ldb/ && /LISTEN/ {print}' f.txt 
#第五列匹配ldb  
awk '$5 ~ /ldb/ {print}' f.txt

#文本左對齊:
awk '{printf "%-15s %-10s %-20s\n",$1,$2,$3}' test.txt
#文本右對齊:
awk '{printf "%15s %10s %20s\n",$1,$2,$3}' test.txt

#從如下日志中求出feature、model兩個過程耗時平均值
2019-11-13 15:23:08  INFO [DubboServerHandler-127.0.0.1:20880-thread-199] (AInterfaceImpl.java:128) - A_task: where:B, strategy:READ_SPEED_REGRESSION_V9_OPT, uid:123@wx.163.com, traceId:123, feature(FeatureExtractor,400,112ms), model(400, success, 31ms), allCost: 143ms

cat engine_ctr.log | grep FeatureExtractor | grep B | awk -F "[,()]" '{print $10}' | awk -F "ms" '{print $1}' | awk '{sum+=$1} END {print "Average = ", sum/NR}'
cat engine_ctr.log | grep FeatureExtractor | grep B | awk -F "[,()]" '{print $15}' | awk -F "ms" '{print $1}' | awk '{sum+=$1} END {print "Average = ", sum/NR}'

文件

#使用stat命令查看一個文件的屬性,訪問時間(Access)、修改時間(modify)、狀態改變時間(Change)
stat index.php
#文件夾讀寫權限
chmod  -R 777 文件夾
#重命名
mv oldNameFile newNameFile
#遞歸復制整個文件夾
cp -r sourceFolder targetFolder
#批量解壓tar.gz
方法1:
find . -name "*.tar.gz" -exec tar zxf {} \;
方法2:
for tar in *.tar.gz; do tar zxvf $tar; done
方法3:
ls *.tar.gz | xargs -i tar zxvf {}  
#篩除出文件中的注釋和空格
方法1:
grep -v "^#" httpd.conf |grep -v "^$"
方法2:
sed -e ‘/^$/d’ -e ‘/^#/d’ httpd.conf > http.conf
或者 
sed -e '/^#/d;/^$/d'     #-e 執行多條sed命令
方法3:
awk '/^[^#]/|/"^$"' httpd.conf 
或者 
awk '!/^#|^$/' httpd.conf
#篩選/etc/passwd文件中所有的用戶
方法1:
cat /etc/passwd |cut -d: -f1
方法2:
awk -F ":" '{print $1}' /etc/passwd

其它常用(持續更新)

#內存使用情況
free -h
#查看java進程
ps aux|grep java
#查找elastic進程 kill -9強制殺掉進程
ps -ef | grep --color elastic
#終止線程號位19979的進程
kill -9 19979
#查找是否存在名為tomcat的進程:
ps -aux | grep tomcat
#查看內存占用前10的進程
ps -aux|sort -k4nr |head -n 10
#查看所有進程和端口的使用情況:
netstat -apn
#如果發現8080端口被PID為的8979的java進程占用,則可以進一步查看明細:
ps -aux | grep 8979
ps -aux | grep java
#查看進程運行時間
ps -p 24525 -o lstart,etime
#直接使用端口號查看進程:
netstat -apn | grep 8080
#查看端口屬于哪個進程
lsof -i :8080
#查看進程打開的文件句柄
lsof -p pid
#iptables將本機80端口轉發到本地8080端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
#查看所有網絡連接
netstat -antp
#只查看監聽的端口信息
netstat -lntp

#表示人以root身份登錄
su - root
#表示與root建立一個鏈接,通過root執行命令
su root
#使用超級管理員身份執行命令
#sudo命令需要輸入當前用戶的密碼,su命令需要輸入root用戶的密碼
sudo rm a.txt

#生成8位隨機字符串
方法1:
echo $RANDOM |md5sum |cut -c 1-8
方法2:
openssl rand -base64 4
方法3:
cat /proc/sys/kernel/random/uuid | cut -c 1-8

#刪除從開頭到光標處的命令文本
ctrl + u
#刪除從光標到結尾處的命令文本
ctrl+k
#光標移動到命令開頭
ctrl + a
#光標移動到命令結尾 
ctrl + e

#多條命令執行,使用分號隔開
cd /temp/log/;rm -rf *
多條命令執行,使用分號隔開(確保前一條成功,否則會刪除當前目錄)
cd /temp/log/&&rm -rf *

#終止并恢復進程執行
ctrl+z、fg

#快速查找你需要的命令
man -k "copy files"

redis

設置redis訪問密碼

到此,相信大家對“Linux操作系統的介紹及命令使用技巧”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴楚县| 高雄县| 准格尔旗| 同江市| 南城县| 垦利县| 高密市| 广南县| 溆浦县| 巢湖市| 巴林右旗| 乌鲁木齐县| 突泉县| 囊谦县| 福建省| 吴忠市| 怀宁县| 绵竹市| 鄯善县| 富裕县| 北安市| 繁昌县| 县级市| 元阳县| 什邡市| 北流市| 赤壁市| 竹山县| 宁海县| 隆回县| 吉林市| 通辽市| 巴楚县| 湄潭县| 兴化市| 循化| 景洪市| 宝兴县| 启东市| 商洛市| 潮州市|