自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

七個(gè) GNU 工具,命令行的強(qiáng)大功能與終端親密接觸的必備工具

系統(tǒng) Linux
在 GNU 命令中的進(jìn)步就是在擁有終端靈活性方面的進(jìn)步?,F(xiàn)在,讓我們來(lái)了解 7 個(gè)必備的 GNU 工具吧。

GNU 項(xiàng)目是一個(gè)自由軟件組織,它創(chuàng)造了開源這個(gè)術(shù)語(yǔ),今天它被許多公司廣泛使用。

GNU 是 GNU, is Not Unix 的縮寫,這意味著:

Unix? 的命令非常成功,許多程序員和公司都想“復(fù)制它們”。而且大多數(shù)公司的名稱本身就包含了 Unix? 這個(gè)名字,例如:HP Unix, Berkeley Unix,等等。

但是,Unix?及其名稱的版權(quán)所有者AT&T已經(jīng)禁止將 Unix? 名稱用于類似的項(xiàng)目。

所以GNU想出了一個(gè)用這個(gè)名字做諷刺的主意,但說(shuō)它不是Unix?。??

另一件事是 Unix? 程序的源代碼不可用,即便如此,當(dāng)用于學(xué)習(xí)目的時(shí),加州大學(xué)伯克利分校(后來(lái)創(chuàng)辦BSD)也有限制性許可證。

因此,GNU 創(chuàng)造了替代方案,也就是說(shuō),除了擁有一個(gè)許可(由他們創(chuàng)建的 GPL )甚至允許重新發(fā)布的許可之外,這些程序做了同樣的事情,并且有可用的源代碼。

根據(jù)GNU 通用公共許可證 (GNU GPL) 的條款,分發(fā)由 GNU 項(xiàng)目創(chuàng)建的軟件的組織是自由軟件基金會(huì)。

GNU 軟件最大的區(qū)別之一是它使用 POSIX 標(biāo)準(zhǔn),這使得它可以移植到任何操作系統(tǒng)。

在 GNU 命令中的進(jìn)步就是在擁有終端靈活性方面的進(jìn)步?,F(xiàn)在,讓我們來(lái)了解 7 個(gè)必備的 GNU 工具吧。

1. GCC

GCC代表G NU C ompiler C ollection,是各種編程語(yǔ)言的編譯器和優(yōu)化器的集合,其中包括:C、C++、Java、Go、Fortran、Ada、D、Objective-C、Objective-C++ 等。

GCC 擁有近2000 萬(wàn)行代碼,是世界上最大的免費(fèi)程序之一。

它擁有最廣泛的架構(gòu)支持,包括:

AArch64, Alpha, ARM, AVR, Blackfin, eBPF, Epiphany (GCC 4.8), H8/300, HC12, IA-32 (x86), IA-64 (Intel Itanium), MIPS, Motorola 68000, MSP430, Nvidia GPU, Nvidia PTX、PA-RISC、PDP-11、PowerPC、R8C/M16C/M32C、RISC-V、SPARC、SuperH、System/390/zSeries、VAX、x86-64、68HC11、A29K、C6x、CR16、D30V、DSP16xx、 ETRAX CRIS、FR-30、FR-V、IBM ROMP、IP2000、M32R、MCORE、MIL-STD-1750A、MMIX、MN10200、MN10300、摩托羅拉 88000、NS32K、RL78、Stormy16、V850、Xtensa、Cortus APS3 、ARC、AVR32、C166 和 C167、D10V、EISC、eSi-RISC、Hexagon[73]、LatticeMico32、LatticeMico8、MeP、MicroBlaze、MRISC32、MSP430、Nios II 和 Nios、OpenRISC , PDP-10, PIC24/dsPIC, PIC32, Propeller, Saturn (HP48XGCC), System/370, TIGCC (m68k variant), TMS9900, TriCore, Z8000 等等。

GCC 有一個(gè)超過(guò)500 名貢獻(xiàn)者的列表,所有的名字都可以在這里訪問(wèn)。

幾家公司在許多自由軟件項(xiàng)目中使用 GCC,其中最著名的有:NASA、Google、IBM等。

GCC 最大的競(jìng)爭(zhēng)對(duì)手是 Clang/LLVM,它也是一個(gè)很棒的編譯器,盡管它是從頭開始編寫的,但根據(jù)它自己的創(chuàng)建者Chris Lattner在一些采訪中說(shuō),他最大的參考是 GCC,所以 Clang 擁有所有使用的參數(shù)GCC,也是出于兼容性原因。

要安裝 GCC,您可以使用系統(tǒng)的包管理器或在此處下載 GCC 。

相關(guān)教程:如何在 Ubuntu 20.04/22.04 上安裝 GCC 編譯器  https://www.linuxmi.com/ubuntu-20-04-22-04-gcc.html

使用示例

編譯用C語(yǔ)言編寫的程序:

gcc main.c
./a.out # 運(yùn)行的二進(jìn)制

用C++編譯程序:

g++ main.cpp
./a.out # 運(yùn)行的二進(jìn)制

用Java編譯程序:

gcj -C Hello.java # 編譯成 Hello.class
gij Hello # 運(yùn)行 Hello.class

gcc是目前參數(shù)最豐富的程序之一。要了解所有參數(shù),請(qǐng)使用手冊(cè):

man gcc

欲了解更多信息,請(qǐng)?jiān)L問(wèn)官方 GCC 頁(yè)面。

2.GNU Sed

GNU Sed是一個(gè)命令行文本流編輯器,它使用一種簡(jiǎn)單而緊湊的編程語(yǔ)言來(lái)解析和轉(zhuǎn)換文本。

Sed 有幾個(gè)版本,GNU Sed 就是其中之一。例如,在使用 GNU Sed 和macOS中的 Sed 時(shí),您可能會(huì)遇到兩者之間的許多差異,并注意到 GNU Sed 的可用性更優(yōu)越并且具有更多參數(shù)。

基本使用示例

在文本文件中用單詞LinuxMi替換和修改所有出現(xiàn)的單詞Title:linuxmi.txt

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                    
? sed -i 's/Title/LinuxMi/' linuxmi.txt

欲了解更多信息,請(qǐng)?jiān)L問(wèn)官方 GNU Sed 頁(yè)面。

相關(guān):

Linux中的Grep,Awk,Sed命令 https://www.linuxmi.com/linux-grep-awk-sed.html

3.GNU awk

GNU awk 是特定領(lǐng)域的語(yǔ)言變體之一:AWK。與 GNU Sed 一樣,它的主要區(qū)別在于它具有我們?cè)诮榻B中提到的 POSIX 標(biāo)準(zhǔn)。

它還廣泛用于通過(guò)命令行進(jìn)行文本編輯和數(shù)據(jù)過(guò)濾。最基本的用法示例是:

僅列出命令生成的文本文件的第一列l(wèi)s -l > linuxmi.txt。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                    
? ls -l > linuxmi.txt

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                    
? awk '{print $1}' linuxmi.txt

欲了解更多信息,請(qǐng)?jiān)L問(wèn)GNU Awk 官方頁(yè)面。

相關(guān):

為什么說(shuō)每個(gè) Linux 極客都需要了解 Sed 和 Awk https://www.linuxmi.com/linux-sed-awk.html

4. GNU Make

GNU Make是一個(gè)構(gòu)建自動(dòng)化工具,它通過(guò)讀取名為Makefiles的文件自動(dòng)從源代碼創(chuàng)建可執(zhí)行程序和庫(kù),該文件指定如何派生目標(biāo)程序。

盡管集成開發(fā)環(huán)境和特定語(yǔ)言的編譯器功能也可用于管理構(gòu)建過(guò)程,但 GNU Make 仍然被廣泛使用。

某些版本的 make命令是GNU Make使用的命令,但是,在許多系統(tǒng)上,它只是原始命令所在的GNU Make的別名,其中原始命令是gmake,這個(gè)符號(hào)鏈接可以通過(guò)將另外兩個(gè)GNU工具(GNU Coreutils)與以下命令結(jié)合使用來(lái)發(fā)現(xiàn):

ls -l $ (which make) 。

當(dāng)你有一個(gè)正確創(chuàng)建的 Makefile,編譯它只需運(yùn)行命令:

make

該命令可根據(jù) Makefile 文件自定義參數(shù)。

欲了解更多信息,請(qǐng)?jiān)L問(wèn)GNU Make 官方頁(yè)面。

5. GNU findutils

GNU findutils是一個(gè)包含以下命令的軟件包:find、locate和.updatedbxargs

其中,日常生活中使用最廣泛的當(dāng)然是find. GNUfind命令比 Unix? 命令對(duì)用戶更友好。例如:

要使用GNU findutils查找主目錄中的所有.txt文件,只需運(yùn)行以下命令:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                    
? find ${HOME} -name *.txt

