linux命令編寫工具 linux常用命令編譯

到底怎么在Linux里編寫c程序?。?/h2>

在linux下通常使用gedit或vim直接編寫.c程序,然后通過gcc指令編譯。以Ubuntu系統(tǒng)為例,詳細過程如下:

從策劃到設計制作,每一步都追求做到細膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供做網(wǎng)站、網(wǎng)站設計、網(wǎng)站策劃、網(wǎng)頁設計、域名申請、虛擬空間、網(wǎng)絡營銷、VI設計、 網(wǎng)站改版、漏洞修補等服務。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進步。

1、進入桌面Temp文件夾

2、右鍵新建空白文件

3、將文件命名為hello.c

4、進入hello.c,開始編寫代碼(默認gedit為編輯器)

5、編寫代碼,保存退出

6、點擊右列“終端”,或者直接Ctrl+Alt+T通過快捷組合鍵進入終端

7、進入hello.c所在目錄,通過gcc進行編譯、鏈接、生成可執(zhí)行文件hello,命令為gcc -o hello hello.c。

8、執(zhí)行(可執(zhí)行)文件hello,命令為./hello。

參考資料:

GCC——百度百科

Linux常用命令——百度百科

Linux:Python編寫Linux自定義命令工具

摘要: Linux , Python

工作中需要頻繁使用到一個字符串的md5,因此編寫一個md5命令工具,輸入字符串直接得到輸出,并且命令支持參數(shù)設置,比如是否事先格式化,指定不同參數(shù)可以支持多功能輸出,操作步驟如下

直接vim一個腳本,腳本名md5不需要.py后綴,這樣更像一個命令,注意在腳本第一行引入python解釋器,并設置utf-8編碼

其中-f支持先格式化再得到md5,-l支持傳入多個字符串用空格分開

賦予可執(zhí)行權限

測試是否符合要求

直接放置到 /usr/local/bin 目錄下(需要root權限)

也可以使用軟連接的方式,推薦使用絕對路徑

之后就可以在環(huán)境變量中直接使用到md5命令

shebang :中文翻譯“釋伴”,由 #! 開頭的字符串,出現(xiàn)在文本文件的 第一行 。類UNIX操作系統(tǒng)的程序載入器會分析shebang后的內容,將這些內容作為解釋命令,并調用該指令,并將載有 shebang的文件路徑作為該解釋器 的參數(shù)

比如 #!/bin/bash 就是使用/bin/bash作為解釋器運行腳本,如果以Python作為解釋器運行腳本先找到Python解釋器的路徑,一般在Linux自帶的 /usr/bin/python 是Python2版本,也可以指定其他Python版本 #!/opt/anaconda3/bin/python ,第二行為 # coding=utf-8 用來指定編碼格式,否則Python2輸出中文亂碼

對于自定義腳本,推薦放置在 /usr/local/bin 目錄,有多個可執(zhí)行文件目錄在環(huán)境變量中,區(qū)別如下:

/bin : 包含二進制可執(zhí)行文件,為系統(tǒng)最基本的命令,如ls等

/sbin : 與/bin 類似,不同之處是其為root權限命令文件

/usr/bin : 系統(tǒng)預裝可執(zhí)行文件,會隨著系統(tǒng)升級而改變

/usr/sbin : 同上,不同之處是其為root權限運用

/usr/local/bin : 三級目錄,用戶自己的可執(zhí)行文件,系統(tǒng)不管理

/usr/local/sbin : root權限用戶程序

如何學習 Linux 命令和工具

如何學習 Linux 命令和工具呢? 相信這是一個令許多Linux 初學者和愛好者欲前又止的頗為頭疼的一件事,也是我目前一直在思考的問題。因為我也期望能夠更輕松地學好用好 Linux 命令和工具。 以下是我的一些思考結果。

0. 安裝一個 Linux 版本

雖然 Windows 下提供了像 cygwin 類似的工具來模擬 Unix 環(huán)境和實用工具,不過,品嘗原滋原味的口味不是更好嗎? 最重要的是有真實的氛圍。

1. 摒棄神秘感和畏懼感

a. Linux 命令只是一個可靠的小程序,用來完成特定用途的一件事;

b. Linux 命令提供了多種選項來控制其行為,以產生多樣的效果和靈活性。不過,需要掌握的常用選項并不多。

簡而言之, 需要知道兩件事: 它是用來做什么事的; 有哪些常用選項和適用場合。 初期不必貪多求全。

2. 三個要過關

a. 英語障礙。 好的文檔和幫助信息都是英文編寫的。因此英語要過關, 至少要達到熟練無障礙閱讀的地步; 只要有高中英語水平和一本中英詞典就足夠應對了;

b. 理解障礙。 學習Linux 命令無非是要理解其用途及用法。有時候,需要補習計算機專業(yè)基礎知識來理解和使用該工具所涵蓋的含義和用途;

c. 心態(tài)障礙。 大多數(shù) Linux 命令提供了 N 多選項,往往令人無所適從。因此,要耐心,細心、靜心。用一種探索的精神去深入。

若能克服上述障礙和困難,相信會受益匪淺的。把它看成一種挑戰(zhàn)和進步的機會,不要逃避。

3. 若干準則

a. 先將最常用的命令及常用選項掌握純熟,不要貪多求全; 掌握正則表達式;

b. 從選項較少的簡單的命令學起,逐步復雜化; 當然也可反著來,先征服最難的;

c. 每天一個命令, 持之以恒;

d. 相關命令關聯(lián)學習, 比如 which , whereis , type, locate , find .

4. 若干技巧

a. man , info , --help , -h 參看幫助信息;

b. man -k keyword ; apropos keyword 根據(jù)關鍵字查看相關的命令;

c. 使用文本文件;

d. 善于將任務分解為若干簡單的子任務;

e. 掌握管道、IO重定向;

5. 命令的學習步驟

S1: man cmd or cmd --help 首先了解其基本用途;

S2: 閱讀其選項,動手實踐,確切理解其選項含義; 揣摩作者為什么要設計這些選項;

S3: 自己思考下, 對于其用途,最常用的是什么需求和適用場合;

S4: 利用該命令(或組合其他命令)解決問題;

6. 找一本好的參考書籍

推薦 《Shell腳本學習指南》。 這本書非常具有實用性, 它不是照本宣科地從語法講起, 從一開始就專注于 LINUX 的常用標準工具和腳本編寫的重要技巧。 建議先找一本簡單的入門書了解下,再來閱讀此書比較好,適用于對 Shell 有一知半解,期望能夠系統(tǒng)深入地學習和使用 Shell 的讀者。 我覺得買了這本書非常實在劃算。

Linux文件管理基礎及編輯工具用法

文件名稱區(qū)分大小寫

文件名最長255個字符

包括路徑在內文件名稱最長4095個字節(jié)

藍色--目錄:綠色--可執(zhí)行文件:紅色--壓縮文件:淺藍色--鏈接文件:灰色--其它文件

除了斜杠和NUL,所有字符都有效,使用特殊字符的目錄名和文件不推薦使用,有些字符需要加引號來引用

標準Linux文件系統(tǒng),文件名稱大小寫敏感

/boot: 內核引導文件存放目錄

/bin: 所有用戶使用的基本命令;不能關聯(lián)至獨立分區(qū),系統(tǒng)啟動會用到的程序

/sbin: 管理類的基本命令;不能關聯(lián)至獨立分區(qū),系統(tǒng)啟動會用到的程序

/lib: 系統(tǒng)啟動時程序依賴的基本共享庫文件及內核模塊文件(/lib/modules)

/etc: 配置文件目錄

/home: 普通用戶家目錄

/root: 管理員家目錄

/media: 便攜式移動設備掛載點

/mnt: 臨時文件系統(tǒng)掛載點

/dev: 設備文件及特殊文件存儲位置

/opt: 第三方應用程序安裝位置,同/usr/local

/srv: 系統(tǒng)服務用到的數(shù)據(jù)

/tmp: 存儲臨時文件

/usr: 系統(tǒng)軟件資源存放目錄

/var: 系統(tǒng)運行時的可變動數(shù)據(jù):/var/tmp:系統(tǒng)兩次重啟產生的臨時數(shù)據(jù)

/proc: 內核與進程信息相關的虛擬文件系統(tǒng)

/sys: 硬件設備相關信息的虛擬文件系統(tǒng)

/selinux: selinux安全策略

meta data:?

文件類型,權限,UID,GID

鏈接數(shù)(指向這個文件名路徑名稱個數(shù))

該文件的大小和不同的時間戳

指向磁盤上文件的數(shù)據(jù)塊指針

有關文件的其他數(shù)據(jù)

? ? 文件類型:

? ? ? ? -: 普通文件

? ? ? ? d: 目錄文件

? ? ? ? b: 塊設備

? ? ? ? c: 字符設備

? ? ? ? l: 符號鏈接文件

? ? ? ? p: 管道文件pipe

? ? ? ? s: 套接字文件socket

? ? 查看方式:

? ? ? ? 使用ll,ls -l: 看第一個字符,鏈接數(shù),

? ? ? ? ls -lih:

? ? ? ? ? ? inode編號,文件類型,文件權限,硬鏈接個數(shù),文件屬主,文件屬組,文件大小,文件修改時間

? ? ? ? file命令,type命令,

? ? ? ? stat命令: 文件詳細信息,修改時間mtime,改變時間ctime,訪問時間atime

? ? ? ? du -sm filename: 查看文件大小

? ? ? ? 文件擴展名:

? ? ? ? ? ? 源碼.tar、.tar.gz、.tgz、.zip、.tar.bz表示壓縮文件,創(chuàng)建命令一般為tar,gzip,zip等。

? ? ? ? ? ? .sh表示shell腳本文件,通過shell語言開發(fā)的程序。

? ? ? ? ? ? .pl表示perl語言文件,通過perl語言開發(fā)的程序。

? ? ? ? ? ? .py表示python語言文件,通過python語言開發(fā)的程序。

? ? ? ? ? ? .html、.htm、.php、.jsp、.do表示網(wǎng)頁語言的文件。

? ? ? ? ? ? .conf表示系統(tǒng)服務的配置文件。

? ? ? ? ? ? .rpm表示rpm安裝包文件。

? ? touch: 創(chuàng)建空文件和刷新時間戳

? ? ? ? touch [OPTION]... FILE...

? ? ? ? ? ? -a: 改變atime和ctime

? ? ? ? ? ? -m: 改變mtime和ctime

? ? ? ? ? ? -t: [[CC[YY[MMDDhhmm[.ss]]]]]

? ? ? ? ? ? ? ? 指定atime和mtime的時間戳

? ? ? ? ? ? -c: 如果文件不存在,則不予創(chuàng)建?

硬鏈接:

同一個文件多個名字

不支持跨分區(qū),不支持目錄

平級關系,刪除原始文件不影響打開

iNode相同,鏈接數(shù)增長

創(chuàng)建語法,原始文件路徑,相對于工作目錄的路徑

文件類型,普通文件

創(chuàng)建方式ln filename [linkname]

軟鏈接:

與原始文件,不同的文件

支持跨分區(qū),支持目錄

依賴關系,刪除原始文件即失效

iNode不同,鏈接數(shù)不會增長

創(chuàng)建語法,原始文件路徑,相對于軟鏈接的路徑

文件類型顯示l

創(chuàng)建方式ln -s filename [linkname]

實例說明:

cd ../data

mkdir -pv d1/d2

touch linux.txt

ln linux.txt d1/d2/linux.hlink

ln -s ../../linux.txt d1/d2/linux.slink

ln -s ../d2 d1/d2/d2.slink

tree

執(zhí)行如圖:

stat: 查看文件狀態(tài)

示例: stat /etc/issue

? ? stat/etc/motd

touch: 創(chuàng)建空文件和刷新時間

touch [OPTION]... FILE...

? ? -a: 僅改變atime和ctime

? ? -m: 僅改變mtime和ctime

? ? -t: 指定atime和mtime時間戳

? ? -c: 如果文件不存在,則不予創(chuàng)建

示例: touch /data/f1

cp: 復制文件和目錄

cp [OPTION]... SOURCE... DIRECTORY

? ? -i: 覆蓋前提示

? ? -n: 不覆蓋

