溫馨提示×

溫馨提示×

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

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

Linux實用技巧有哪些

發(fā)布時間:2021-10-15 09:07:10 來源:億速云 閱讀:113 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“Linux實用技巧有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Linux實用技巧有哪些”吧!

1. 快速清空文件的方法

快速清空一個文件,有 N 種方法,我比較喜歡下邊這種,因為它最短

$ > access.log

不過癮?好吧,我也順便總結(jié)下,其它幾種最常見的清空文件的方法

  • : > access.log
  • true > access.log
  • cat /dev/null > access.log
  • echo -n "" > access.log
  • echo > access.log
  • truncate -s 0 access.log

簡單解釋下, : 在 shell 中是一個內(nèi)置命令,表示 no-op,大概就是空語句的意思,所以 : 的那個用法,就是執(zhí)行命令后,什么都沒有輸出,將空內(nèi)容覆蓋到文件。

2. 快速生成大文件

有時候,在 Linux 上,我們需要一個大文件,用于測試上傳或下載的速度,通過 dd 命令可以快速生成一個大文件

$ dd if=/dev/zero of=file.img bs=1M count=1024

上述命令,生成一個文件名為 file.img 大小為 1G 的文件。

3. 安全擦除硬盤數(shù)據(jù)

介紹一種擦除硬盤數(shù)據(jù)的方法,高效,安全??梢酝ㄟ^ dd 命令,輕松實現(xiàn):

$ dd if=/dev/urandom of=/dev/sda

使用 /dev/urandom 生成隨機數(shù)據(jù),將生成的數(shù)據(jù)寫入 sda 硬盤中,相當(dāng)于安全的擦除了硬盤數(shù)據(jù)。

當(dāng)年陳老師,如果學(xué)會了這條命令,可能也不會有艷兆門事件了。

4. 快速制作系統(tǒng)盤

在 Linux 下制作系統(tǒng)盤,老毛桃神么工具都弱爆了,直接一條命令搞定:

$ dd if=ubuntu-server-amd64.iso of=/dev/sdb

哈哈,是不是很爽,sdb 可以 U 盤,也可以是普通硬盤

5. 查看某個進程的運行時間

可能,大部分同學(xué)只會使用 ps aux,其實可以通過 -o 參數(shù),指定只顯示具體的某個字段,會得到更清晰的結(jié)果。

$ ps -p 10167 -o etimes,etime
ELAPSED     ELAPSED
1712055 19-19:34:15
 

通過 etime 獲取該進程的運行時間,可以很直觀地看到,進程運行了 19 天

同樣,可以通過 -o 指定 rss 可以只獲取該進程的內(nèi)存信息。

$ ps -p 10167 -o rss
  RSS
 2180
 

6. 動態(tài)實時查看日志

通過 tail 命令 -f 選項,可以動態(tài)地監(jiān)控日志文件的變化,非常實用

$ tail -f test.log

如果想在日志中出現(xiàn) Failed 等信息時立刻停止 tail 監(jiān)控,可以通過如下命令來實現(xiàn):

$ tail -f test.log | sed '/Failed/ q'

7. 時間戳的快速轉(zhuǎn)換

時間操作,對程序員來說就是家常便飯。有時候希望能夠?qū)r間戳,轉(zhuǎn)換為日期時間,在 Linux 命令行上,也可以快速的進行轉(zhuǎn)換:

$ date -d@1234567890 +"%Y-%m-%d %H:%M:%S"
2009-02-14 07:31:30
 

當(dāng)然,也可以在命令行上,查看當(dāng)前的時間戳

$ date +%s
1617514141

8. 優(yōu)雅的計算程序運行時間

在 Linux 下,可以通過 time 命令,很容易獲取程序的運行時間:

$ time ./test
real    0m1.003s
user    0m0.000s
sys     0m0.000s
 

可以看到,程序的運行時間為: 1.003s。細(xì)心的同學(xué),會看到 real 貌似不等于 user + sys,而且還遠(yuǎn)遠(yuǎn)大于,這是怎么回事呢?

先來解釋下這三個參數(shù)的含義:

  • real:表示的鐘表時間,也就是從程序執(zhí)行到結(jié)束花費的時間;
  • user:表示運行期間,cpu 在用戶空間所消耗的時間;
  • sys:表示運行期間,cpu 在內(nèi)核空間所消耗的時間;