在 Unix?find中,您需要將搜索目標(biāo)顯式地括在引號(hào)中,而在 GNU 中find,帶或不帶引號(hào)的工作方式相同。以及許多其他差異。

我們有一篇文章,其中包含多個(gè)使用該find命令的示例,可以通過(guò)以下鏈接訪問(wèn):https://www.linuxmi.com/linux-find-mingling-shiyong.html。

欲了解更多信息,請(qǐng)?jiān)L問(wèn)GNU findutils 官方頁(yè)面。

相關(guān):

如何在Linux中使用find根據(jù)時(shí)間戳查找文件 https://www.linuxmi.com/linux-find-files-timestamp.html

6.GNU grep

GNU grep是一個(gè)命令行實(shí)用程序,用于在純文本數(shù)據(jù)集中搜索與正則表達(dá)式匹配的模式。

該命令有多種變體,grep例如:egrep和fgrep. 這些命令的許多可用性是特定于GNU grep的。

GNU grep與RegEx結(jié)合使用變得非常強(qiáng)大。

一個(gè)基本的使用示例是,例如,使用以下命令列出您的用戶所屬的系統(tǒng)組:

grep "$USER" /etc/group | egrep -o '^[a-z]+'

欲了解更多信息,請(qǐng)?jiān)L問(wèn)官方 GNU grep 頁(yè)面。

7. GNU Bash

GNU Bash是對(duì) Unix? Sh的改進(jìn)。GNU Bash使得在Shell中自動(dòng)化命令變得更加簡(jiǎn)單和容易,因?yàn)樗鄬?duì)于它的選項(xiàng)也很穩(wěn)定。

它是世界上采用最多的,并具有許多使其與眾不同的現(xiàn)代功能。它是由程序員Brian J. Fox創(chuàng)建的。

它有幾個(gè)命令,例如:if, [[ ]], for, while,... 可以直接在Shell中使用,也可以作為腳本語(yǔ)言組合在任何擴(kuò)展名的文件中,但最常用的擴(kuò)展名是.sh和.bash。

有關(guān)更多信息,請(qǐng)?jiān)L問(wèn)GNU Bash 官方頁(yè)面,這是我讀過(guò)的最好的軟件文檔之一。

相關(guān)文章:

  • GNU/Bash 5.1 發(fā)布,帶來(lái)新的增強(qiáng)型隨機(jī)數(shù)生成器  https://www.linuxmi.com/gnu-bash-5-1.html
  • 如何在 Bash 腳本中使用 Linux test 命令 https://www.linuxmi.com/bash-linux-test-command.html
  • Linux Bash 終端命令鍵盤快捷鍵備忘 https://www.linuxmi.com/linux-bash-terminal-shortcuts.html
  • 將 bash/shell 腳本編譯為二進(jìn)制文件 https://www.linuxmi.com/shc-bash-shell.html

結(jié)論

事實(shí)上,GNU 項(xiàng)目還有其他幾種解決方案,例如GNU Glibc,它是 Linux 內(nèi)核運(yùn)行的接口,并允許雜項(xiàng):程序、圖形界面、窗口管理器和桌面環(huán)境以出色的性能工作,以及大多數(shù)如果沒有GNU Glibc,它們中的一些就無(wú)法工作。

責(zé)任編輯:龐桂玉 來(lái)源: 聆聽世界的魚
相關(guān)推薦

2024-09-29 13:25:56

2014-01-03 11:28:29

命令行工具

2009-12-24 11:13:21

2014-10-31 10:50:28

Linux命令行工具

2017-04-20 18:00:59

Linux命令行工具系統(tǒng)信息

2009-05-15 08:59:32

Windows 7微軟操作系統(tǒng)

2019-05-30 10:40:04

ddgrLinuxDuckDuckGo

2014-02-12 13:30:16

Linux命令行終端工具

2023-04-12 08:14:10

mysql關(guān)聯(lián)字段索引

2020-12-24 17:08:52

安全工具NoSql注入接口工具

2018-08-16 11:30:12

JavaCPU緩存

2023-12-01 15:10:56

2011-01-18 19:11:26

Postfix命令行

2010-03-19 16:08:07

Python 代碼開發(fā)

2020-03-30 12:57:50

Linux命令行Markdown

2010-08-24 09:10:14

Linux命令行工具

2019-02-27 09:24:48

命令行文件Linux

2014-02-18 10:45:48

2014-04-09 11:05:11

2018-05-02 08:06:12

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)