? ? -r,-R: 遞歸復制目錄及內部的所有內容

? ? -a: 歸檔,相當于-dR --preserv=all

? ? -p: 等同--preserv=mode,ownership,timestamp

? ? -u: 只復制源比目標更新或目標不存在

? ? -b: 目標存在,覆蓋前先備份filename~

? ? --backup=numbered: 目標存在,覆蓋前先備份并加數(shù)字后綴

cp SRC DEST

? ? SRC是文件:

? ? ? ? 如果目標不存在: 新建DEST,并將SRC中內容填充至DEST中

? ? ? ? 如果目標存在:

? ? ? ? ? ? 如果DEST是文件: 將SRC中內容覆蓋至DEST中

? ? ? ? ? ? 如果DEST是目錄: 在DEST下新建與原文件同名的文件,并將SRC中內容填充至新文件中

? ? SRC是多個文件:

? ? ? ? DEST必須存在,且為目錄

? ? SRC是目錄: 使用選項-r

? ? ? ? 如果DEST不存在: 則創(chuàng)建指定目錄,復制SRC目錄中所有文件至DEST中

? ? ? ? 如果DEST存在:

? ? ? ? ? ? 如果DEST是文件: 報錯

? ? ? ? ? ? 如果DEST是目錄:在DEST下新建與原目錄同名的目錄,并將SRC中內容復制至新目錄中

示例: mkdir -p /data/backup

? ? cp -ab /etc/issue /etc/passwd /etc/group /data/backup

mv: 移動和重命名文件

mv [OPTION]... SOURCE... DIRECTORY

? ? -f: 強制

? ? -b: 目標存在,覆蓋前先備份

示例: mv /etc/issue /data

? ? mv /etc/issue /data/issue.bak

rm: 刪除

rm [OPTION]... FILE...

? ? -f: 強制刪除

? ? -r: 遞歸

? ? --no-preserve-root 刪除/

示例: rm -rf /data/d1/d2

tree: 顯示目錄樹

-d:只顯示目錄

-L level: 指定顯示的層級數(shù)目

-P pattern: 只顯示由指定pattern匹配到的路徑

示例: tree /data

ls:列出指定目錄下的內容

ls [OPTION]... [FILE]...

 -a:顯示所有文件包括隱藏文件

 -A:顯示除.和..之外的所有文件

 -l,--long:顯示文件的詳細屬性信息

 -h:對文件大小進行單位換算,可能影響精度

 -d:查看目錄本身而非其內部的文件

 -r:逆序顯示文件

 -R:遞歸顯示文件

示例:ls -lah / 詳細顯示/目錄下的所有文件(包括隱藏文件)

mkdir:創(chuàng)建目錄

mkdir [OPTION]... DIRECTORY...

 -p:自動按需創(chuàng)建父目錄

 -m:創(chuàng)建目錄時給定權限

示例: mkdir -p /data/test/A/B

cat:正向查看文本內容

cat [OPTION]... [FILE]...

 -n:給顯示的文本行編號

 -E:顯示行結束符號$

示例: cat -n /etc/fstab

tail:顯示文本內容,默認顯示后10行

tail [OPTION]... [FILE]...

 -n #:顯示文本后#行內容

 -f:查看文件尾部內容結束后不退出,跟隨顯示新增的行

示例: tail -8 /etc/passwd

head:顯示文本內容,默認顯示頭10行

head [OPTION]... [FILE]...

  -n #:顯示文本頭#行內容

示例: head -5 /etc/passwd

less:分屏顯示文本內容,不主動退出

less [options] file [...]

 Space鍵:顯示文本下一屏內容

 Enter鍵:只顯示文本下一行內容

 b鍵:顯示文本上一屏內容

 q鍵:退出

cp /etc/profile /tmp

vim /tmp/profile

:%s/^\s\+//

如圖:

命令模式下輸入:

:set tabstop=4

或寫入用戶配置文件~/.vimrc

網(wǎng)站名稱:linux命令編寫工具 linux常用命令編譯
轉載來于:http://muchs.cn/article36/dogiipg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作App開發(fā)、品牌網(wǎng)站設計、ChatGPT、網(wǎng)站設計公司、Google

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營