由于 usersys 只統(tǒng)計 cpu 消耗的時間,程序運行期間會調(diào)用 sleep 發(fā)生阻塞,也可能會等待網(wǎng)絡(luò)或磁盤 IO,都會消耗大量時間。因此對于類似情況,real 的值就會大于其它兩項之和。

另外,也會遇到 real 遠(yuǎn)遠(yuǎn)小于 user + sys 的場景,這是什么鬼情況?

這個更好理解,如果程序在多個 cpu 上并行,那么 usersys 統(tǒng)計時間是多個 cpu 時間,實際消耗時間 real 很可能就比其它兩個之和要小了

9. 命令行查看ascii碼

我們在開發(fā)過程中,通常需要查看 ascii 碼,通過 Linux 命令行就可以輕松查看,而不用去 Google 或 Baidu

$ man ascii

10. 優(yōu)雅的刪除亂碼的文件

在 Linux 系統(tǒng)中,會經(jīng)常碰到名稱亂碼的文件。想要刪除它,卻無法通過鍵盤輸入名字,有時候復(fù)制粘貼亂碼名稱,終端可能識別不了,該怎么辦?

不用擔(dān)心,下邊來展示下 find 是如何優(yōu)雅的解決問題的。

$ ls  -i
138957 a.txt  138959 T.txt  132395 ???.txt

$ find . -inum 132395 -exec rm {} \;
 

命令中,-inum 指定的是文件的 inode 號,它是系統(tǒng)中每個文件對應(yīng)的唯一編號,find 通過編號找到后,執(zhí)行刪除操作。

11. Linux上獲取你的公網(wǎng)IP地址

在辦公或家庭環(huán)境,我們的虛擬機或服務(wù)器上配置的通常是內(nèi)網(wǎng) IP 地址,我們?nèi)绾沃?,在與外網(wǎng)通信時,我們的公網(wǎng)出口 IP 是神馬呢?

這個在 Linux 上非常簡單,一條命令搞定

$ curl ip.sb
$ curl ifconfig.me
 

上述兩條命令都可以

12. 如何批量下載網(wǎng)頁資源

有時,同事會通過網(wǎng)頁的形式分享文件下載鏈接,在 Linux 系統(tǒng),通過 wget 命令可以輕松下載,而不用寫腳本或爬蟲

$ wget -r -nd -np --accept=pdf http://fast.dpdk.org/doc/pdf-guides/
# --accept:選項指定資源類型格式 pdf
 

13. 歷史命令使用技巧

分享幾個歷史命令的使用技巧,能夠提高你的工作效率。

  • !!:重復(fù)執(zhí)行上條命令;
  • !N:重復(fù)執(zhí)行 history 歷史中第 N 條命令,N 可以通過 history 查看;
  • !pw:重復(fù)執(zhí)行最近一次,以     pw開頭的歷史命令,這個非常有用,小編使用非常高頻;
  • !$:表示最近一次命令的最后一個參數(shù);

猜測大部分同學(xué)沒用過 !$,這里簡單舉個例子,讓你感受一下它的高效用法

$ vim /root/sniffer/src/main.c
$ mv !$ !$.bak
# 相當(dāng)于
$ mv /root/sniffer/src/main.c /root/sniffer/src/main.c.bak
 

當(dāng)前工作目錄是 root,想把 main.c 改為 main.c.bak。正常情況你可能需要敲 2 遍包含 main.c 的長參數(shù),當(dāng)然你也可能會選擇直接復(fù)制粘貼。

而我通過使用 !$ 變量,可以很輕松優(yōu)雅的實現(xiàn)改名,是不是很 hacker 呢?

14. 快速搜索歷史命令

在 Linux 下經(jīng)常會敲很多的命令,我們要怎么快速查找并執(zhí)行歷史命令呢?

通過上下鍵來翻看歷史命令,No No No,可以通過執(zhí)行 Ctrl + r,然后鍵入要所搜索的命令關(guān)鍵詞,進行搜索,回車就可以執(zhí)行,非常高效。

到此,相信大家對“Linux實用技巧有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI