首頁 > 運維 > linux運維 > 主體

整理分享十五個Linux實用技巧(總結分享)

WBOY
發布: 2022-01-20 17:45:22
轉載
2550 人瀏覽過

這篇文章跟大家分享一些非常實用小技巧,熟悉 Linux 系統的同學都知道,它高效主要體現在命令列。透過命令列,可以將許多簡單的命令,透過自由的組合,得到非常強大的功能。希望對大家有幫助。

整理分享十五個Linux實用技巧(總結分享)

命令列也意味著可以自動化,自動化會使你的工作更有效率,釋放很多手動操作,讓你有更多的時間去做更有意義的事。

這篇文章,會分享一些非常實用小技巧,希望能夠幫助你提升工作效率,學完就能夠用得上!

整理分享十五個Linux實用技巧(總結分享) 

1. 快速清空文件的方法

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

$ > access.log
登入後複製

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

  • #: > access.log

  • true > access.log

  • #cat /dev/null > access.log

  • #echo -n "" > access.log

  • #echo > access.log

#truncate -s 0 access.log

#簡單解釋下,

:

在shell 中是一個內建指令,表示no-op,大概就是空語句的意思,所以

:

的那個用法,就是執行指令後,什麼都沒有輸出,將空內容覆蓋到檔案。  

2. 快速產生大文件有時候,在Linux 上,我們需要一個大文件,用於測試上傳或下載的速度,透過

dd

指令可以快速產生一個大檔案

$ dd if=/dev/zero of=file.img bs=1M count=1024
登入後複製
上述指令,產生一個檔案名稱為file.img 大小為1G 的檔案。

 

3. 安全擦除硬碟資料

#介紹一種擦除硬碟資料的方法,高效,安全。可以透過dd 指令,輕鬆實現:

$ dd if=/dev/urandom of=/dev/sda
登入後複製
使用

/dev/urandom

產生隨機數據,將產生的資料寫入sda 硬碟中,相當於安全的擦除了硬碟資料。

當年陳老師,如果學會了這條指令,可能也不會有艷兆門事件了。  

4. 快速製作系統盤

#在Linux 下製作系統盤,老毛桃神麼工具都弱爆了,直接一條指令搞定:

$ dd if=ubuntu-server-amd64.iso of=/dev/sdb
登入後複製

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

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

可能,大部分同學只會使用

ps aux,其實可以透過-o 參數,指定只顯示具體的某個字段,會得到更清晰的結果。

$ ps -p 10167 -o etimes,etime
ELAPSED     ELAPSED
1712055 19-19:34:15
登入後複製

透過

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

同樣,可以透過

-o 指定rss

可以只取得該行程的記憶體資訊。

$ ps -p 10167 -o rss
  RSS
 2180
登入後複製

6. 動態即時查看日誌

#透過

tail

指令-f 選項,可以動態地監控日誌檔案的變化,非常實用

$ tail -f test.log
登入後複製

如果想在日誌中出現Failed 等資訊時立刻停止tail 監控,可以透過以下指令來實現:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;toolbar:false;">$ tail -f test.log | sed &amp;#39;/Failed/ q&amp;#39;</pre><div class="contentsignin">登入後複製</div></div>#7. 時間戳記的快速轉換時間操作,對程式設計師來說就是家常便飯。有時候希望能夠將時間戳,轉換為日期時間,在Linux 命令列上,也可以快速的進行轉換:

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

當然,也可以在命令列上,查看當前的時間戳

$ date +%s
1617514141
登入後複製
  • 8. 優雅的計算程式運行時間

    在Linux 下,可以透過

    time### 指令,很容易取得程式的運行時間:###
    $ time ./test
    real    0m1.003s
    user    0m0.000s
    sys     0m0.000s
    登入後複製
    ###可以看到,程式的運行時間為: ###1.003s###。細心的同學,會看到 ###real### 看起來不等於 ###user### ###sys###,而且還遠大於,這是怎麼回事呢? ######先來解釋下這三個參數的意義:################real###:表示的鐘錶時間,也就是從程式執行到結束花費的時間;###
  • user:表示运行期间,cpu 在用户空间所消耗的时间;

  • sys:表示运行期间,cpu 在内核空间所消耗的时间;

