真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linuxmap命令 Linux jmap

30個必知的Linux命令技巧,你都掌握了嗎

在Unix/Linux下,高效工作方式不是操作圖形頁面,而是命令行操作,命令行意味著更容易自動化。使用過Linux系統(tǒng)的朋友應(yīng)該都知道它的命令行強大之處。話說回來了,以下這些命令使用技巧你又知道多少呢?

創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司提供網(wǎng)站設(shè)計和自適應(yīng)建站服務(wù)。團隊由有經(jīng)驗的網(wǎng)頁設(shè)計師、程序員和市場專家組成,能夠提供從H5響應(yīng)式網(wǎng)站,網(wǎng)站制作,廣告投放平臺,模板建站到微信小程序等全方位服務(wù)。 以客戶為中心,致力于為客戶提供創(chuàng)新、高效的解決方案,幫助您打造成功的企業(yè)網(wǎng)站。

1、Vim自動添加注釋及智能換行

# vi ~/.vimrc set autoindentset tabstop=4set shiftwidth=4function AddTitle()call setline(1,"#!/bin/bash")call append(1,"#====================================================")call append(2,"# Author: lizhenliang")call append(3,"# Create Date: " . strftime("%Y-%m-%d"))call append(4,"# Description: ")call append(5,"#====================================================")endfmap F4 :call AddTitle()cr

打開文件后,按F4就會自動添加注釋,省了不少時間:

2、查找并刪除/data這個目錄7天前創(chuàng)建的文件

# find /data -ctime +7 -exec rm -rf {} \;# find /data -ctime +7 | xargs rm -rf

3、tar命令壓縮排除某個目錄

# tar zcvf data.tar.gz /data --exclude=tmp #--exclude參數(shù)為不包含某個目錄或文件,后面也可以跟多個

4、查看tar包存檔文件,不解壓

# tar tf data.tar.gz #t是列出存檔文件目錄,f是指定存檔文件

5、使用stat命令查看一個文件的屬性

訪問時間(Access)、修改時間(modify)、狀態(tài)改變時間(Change)stat index.phpAccess: 2018-05-10 02:37:44.169014602 -0500Modify: 2018-05-09 10:53:14.395999032 -0400Change: 2018-05-09 10:53:38.855999002 -0400

6、批量解壓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 {}

7、篩除出文件中的注釋和空格

方法1:# grep -v "^#" httpd.conf |grep -v "^$"方法2:# sed -e ‘/^$/d’ -e ‘/^#/d’ httpd.conf http.conf或者# sed -e '/^#/d;/^$/d' #-e 執(zhí)行多條sed命令方法3:# awk '/^[^#]/|/"^$"' httpd.conf 或者# awk '!/^#|^$/' httpd.conf

8、篩選/etc/passwd文件中所有的用戶

方法1:# cat /etc/passwd |cut -d: -f1方法2:# awk -F ":" '{print $1}' /etc/passwd

9、iptables網(wǎng)站跳轉(zhuǎn)

先開啟路由轉(zhuǎn)發(fā):echo "1" /proc/sys/net/ipv4/ip_forward #臨時生效內(nèi)網(wǎng)訪問外網(wǎng)(SNAT):iptables –t nat -A POSTROUTING -s [內(nèi)網(wǎng)IP或網(wǎng)段] -j SNAT --to [公網(wǎng)IP]#內(nèi)網(wǎng)服務(wù)器要指向防火墻內(nèi)網(wǎng)IP為網(wǎng)關(guān)公網(wǎng)訪問內(nèi)網(wǎng)(DNAT)(公網(wǎng)端口映射內(nèi)網(wǎng)端口):iptables –t nat -A PREROUTING -d [對外IP] -p tcp --dport [對外端口] -j DNAT --to [內(nèi)網(wǎng)IP:內(nèi)網(wǎng)端口]#內(nèi)網(wǎng)服務(wù)器要配置防火墻內(nèi)網(wǎng)IP為網(wǎng)關(guān),否則數(shù)據(jù)包回不來。另外,這里不用配置SNAT,因為系統(tǒng)服務(wù)會根據(jù)數(shù)據(jù)包來源再返回去。

10、iptables將本機80端口轉(zhuǎn)發(fā)到本地8080端口

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

11、find命令查找文件并復(fù)制到/opt目錄

方法1:# find /etc -name httpd.conf -exec cp -rf {} /opt/ \;: #-exec執(zhí)行后面命令,{}代表前面輸出的結(jié)果,\;結(jié)束命令方法2:# find /etc -name httpd.conf |xargs -i cp {} /opt #-i表示輸出的結(jié)果由{}代替

