在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何去使用這幾個Linux命令?

FPGA之家 ? 來源:IOT物聯網小鎮 ? 作者:道哥 ? 2021-06-15 16:06 ? 次閱讀

使用 Linux 系統的開發者,很多人都有自己喜歡的系統命令,下面這個幾個命令令是我平常用的比較多的,分享一下。

我不會教科書般的羅列每個指令的詳細用法,只是把日常開發過程中的一些場景下,經常使用的命令常見用法進行演示。

No.1 grep

grep、awk、sed 這三個指令,作為 Linux 系統中文本處理的三大法寶,我最喜歡、最常用的就是 grep 指令,沒有之一!

它的基本用法是:

grep [OPTIONS] PATTERN [FILE.。。] grep [OPTIONS] [-e PATTERN]。。。 [-f FILE]。。。 [FILE.。。]

看起來有那么的選項,我最常用的是這 2 個場景:

1. 在一個文件或者文件夾中,查找指定的字符串:

grep -rni “pthread” *

-r: 遞歸查找;

-n:打印行號;

-i: 不區分大小寫;

2. 查看某個進程的相關信息,例如:進程 ID

$ ps -aux | grep bash root 4681 0.0 0.1 24892 5912 pts/3 Ss 10:10 0:00 bash root 18052 0.0 0.0 15968 960 pts/3 S+ 13:38 0:00 grep --color=auto bash

可以看到,結果中出現了 grep 這個指令自身的進程信息,可以通過 -v 選項過濾掉它:

$ ps -aux | grep bash | grep -v grep root 4681 0.0 0.1 24892 5912 pts/3 Ss 10:10 0:00 bash

最后,再結合 awk 命令,就可以把進程ID 4681 提取出來了:

$ ps -aux | grep bash | grep -v grep | awk ‘{print $2}’ 4681

在一些腳本工具中,這樣的用法還是很常見的。

例如:在一些守護進程的啟動腳本中,都會利用這條指令來判斷:當前系統中是否已經有一個實例正在運行了。

No.2 q

看到這個指令,您一定會疑惑:僅僅一個字母 q,這是何方神圣?

Linux 系統中壓根就沒有這個命令!

是的,這個字母僅僅是一個 alias(別名)。

我有很強的強迫癥,在終端窗口執行一條命令的時候,我經常會需要確認指令是否執行正確。

在 Linux 系統中,$? 用來表示最后命令的退出狀態: 0 表示沒有錯誤,其他表示有錯誤。

因此,在執行完一條命令后,可以執行下面的這條命令來確認:剛才執行的那條命令是否成功了。

echo $?

強迫癥的問題是解決了,但是由于這條指令使用的太頻繁了,需要敲那么多的字符,還要結合 shift 按鍵。

于是我就給它設置了一個 alias(別名)。

設置 alias 的方法估計都知道啊,就是在個人家目錄下的 .bashrc 中修改。

我的 alias 設置如下:

alias ll=‘ls -lF’ alias la=‘ls -A’ alias l=‘ls -CF’ alias q=‘echo $?’

這樣的話,每次執行完一條系統命令之后,隨手敲一個字母 q 就可以檢查執行結果了,省時省力!

No.3 pwd

可能有些人會奇:pwd 怎么會是常用命令呢?它的作用是打印當前路徑,在命令行窗口中,路徑是一直顯示出來的啊!

沒錯,在默認的情況下,當前所處的路徑信息,是直接顯示出來的,如下:

root@ubuntu:~/OpenSource/linux-4.15/samples/watchdog$

但是這里有一個小小的問題:如果終端窗口的大小并不是全屏的,如果目錄層次比較深,那么顯示的路徑信息就會特別的長,這樣的話,本來就不太寬的終端窗口就顯得很擠,輸入命令的時候很可能要折返到下一行去。

于是,我就喜歡把這個顯示的路徑給它縮短:只顯示最后一個文件目錄,如下:

root@ubuntu:watchdog$

也就是把前面的 ~/OpenSource/linux-4.15/samples 路徑信息都丟掉,這樣的話,終端窗口中就有足夠的空間來輸入了。