由于 usersys 只统计 cpu 消耗的时间,程序运行期间会调用 sleep 发生阻塞,也可能会等待网络或磁盘 IO,都会消耗大量时间。因此对于类似情况,real 的值就会大于其它两项之和。

另外,也会遇到 real 远远小于 user + sys 的场景,这是什么鬼情况?

这个更好理解,如果程序在多个 cpu 上并行,那么 usersys 统计时间是多个 cpu 时间,实际消耗时间 real 很可能就比其它两个之和要小了

9. 命令行查看ascii码

我们在开发过程中,通常需要查看 ascii 码,通过 Linux 命令行就可以轻松查看,而不用去 Google 或 Baidu

$ man ascii
登入後複製

10. 优雅的删除乱码的文件

在 Linux 系统中,会经常碰到名称乱码的文件。想要删除它,却无法通过键盘输入名字,有时候复制粘贴乱码名称,终端可能识别不了,该怎么办?

不用担心,下边来展示下 find 是如何优雅的解决问题的。

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

$ find . -inum 132395 -exec rm {} \;
登入後複製

命令中,-inum 指定的是文件的 inode 号,它是系统中每个文件对应的唯一编号,find 通过编号找到后,执行删除操作。

11. Linux上获取你的公网IP地址

在办公或家庭环境,我们的虚拟机或服务器上配置的通常是内网 IP 地址,我们如何知道,在与外网通信时,我们的公网出口 IP 是神马呢?

这个在 Linux 上非常简单,一条命令搞定

$ curl ip.sb
$ curl ifconfig.me
登入後複製

上述两条命令都可以

12. 如何批量下载网页资源

有时,同事会通过网页的形式分享文件下载链接,在 Linux 系统,通过 wget 命令可以轻松下载,而不用写脚本或爬虫

$ wget -r -nd -np --accept=pdf http://fast.dpdk.org/doc/pdf-guides/
# --accept:选项指定资源类型格式 pdf
登入後複製

13. 历史命令使用技巧

分享几个历史命令的使用技巧,能够提高你的工作效率。

  • !!:重复执行上条命令;

  • !N:重复执行 history 历史中第 N 条命令,N 可以通过 history 查看;

  • !pw:重复执行最近一次,以pw开头的历史命令,这个非常有用,小编使用非常高频;

  • !$:表示最近一次命令的最后一个参数;

猜测大部分同学没用过 !$,这里简单举个例子,让你感受一下它的高效用法

$ vim /root/sniffer/src/main.c
$ mv !$ !$.bak
# 相当于
$ mv /root/sniffer/src/main.c /root/sniffer/src/main.c.bak
登入後複製

当前工作目录是 root,想把 main.c 改为 main.c.bak。正常情况你可能需要敲 2 遍包含 main.c 的长参数,当然你也可能会选择直接复制粘贴。

而我通过使用 !$ 变量,可以很轻松优雅的实现改名,是不是很 hacker 呢? 

14. 快速搜索历史命令

在 Linux 下经常会敲很多的命令,我们要怎么快速查找并执行历史命令呢?

通过上下键来翻看历史命令,No No No,可以通过执行 Ctrl + r,然后键入要所搜索的命令关键词,进行搜索,回车就可以执行,非常高效。 

15. 真正的黑客不能忽略技巧

最后,再分享一个真正的黑客不能忽略技巧。我们在所要执行的命令前,加一个空格,那这条命令就不会被 history 保存到历史记录

有时候,执行的命令中包含敏感信息,这个小技巧就显得非常实用了,你也不会再因为忘记执行 history -c 而烦恼了。

相关推荐:《Linux视频教程

以上是整理分享十五個Linux實用技巧(總結分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!