12、查看根目錄下大于1G的文件

# find / -size +1024M 默認(rèn)單位是b,可以使用其他單位如,C、K、M

13、查看服務(wù)器IP連接數(shù)

# netstat -tun | awk '{print $5}' | cut -d: -f1 |sort | uniq -c | sort -n -tun:-tu是顯示tcp和udp連接,n是以IP地址顯示cut -d:-f1:cut是一個選擇性顯示一行的內(nèi)容命令,-d指定:為分隔符,-f1顯示分隔符后的第一個字段。uniq -c:報告或刪除文中的重復(fù)行,-c在輸出行前面加上出現(xiàn)的次數(shù)sort -n:根據(jù)不同類型進行排序,默認(rèn)排序是升序,-r參數(shù)改為降序,-n是根據(jù)數(shù)值的大小進行排序

14、插入一行到391行,包括特殊符號"/"

# sed -i "391 s/^/AddType application\/x-httpd-php .php .html/" httpd.conf

15、列出nginx日志訪問最多的10個IP

方法1:# awk '{print $1}' access.log |sort |uniq -c|sort -nr |head -n 10sort :排序uniq -c:合并重復(fù)行,并記錄重復(fù)次數(shù)sort -nr :按照數(shù)字進行降序排序方法2:# awk '{a[$1]++}END{for(v in a)print v,a[v] |"sort -k2 -nr |head -10"}' access.log

16、顯示nginx日志一天訪問量最多的前10位IP

# awk '$4="[16/May/2017:00:00:01" $4="[16/May/2017:23:59:59"' access_test.log |sort |uniq -c |sort-nr |head -n 10# awk '$4="[16/Oct/2017:00:00:01" $4="[16/Oct/2017:23:59:59"{a[$1]++}END{for(i in a){print a[i],i|"sort -k1 -nr |head -n 10"}}' access.log

17、獲取當(dāng)前時間前一分鐘日志訪問量

# date=`date +%d/%b/%Y:%H:%M --date="-1 minute"` ; awk -vd=$date '$0~d{c++}END{print c}' access.log# date=`date +%d/%b/%Y:%H:%M --date="-1 minute"`; awk -vd=$date '$4="["d":00" $4="["d":59"{c++}END{print c}' access.log # grep `date +%d/%b/%Y:%H:%M --date="-1 minute"` access.log |awk 'END{print NR}'# start_time=`date +%d/%b/%Y:%H:%M:%S --date="-5 minute"`;end_time=`date +%d/%b/%Y:%H:%M:%S`;awk -vstart_time="[$start_time" -vend_time="[$end_time" '$4=start_time $4=end_time{count++}END{print count}' access.log

18、找出1-255之間的整數(shù)

方法1:# ifconfig |grep -o '[0-9]\+' #+號匹配前一個字符一次或多次方法2:# ifconfig |egrep -o '\([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\'

19、找出IP地址

# ifconfig |grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' #-o只顯示匹配字符

20、給文檔增加開頭和結(jié)尾說明信息

# awk ‘BEGIN{print "開頭顯示信息"}{print $1,$NF} END{print "結(jié)尾顯示信息"}’/etc/passwd# awk 'BEGIN{printf " date ip\n------------------\n"} {print $3,$4} END{printf "------------------\nend...\n"}' /var/log/messages date ip------------------03:13:01 localhost10:51:45 localhost------------------end...

21、查看網(wǎng)絡(luò)狀態(tài)命令

# netstat -antp #查看所有網(wǎng)絡(luò)連接# netstat -lntp #只查看監(jiān)聽的端口信息# lsof -p pid #查看進程打開的文件句柄# lsof -i:80 #查看端口被哪個進程占用

22、生成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

23、while死循環(huán)

while true; do #條件精確等于真,也可以直接用條件[ "1" == "1" ],條件一直為真ping -c 2

24.awk格式化輸出

將文本列進行左對齊或右對齊。

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

25.整數(shù)運算保留小數(shù)點

方法1:# echo 'scale=2; 10/3;'|bc #scale參數(shù)代表取小數(shù)點位數(shù)方法2:# awk BEGIN'{printf "%.2f\n",10/3}'

26.數(shù)字求和

# cat a.txt10235356方法1:#!/bin/bashwhile read num;dosum=`expr $sum + $num`done a.txtecho $sum方法2:# cat a.txt |awk '{sum+=$1}END{print sum}'