如果某個時候,我想看一下當前目錄的全路徑,那么就執行一下 pwd 這個指令就可以了。

這就是我為什么經常使用 pwd 命令的原因。

那么,應該怎么樣來去掉顯示路徑中的目錄信息呢?

還是修改家目錄下的 .bashrc 文件:

if [ “$color_prompt” = yes ]; then PS1=‘${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$ ’ else PS1=‘${debian_chroot:+($debian_chroot)}u@h:w$ ’ fi

找到上面這幾行內容,把最后面的 w 修改成 W 即可,也就是小寫的 w 改成大寫的 W。

如果你正在測試,請不要忘記使用 source .bashrc 或者 。 .bashrc 命令來重新加載哦!

No.4 find

find 命令用來查找符合指定條件的文件。

我最常用的場景就是:查找指定名稱或類型的文件了。

特別是在寫 Makefile 的時候,經常遇到找不到頭文件的錯誤,于是就可以這樣查找:

find 。/ -name xxx.h

或者按照后綴名來查找文件:

find 。/ -name *.txt

No.5 history

history 用來記錄執行過的命令,如果您很少使用這條命令,那說明您的記憶力很好!

但是對于我這樣忘性比較好的人來說,history 命令簡直太有用了!

我在命令行窗口中測試某段代碼,經常需要反復的做這樣的排錯過程:修改代碼-編譯-執行-查看結果。

如果編譯指令比較長,我相信沒有誰樂意一個字符一個字符的敲鍵盤,大部分是使用 history 列出最近使用的命令,然后復制、粘貼一下。

查看歷史命令的時候,由于輸出太多,可以結合 grep 指令,只顯示我們感興趣的命令記錄,例如:

history | grep gcc

那么,結果中將只會顯示帶有 gcc 字眼的那些命令。

另外,還有一個小技巧:在不查看 history 的情況下,快速的輸入之前執行過的某條指令(有一個前提條件:你必須能記住那條指令中剛開始的幾個字符)。

比如,之前已經執行過這條指令:

gcc -m32 -Wl,--export-dynamic -o main main.c -ldl

幾分鐘之后,我想再次執行這條命令,可以這么做:

同時按下 control 和 r 這兩個按鍵,此時輸入光標處就會變成這樣:

root@ubuntu:tmp$ (reverse-i-search)`‘:

這時,可以輸入命令最前面的幾個字母:gcc -m,此時終端就會到歷史命令記錄中去查找,輸入的字符越多,匹配就越精確。

如果輸入的字符,精準的匹配到了某個歷史命令記錄,它就立刻把這條命令完整的顯示出來。

這個小技巧真的很好用,推薦您試一下!

No.6 od

od 命令用來輸出給定文件的內容。

輸入文件內容的指令有很多了:cat、head、tail等等。但是 od 命令主要用來查看文件的二進制編碼,顯示的時候可以以指定的進制進行顯示。

在之前的一篇拆解 ELF 格式的文章中:《Linux系統中編譯、鏈接的基石-ELF文件:扒開它的層層外衣,從字節碼的粒度來探索》,我就大量的使用了 od 指令,在一個 ELF 格式的文件中,從任意地址開始、讀取任意長度的字節碼。

例如下面這條指令:讀取 main 文件中最開始的 52 個字節的內容:

od -Ax -t x1 -N 52 main

main 是 Linux 系統中的可執行程序,當然也就是 ELF 格式了。

od 指令中使用到了下面這幾個選項:

-Ax: 顯示地址的時候,用十六進制來表示。如果使用 -Ad,意思就是用十進制來顯示地址;

-t -x1: 顯示字節碼內容的時候,使用十六進制(x),每次顯示一個字節(1);

-N 52:只需要讀取 52 個字節;

可以看出 main 文件最開始的四個字節:7f 是 ELF 文件的魔數,45 4c 46 是 “ELF” 3個字母。

因此,使用 od 命令來分析二進制文件的內容,還是很有威力的!

No.7 for

for 這個命令,常常出現在腳本文件中,用來處理循環的情況,比如:遍歷文件、計數,例如:

#!/bin/bash for file in /tmp/*; do echo $file; done

我在使用 for 的時候,最常用的場景是給很多相同后綴的文件,按順序進行重命名:

i=0;for x in *.mp4; do n=$(printf “%02d” “$i”); mv $x $n.mp4; let i=i+1; done

這里是按照純數字來重命名的,也可以根據需要加上前綴等字符串。

這里還有一個小問題需要注意一下:如果文件名中存在空格,mv 指令就會提示錯誤:

mv: target ’xxx‘ is not a directory

解決方法是:在終端窗口中,先執行一下這個命令:

IFS=’ ‘

然后,再執行批量重命名命令,就不會出現錯誤了!

當然,更好的方式是,把這幾個命令寫成一個腳本文件,實現對任意類型的文件進行批量重命名功能,然后放在自己的私有 bin 目錄下,隨取隨用。

別擔心,我已經幫你寫好了,如下所示(file_rename.sh):

#!/bin/bash if [ $# -eq 0 ];then sufix=mp4 else sufix=$1 fi IFS=’ ‘ i=0;for x in *.$sufix; do n=$(printf “%02d” “$i”); mv $x $n.$sufix; let i=i+1; done

只要執行 。/file_rename.sh,就會默認把當前目錄下所有 mp4 文件進行重命名。

如果是其他類型的文件,那就傳遞一個參數進去。

比如:如果要批量對 png 格式的圖片進行重命名,那就執行 。/file_rename.sh png,最后的 png 是傳入的參數,對應于腳本文件中的 $1 變量。

責任編輯:lq6

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11465

    瀏覽量

    212840
  • 命令
    +關注

    關注

    5

    文章

    730

    瀏覽量

    22678

原文標題:這 7 個 Linux 命令,你是怎么來使用的?

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Linux常用命令大全

    Linux常用命令是指在Linux操作系統中廣泛使用的命令工具,這些命令工具可以完成各種不同的任務,如管理文件和目錄、操作進程、網絡通信、軟
    的頭像 發表于 05-03 18:08 ?892次閱讀

    Linux常用命令行總結

    學習了一段時間的linux之后,開始著手基本命令的學習,這里主要記錄一些學習過程中重要的知識點供以后查閱。
    的頭像 發表于 03-03 10:40 ?429次閱讀
    <b class='flag-5'>Linux</b>常用<b class='flag-5'>命令</b>行總結

    Linux系統中最重要的三個命令

    Linux三劍客是Linux系統中最重要的三個命令,它們以其強大的功能和廣泛的應用場景而聞名。這三個工具的組合使用幾乎可以完美應對Shell中的數據分析場景,因此被統稱為Linux三劍
    的頭像 發表于 03-03 10:37 ?359次閱讀

    Linux ip命令常用操作

    Linux?ip命令常用操作 在Linux系統中,ip命令是用于管理網絡接口和路由的強大工具。相比于舊的?ifconfig命令,ip
    的頭像 發表于 02-19 10:23 ?576次閱讀

    Linux 服務器檢查以及常用運維 shell 命令

    文件夾和文件、使用 chmod 給文件夾授權、使用 vi 命令編輯 sh 腳本、使用 Linux 腳本驗證 JDK。 1、管理華為云主機 Flexus 云服務器 X 實例 1.1、購買服務 在百度里搜索
    的頭像 發表于 01-23 18:00 ?268次閱讀
    <b class='flag-5'>Linux</b> 服務器檢查以及常用運維 shell <b class='flag-5'>命令</b>

    常用linux命令

    使用command A | command B | command C命令,將A命令產生的標準輸出作為B命令的標準輸入(注意只能接收前一個命令的標準輸出)。
    的頭像 發表于 01-20 14:26 ?350次閱讀

    Linux實時查看日志的四種命令詳解

    如何在Linux中實時查看日志文件的內容?那么有很多實用程序可以幫助用戶在文件更改或不斷更新時輸出文件的內容。在Linux中實時顯示文件內容的常用命令是tail命令(有效地管理文件)。
    的頭像 發表于 01-13 10:45 ?2683次閱讀
    <b class='flag-5'>Linux</b>實時查看日志的四種<b class='flag-5'>命令</b>詳解

    Linux grep命令詳解

    Linux grep命令是一種非常常用的文本搜索工具,它可以在給定的文件中搜索匹配的字符串,并輸出匹配的行。grep是全稱“global search regular expression print”,可以識別正則表達式,并使用正則表達式進行搜索。
    的頭像 發表于 12-25 09:39 ?768次閱讀

    求助 這幾個芯片是什么型號

    這個是一款大功率1000W可調降壓電源模塊25V-90V轉2.5V-50V轉換器 DC-DC 50A 請教一下大神這幾個器件是什么型號
    發表于 12-24 10:20

    盤點Linux系統中的常見命令

    作為運維同學怎能不知道Linux系統中的lsmod、lsof、lspci、lsscsi命令呢,今天就來盤一盤她及實例。
    的頭像 發表于 12-03 09:48 ?713次閱讀
    盤點<b class='flag-5'>Linux</b>系統中的常見<b class='flag-5'>命令</b>

    Linux系統中shell命令解析

    shell是Linux系統的用戶界面,提供了用戶與內核交互的一種接口,它接收用戶輸入的命令并到送到內核執行,因此也被稱為Linux命令
    的頭像 發表于 11-05 15:40 ?803次閱讀

    Linux實用命令大全

    Linux實用命令大全
    的頭像 發表于 10-23 13:50 ?535次閱讀
    <b class='flag-5'>Linux</b>實用<b class='flag-5'>命令</b>大全

    Linux lsof命令的基本用法

    linux 系統中,一切皆文件。通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。所以 lsof 命令不僅可以查看進程打開的文件、目錄,還可以查看進程監聽的端口等 socket 相關的信息。本文將介紹 lsof 命令
    的頭像 發表于 10-23 11:52 ?1105次閱讀
    <b class='flag-5'>Linux</b> lsof<b class='flag-5'>命令</b>的基本用法

    TAS2505-Q1的MCLK, WCLK, DIN, BCLK這幾個PIN,對應的mcu這邊的哪幾個pin?

    1.請問參考設計的中的耳機接口HPOUT 及 IOVSS,在PIN描述中沒有這兩個PIN呢? 2.請問2505的MCLK, WCLK, DIN, BCLK這幾個PIN,對應的mcu這邊的哪幾個pin?下面的這個圖片是MCU端的I2S接口描述,多謝!
    發表于 08-08 08:28

    Linux中cut命令的實用示例

    Linux command cut 用于文本處理。您可以使用此命令通過選擇列從文件中提取部分文本。
    的頭像 發表于 08-05 15:14 ?581次閱讀
    主站蜘蛛池模板: 毛片高清一区二区三区 | 色麒麟影院 | 在线免费黄色 | 天天干天天插天天射 | 国产福利精品视频 | 可以免费看黄色的网站 | 久久99精品久久久久久野外 | 一夜七次郎久久综合伊人 | 天天摸夜夜摸夜夜狠狠摸 | 好大好硬好爽免费视频 | 能在线观看的一区二区三区 | 天堂在线天堂最新版在线www | 国产特黄特色的大片观看免费视频 | 色先峰 | 高h污快穿文汁水四溅 | 日本最色视频 | 国产精品偷伦费观看 | 天天视频在线观看免费 | 亚洲一级香蕉视频 | 2018天天弄| 日本三级电影在线观看 | 久久精品视频免费播放 | 一级视频在线播放 | 手机看片国产免费现在观看 | 午夜视频在线观看网站 | 日本不卡高清免费v日本 | 美女黄页网站免费进入 | 午夜在线播放视频在线观看视频 | 亚洲爱爱图片 | 完全免费在线视频 | 欧美亚洲另类在线观看 | 国模极品一区二区三区 | 欧美又粗又长又湿又黄的视频 | 高清毛片一区二区三区 | 天天躁日日躁狠狠躁中文字幕老牛 | 在线小毛片 | 三级五月天 | 特级片在线观看 | 男人天堂网2021 | 亚洲综合激情六月婷婷在线观看 | 欧美在线bdsm调教一区 |