27、判斷是否為數(shù)字(字符串判斷也如此)

# [[ $num =~ ^[0-9]+$ ]] echo yes || echo no #[[]]比[]更加通用,支持模式匹配=~和字符串比較使用通配符`^ $:從開始到結(jié)束是數(shù)字才滿足條件=~:一個操作符,表示左邊是否滿足右邊(作為一個模式)正則表達式

28、刪除換行符并將空格替換別的字符

# cat a.txt |xargs echo -n |sed 's/[ ]/|/g' #-n 不換行# cat a.txt |tr -d '\n' #刪除換行符

29、查看文本中20至30行內(nèi)容(總共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

30、文本中兩列位置替換

# cat a.txt60.35.1.15 awk '{print $2"\t"$1}' a.txt

LINUX中dnsmap命令不反應(yīng)怎么辦?(我裝的fedora 25)

可以在domain-name-servers配置項中設(shè)置多個dns服務(wù)器,如optiondomain-name-servers1.1.1.1,2.2.2.2;

如何使用arm-linux-gcc交叉編譯器生成map文件

方法/步驟

從網(wǎng)上下載arm-linux-gcc 4.4.3的源碼

進入Linux的終端,將當(dāng)前目錄設(shè)為arm-linux-gcc的下載目錄,輸入tar -xzf arm-linux-gcc-4.4.3.tar.gz,將文件解壓,解壓后會有一個opt的文件夾。

在/usr/local/下建立一個名為arm的文件夾,在終端中輸入命令:cd /usr/local/,回車,然后再輸入命令:mkdir arm,建立arm目錄,并修改該文件夾的屬性為rwx,輸入命令:chmod 777 arm

將之前解壓得到的opt文件壓下的源碼,復(fù)制到上一步中創(chuàng)建的arm文件夾下,在終端中輸入命令:sudo cp -r /opt/FriendlyARM/toolschain/4.4.3 /usr/local/arm

到這里已經(jīng)基本安裝好了,到為了避免每次使用arm-linux-gcc時都要輸入它所在的完整路徑,所以這里我們要修改一下環(huán)境變量$PATH。在終端中輸入:sudo gedit /etc/profile,打開profile文件,在最后一行加上“export PATH=$PATH:/usr/local/arm/4.4.3/bin”然后保存文件。

立即使新的環(huán)境變量生效,輸入:source /etc/profile。再輸入:echo $PATH查看環(huán)境變量,如圖。如果不成功,則直接重新啟動系統(tǒng),再查看。因為之前我已經(jīng)安裝過了,為了演示,所以圖中會有兩個/usr/local/arm/4.4.3/bin。

最后檢查是否安裝完成,輸入:arm-linux-gcc -v查看版本信息,如果出現(xiàn)以下信息,則說明安裝成功。

Linux相關(guān)使用介紹

Linux命令分為內(nèi)部命令(shell自帶的命令)和外部命令(不是shell自帶的命令,由用戶安裝),怎么鑒別是內(nèi)部命令和外部命令呢?可以通過type命令來鑒別

什么是shell呢?shell是一個程序,常用的有bash shell,平時我們通過用戶名和密碼登錄到linux,其實就是登錄到bash shell程序,通過bash shell來操作linux內(nèi)核

命令執(zhí)行流程

那豈不是說使用外部命令效率會很慢嗎?

其實一點都不慢,它會去PATH環(huán)境變量設(shè)置的一堆目錄中查找

cd is a shell builtin 表示內(nèi)部命令

ifconfig is hashed (/usr/sbin/ifconfig) 表示外部命令

cd命令切換文件夾

現(xiàn)在我們cd /usr/sbin

通過cat命令查看文件內(nèi)容

通過cat ifconfig來查看ifconfig,發(fā)現(xiàn)是亂碼文件

file命令查看文件類型

輸入file ifconfig

從輸出信息可以看出它是一個二進制可執(zhí)行文件

whereis命令查看文件位置

find / -name jdk

echo命令用戶打印信息,相當(dāng)于java中的system.out.println

可以使用回車查看下一行、空格查看下一頁、q退出

一般使用man查看外部命令,help查看內(nèi)部命令

查看linux下的應(yīng)用和應(yīng)用的進程號

當(dāng)我們在這個窗口中輸入kill -9 1593的話,另外一個正在編輯文件的進程就會退出

在前面我們已經(jīng)講過,bash shell程序在執(zhí)行命令的一個過程及原理,對于外部命令,它會去PATH這個環(huán)境變量中查找執(zhí)行命令所在的路徑,當(dāng)然在去PATH中尋找之前會先去hash表中查找這個命令有沒有執(zhí)行過,執(zhí)行過的話會記錄在hash表中,則此次查找只需從hash表中就可以很方便的找到

查看分區(qū)信息 -h 表示文件大小后面會顯示文件大小

查看文件的使用情況

使用man ls 查看ls命令的相關(guān)介紹

-a:可以查看隱藏文件

-l:以長列表的形式展示文件列表信息

第一位 -:表示文件,d表示文件夾,b表示塊設(shè)備文件,c表示字符設(shè)備文件,p表示命令管道文件,s表示套接字文件, 從第二位開始往后數(shù)九位表示屬主權(quán)限(每三位一組 rwx:讀、寫、執(zhí)行),第11位表示的點表示分隔符,點后面的數(shù)字表示文件有幾個硬連接,第一個root代表屬主名,第二個root代表這個第一個root所在的組織,接下來的5表示文件大小,5后面的日期表示文件最后一次修改的時間, 1.txt代表的文件或文件夾的名稱

小結(jié):

切換文件目錄

cd 文件路徑

cd:切換到家目錄

cd ~:回到家目錄(也就是家目錄)

cd ..:回到上一級目錄

創(chuàng)建目錄

mkdir 目錄名

mkdir -p 目錄名,級聯(lián)創(chuàng)建目錄

cp 被拷貝的文件(可以是路徑加文件名) 拷貝到哪個位置

復(fù)制目錄使用

cp -r 被拷貝的目錄 目標(biāo)位置

移動命令

mv 被移動的文件 目標(biāo)位置+目標(biāo)文件名

rm 文件名(此中方式的刪除需要再輸入 yes)

rm -f 文件名,無提示直接刪除

rm -rf 文件夾

ln命令默認(rèn)創(chuàng)建的是硬連接

ln profile a:將a硬連接到profile文件上,他們底層共用一個文件,刪除他們之中任何一個

對另外一個沒有影響,同時你也可以使用 ll -i命令查看文件編號

ln -s profile a:將a軟連接到profile文件,當(dāng)你訪問a的時候會去訪問profile,profile再訪問底層文件,當(dāng)將profile刪除了之后a就無法訪問了

一致時間、創(chuàng)建新文本

touch 已存在的文件:會將文件的訪問時間、更新時間、改變時間(即上面stat中介紹的三個時間)變成一致

touch 不存在的文件:會創(chuàng)建一個新的文本

cat命令查看文件內(nèi)容

cat 1.txt:查看單個文件內(nèi)容

cat 1.txt 2.txt:查看多個文件

more 1.txt:以分頁的形式查看文件內(nèi)容,按空格:下一頁,回車:下一行(注意它不能回看,回看的話只能用鼠標(biāo)回輪)

less 1.txt:使用空格下一頁, b看上一頁, 回車看下一行

注意less的話會把整個文件內(nèi)容加載到內(nèi)存,如果文件比較大的話,建議使用more命令查看

head命令默認(rèn)查看文件前10行內(nèi)容, head 1.txt

head -5 1.txt:查看文件前5行的內(nèi)容

tail命令默認(rèn)查看文件后10行的內(nèi)容 tail 1.txt

tail -5 1.txt:查看文件后5行內(nèi)容

tail -f 1.txt:實時查看文件增量內(nèi)容

cat b.txt | head -3:管道左邊的命令會以輸出流的形式交給管道右邊的命令,管道右邊以輸入流的形式接收并且拼到命令的右邊

注意:ls -l 不能接受前面的輸出流,這個怎么辦呢?可以通過xargs命令

vi文本編輯器末行模式的操作

set nu(number的縮寫): 設(shè)置行號

set nonu(nonumber的縮寫):取消行號

set readonly:設(shè)置為只讀

n:往下查找

N:往上查找

n:往上查找

N:往下查找

一般我們會在/etc/profile文件中設(shè)置一些環(huán)境變量,但是在設(shè)置的時候可能沒有記住目錄,這時候我們可以使用如下方式

效果

格式 :s/str1/str2/gi

/ : 臨近s命令的第一個字符邊界字符,也可以是 @或#

g : 一行內(nèi)全部替換

i : 忽略大小寫

范圍

n:行號

. :當(dāng)前光標(biāo)行

+n :偏移n行

-3

%:全文

全部刪除 1,$d

刪除前三行

刪除倒數(shù)第2行

光標(biāo)挪到最后一行 按下小寫的p

效果圖

正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特殊字符、及這些特定字符的組合組成一個"規(guī)則字符串",這個"規(guī)則字符串"用來表達對字符串的一種過濾邏輯。

\ :轉(zhuǎn)義字符

. :匹配任意單個字符

[1249a] :匹配中括號中任意字符

[^12] :匹配中括號中任意非1和2的字符

[a-k] :匹配中括號中任意a~k中的一個字符

^ :行首

$ :行尾

abc :單詞首尾邊界(匹配單詞abc)

| :連接操作符

(,) : 選擇操作符

\n :反向引用

? :匹配0到1次

在Linux中通過grep命令使用正則表達式來匹配信息

f :選擇顯示的列

s :不顯示沒有分隔符的行

d :自定義分隔符

n :按數(shù)值排序

r :倒序

t :自定義分隔符

K :選擇排序列

u :合并相同行

f :忽略大小寫

sed:行編輯器,以行為單位進行處理,可以將數(shù)據(jù)進行替換、刪除、新增、選取等特定工作

sed [options] 'Command' file ...

-n :靜默模式,不再默認(rèn)顯示模式空間(內(nèi)存)中的內(nèi)容

-i :直接修改原文件

-e SCRIPT :可以同時執(zhí)行多個腳本

-f /PATH/TO/SED_SCRIPT

-r :表示使用擴展正則表達式

d :刪除符合條件的行

p :顯示符號條件的行

a \string :在指定的行后面追加新行,內(nèi)容為string

\n :可以用于換行

i \string :在指定的行前面添加新行,內(nèi)容為string

c :取代,c的后面可以接字符串

s /pattern/string/修飾符:查找并替換。默認(rèn)只替換每行中第一次被模式匹配到的字符串

g :行內(nèi)全局替換

i :忽略字符大小寫

s///:s###,s@@@

(),\1,\2

sed "2p" ctxt

但是在執(zhí)行下面的操作的時候文本中的內(nèi)容都顯示出來了,它的原理是,打印匹配的行,以及文本中所有的內(nèi)容

注意:它刪的是內(nèi)存中的數(shù)據(jù),而不是目標(biāo)文件

sed -i "3d" ctxt

它的原理是先把內(nèi)存中的第3行數(shù)據(jù)刪除,然后再把內(nèi)存中的數(shù)據(jù)寫回原文件,這時原文件中的第三行就沒有了

使用變量的形式

awk是一個強大的文本分析工具。

相對于grep的查找,sed的編輯,awk在其對數(shù)據(jù)分析并生成報告時,顯得尤為強大。

簡單來說awk就是把文件逐行的讀入,(空格,制表符)為默認(rèn)分隔符將每行切片,切開的部分再進行各種分析處理。

awk -F '{pattern + action}' {filenames}

支持自定義分隔符,默認(rèn)是以空格分隔的

支持正則表達式匹配

支持自定義變量,數(shù)組 a[1] a[tom] map(key)

支持內(nèi)置變量

ARGC 命令行參數(shù)個數(shù)

ARGV 命令行參數(shù)排列

ENVIRON 支持隊列中系統(tǒng)環(huán)境變量的使用

FILENAME awk瀏覽的文件名

FNR 瀏覽文件的記錄數(shù)

FS 設(shè)置輸入域分隔符,等價于命令行 -F選項

NF 瀏覽記錄的域的個數(shù)

NR 已讀的記錄數(shù)

OFS 輸出域分隔符

ORS 輸出記錄分隔符

RS 控制記錄分隔符

支持函數(shù)

print、split、substr、sub、gsub

支持流程控制語句

if、while、do/while、for、break、continue

練習(xí)題

passwd文件內(nèi)容解讀:

passwd文件中每行由7個字段組成,字段與字段之間由:分隔,第一個字段代表用戶名,第二個字段表示用戶對應(yīng)的加密后的密碼,第三個字段表示userId,第四個字段表示groupId,第五個字段表示對用戶的描述,第六個字段表示用戶的家目錄,第七個字段表示的是這個用戶默認(rèn)使用的shell

其中$0表示整行

統(tǒng)計報表:合計每人1月工資, 0:manager,1:worker

將awk后面的內(nèi)容封裝到一個文件中(封裝的腳本要遵循一定的格式)

qqq文件的內(nèi)容格式


本文標(biāo)題:linuxmap命令 Linux jmap
文章分享:http://weahome.cn/article/hjsoeg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部