<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • linux shell編程的簡(jiǎn)介

    時(shí)間:2024-10-28 02:01:18 Linux認(rèn)證 我要投稿
    • 相關(guān)推薦

    linux shell編程的簡(jiǎn)介

      從程序員的角度來看, Shell本身是一種用C語言編寫的程序,從用戶的角度來看,Shell是用戶與Linux操作系統(tǒng)溝通的橋梁。用戶既可以輸入命令執(zhí)行,又可以利用 Shell腳本編程,完成更加復(fù)雜的操作。在Linux GUI日益完善的今天,在系統(tǒng)管理等領(lǐng)域,Shell編程仍然起著不可忽視的作用。深入地了解和熟練地掌握Shell編程,是每一個(gè)Linux用戶的必修功課之一。

      Linux的Shell種類眾多,常見的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell語言的語法有所不同,所以不能交換使用。每種Shell都有其特色之處,基本上,掌握其中任何一種就足夠了。在本文中,我們關(guān)注的重點(diǎn)是Bash,也就是Bourne Again Shell,由于易用和免費(fèi),Bash在日常工作中被廣泛使用;同時(shí),Bash也是大多數(shù)Linux系統(tǒng)默認(rèn)的Shell。在一般情況下,人們并不區(qū)分 Bourne Shell和Bourne Again Shell,所以,在下面的文字中,我們可以看到#!/bin/sh,它同樣也可以改為#!/bin/bash。

      利用vi等文本編輯器編寫Shell腳本的格式是固定的,如下:

      #!/bin/sh

      #comments

      Your commands go here

      首行中的符號(hào)#!告訴系統(tǒng)其后路徑所指定的程序即是解釋此腳本文件的Shell程序。如果首行沒有這句話,在執(zhí)行腳本文件的時(shí)候,將會(huì)出現(xiàn)錯(cuò)誤。后續(xù)的部分就是主程序,Shell腳本像高級(jí)語言一樣,也有變量賦值,也有控制語句。除第一行外,以#開頭的行就是注釋行,直到此行的結(jié)束。如果一行未完成,可以在行尾加上",這個(gè)符號(hào)表明下一行與此行會(huì)合并為同一行。

      #號(hào)開頭的語句是注視行。與C編程中的//一樣。

      編輯完畢,將腳本存盤為filename.sh,文件名后綴sh表明這是一個(gè)Bash腳本文件。執(zhí)行腳本的時(shí)候,要先將腳本文件的屬性改為可執(zhí)行的:

      chmod +x filename.sh

      執(zhí)行腳本的方法是:

      ./filename.sh

      下面我們從經(jīng)典的“hello world”入手,看一看最簡(jiǎn)單的Shell腳本的模樣。

      #!/bin/sh

      #print hello world in the console window

      a = "hello world"

      echo $a

      Linux認(rèn)證常用命令及技巧

      一. 通用命令:

      1. date :print or set the system date and time

      2. stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z等)

      3. passwd: print or set the system date and time (用passwd -h查看)

      4. logout, login: 登錄shell的登錄和注銷命令

      5. pwd: print or set the system date and time

      6. more, less, head tail: 顯示或部分顯示文件內(nèi)容.

      7. lp/lpstat/cancel, lpr/lpq/lprm: 打印文件.

      8. 更改文件權(quán)限: chmod u+x...

      9. 刪除非空目錄:rm -fr dir

      10.拷貝目錄: cp -R dir

      11. fg jobid :可以將一個(gè)后臺(tái)進(jìn)程放到前臺(tái)。

      Ctrl-z 可以將前臺(tái)進(jìn)程掛起(suspend), 然后可以用bg jobid 讓其到后臺(tái)運(yùn)行。

      job & 可以直接讓job直接在后臺(tái)運(yùn)行。

      12. kill 的作用: send a signal to a process. eg: kill -9 發(fā)送的是SIG_KILL信號(hào)。。。 具體發(fā)送什么信號(hào) 可以通過 man kill 查看。

      13. ps 的用法, ps -e 或 ps -o pid,ppid,session,tpgid, comm (其中session顯示的sessionid, tpgid顯示前臺(tái)進(jìn)程組id, comm顯示命令名稱。)

      二 .ubuntu常用命令:

      1. dpkg: package manager for Debian

      * 安裝: dpkg -i package

      * 卸載: dpkg -r package

      * 卸載并刪除配置文件: dpkg -P |--purge package

      * 如果安裝一個(gè)包時(shí)。說依賴某些庫。 可以先 apt-get install somelib...

      * 查看軟件包安裝內(nèi)容 :dpkg -L package

      * 查看文件由哪個(gè)軟件包提供: dpkg -S filename

      * 另外 dpkg還有 dselect和aptitude 兩個(gè)frontend.

      2. apt

      * 安裝: apt-get install packs

      * apt-get update : 更新源

      * apt-get upgrade: 升級(jí)系統(tǒng)。

      * apt-get dist-upgrade: 智能升級(jí)。安裝新軟件包,刪除廢棄的軟件包

      * apt-get -f install : -f == --fix broken 修復(fù)依賴

      * apt-get autoremove: 自動(dòng)刪除無用的軟件

      * apt-get remove packages :刪除軟件

      * apt-get remove package --purge 刪除包并清除配置文件

      * 清除所以刪除包的殘余配置文件: dpkg -l |grep ^rc|awk '{print $2}' |tr ["/n"] [" "]|sudo xargs dpkg -P

      * 安裝軟件時(shí)候包的臨時(shí)存放目錄 : /var/cache/apt/archives

      * 清除該目錄: apt-get clean

      * 清除該目錄的舊版本的軟件緩存: apt-get autoclean

      * 查詢軟件some的依賴包: apt-cache depends some

      * 查詢軟件some被哪些包依賴: apt-get rdepends some

      * 搜索軟件: apt-cache search name|regexp

      * 查看軟件包的作用:apt-cache show package

      * 查看一個(gè)軟件的編譯依賴庫: apt-cache showsrc packagename|grep Build-Depends

      * 下載軟件的源代碼 : apt-get source packagename (注: sources.list 中應(yīng)該有 deb-src 源)

      * 安裝軟件包源碼的同時(shí), 安裝其編譯環(huán)境 :apt-get build-dep packagename (有deb-src源)

      * 如何將本地光盤加入安裝源列表: apt-cdrom add

      3. 系統(tǒng)命令:

      * 查看內(nèi)核版本: uname -a

      * 查看ubuntu 版本: cat /etc/issue

      * 查看網(wǎng)卡狀態(tài) : ethtool eth0

      * 查看內(nèi)存,cpu的信息: cat /proc/meminfo ; cat /proc/cpuinfo

      (/proc下面的有很多系統(tǒng)信息)

      * 打印文件系統(tǒng)空間使用情況: df -h

      * 查看硬盤分區(qū)情況: fdisk -l

      * 產(chǎn)看文件大小: du -h filename;

      * 查看目錄大小: du -hs dirname ; du -h dirname是查看目錄下所有文件的大小

      * 查看內(nèi)存的使用: free -m|-g|-k

      * 查看進(jìn)程: ps -e 或ps -aux -->顯示用戶

      * 殺掉進(jìn)程: kill pid

      * 強(qiáng)制殺掉: killall -9 processname

      4. 網(wǎng)絡(luò)相關(guān):

      * 配置 ADSL: sudo pppoeconf

      * ADSL手工撥號(hào): sudo pon dsl-provider

      * 激活 ADSL : sudo /etc/ppp/pppoe_on_boot

      * 斷開 ADSL: sudo poff

      * 根據(jù)IP查網(wǎng)卡地址: arping IP地址

      * 產(chǎn)看本地網(wǎng)絡(luò)信息(包括ip等): ifconfig | ifconfig eth0

      * 查看路由信息: netstat -r

      * 關(guān)閉網(wǎng)卡: sudo ifconfig eth0 down

      * 啟用網(wǎng)卡: sudo ifconfig eth0 up

      * 添加一個(gè)服務(wù): sudo update-rc.d 服務(wù)名 defaults 99

      * 刪除一個(gè)服務(wù): sudo update-rc.d 服務(wù)名 remove

      * 臨時(shí)重啟一個(gè)服務(wù): /etc/init.d/服務(wù)名 restart

      * 臨時(shí)關(guān)閉一個(gè)服務(wù): /etc/init.d/服務(wù)名 stop

      * 臨時(shí)啟動(dòng)一個(gè)服務(wù): /etc/init.d/服務(wù)名 start

      * 控制臺(tái)下顯示中文: sudo apt-get install zhcon

      * 查找某個(gè)文件: whereis filename 或 find 目錄 -name 文件名

      *通過ssh傳輸文件

      scp -rp /path/filename username@remoteIP:/path #將本地文件拷貝到服務(wù)器上

      scp -rp username@remoteIP:/path/filename /path #將遠(yuǎn)程文件從服務(wù)器下載到本地

      5. 壓縮:

      *解壓縮 a.tar.gz: tar zxvf a.tar.gz

      *解壓縮 a.tar.bz2: tar jxvf a.tar.bz2

      *壓縮aaa bbb目錄為xxx.tar.gz: tar zcvf xxx.tar.gz aaa bbb

      *壓縮aaa bbb目錄為xxx.tar.bz2: tar jcvf xxx.tar.bz2 aaa bbb

      6. Nautilus:

      特殊 URI 地址

      * computer:/// - 全部掛載的設(shè)備和網(wǎng)絡(luò)

      * network:/// - 瀏覽可用的網(wǎng)絡(luò)

      * burn:/// - 一個(gè)刻錄 CDs/DVDs 的數(shù)據(jù)虛擬目錄

      * smb:/// - 可用的 windows/samba 網(wǎng)絡(luò)資源

      * x-nautilus-desktop:/// - 桌面項(xiàng)目和圖標(biāo)

      * file:/// - 本地文件

      * trash:/// - 本地回收站目錄

      * ftp:// - FTP 文件夾

      * ssh:// - SSH 文件夾

      * fonts:/// - 字體文件夾,可將字體文件拖到此處以完成安裝

      * themes:/// - 系統(tǒng)主題文件夾

      * 顯示隱藏文件: Ctrl+h

      * 顯示地址欄: Ctrl+l

      * 查看已安裝字體: 在nautilus的地址欄里輸入”fonts:///“,就可以查看本機(jī)所有的fonts

      7.補(bǔ)充部分:

      * 查看本地所有的tpc,udp監(jiān)聽端口: netstat -tupln (t=tcp, u=udp, p=program, l=listen, n=numric)

      * 通過man搜說相關(guān)命令: man -k keyword . eg: man -k user

      * 或者用 apropos

      * 統(tǒng)計(jì)文件所占用的實(shí)際磁盤空間: du (du - estimate file space usage)

      * 統(tǒng)計(jì)文件中的字符,字節(jié)數(shù): wc -c/-l/-w (wc - print the number of newlines, words, and bytes in files)

      * 查看文件的內(nèi)容: od -x/-c/.... (od - dump files in octal and other formats)

      我認(rèn)為od最有用的就是文件的字節(jié)流了: od -t x1 filename

      查看文件的 Ascii 碼形式: od -t c filename (其中統(tǒng)計(jì)信息最左邊的是: 字節(jié)數(shù))

      * 查找命令所在文件的位置: which od 輸出: /usr/bin/od

      查看該文件由哪個(gè)包提供: dpkg -S /usr/bin/od 輸出: coreutils: /usr/bin/od

      再查看coreutils包的全部?jī)?nèi)容就知道了linux的核心命令: dpkg -L coreutils

      然后 info coreutils 哈哈,認(rèn)真學(xué)吧, 滿世界都是命令!

      * 可以用man 命令產(chǎn)看某個(gè)命令的所有section 的解釋: man -a tty

      然后用q,和next 轉(zhuǎn)換到下一個(gè)section的解釋

      * bash 的好用的快捷鍵:

      ctrl+a:光標(biāo)移到行首。

      ctrl+b:光標(biāo)左移一個(gè)字母

      ctrl+c:殺死當(dāng)前進(jìn)程。

      ctrl+d:退出當(dāng)前 Shell。

      ctrl+e:光標(biāo)移到行尾。

      ctrl+h:刪除光標(biāo)前一個(gè)字符,同 backspace 鍵相同。

      ctrl+k:清除光標(biāo)后至行尾的內(nèi)容。

      ctrl+l:清屏,相當(dāng)于clear。

      ctrl+r:搜索之前打過的命令。會(huì)有一個(gè)提示,根據(jù)你輸入的關(guān)鍵字進(jìn)行搜索bash的history

      ctrl+u: 清除光標(biāo)前至行首間的所有內(nèi)容。

      ctrl+w: 移除光標(biāo)前的一個(gè)單詞

      ctrl+t: 交換光標(biāo)位置前的兩個(gè)字符

      ctrl+y: 粘貼或者恢復(fù)上次的刪除

      ctrl+d: 刪除光標(biāo)所在字母;注意和backspace以及ctrl+h的區(qū)別,這2個(gè)是刪除光標(biāo)前的字符

      ctrl+f: 光標(biāo)右移

      ctrl+z : 把當(dāng)前進(jìn)程轉(zhuǎn)到后臺(tái)運(yùn)行,使用’ fg ‘命令恢復(fù)。比如top -d1 然后ctrl+z ,到后臺(tái),然后fg,重新恢復(fù)

      * 快速粘貼:先在一個(gè)地方選中文字,在欲粘貼的地方按鼠標(biāo) 中鍵 即可。

      * 等效中鍵:a 、按下滑輪等效于中鍵。b、同時(shí)按下鼠標(biāo) 左右鍵,等效于中鍵。

      * 快速重啟X服務(wù): 同時(shí)按下: Alt + Ctrl + Backspace 三個(gè)鍵。

      * 打開"運(yùn)行"窗口: 同時(shí)按下 Alt + F2 鍵。

      * 戴屏: a、全屏:直接按下 PrtScr 鍵。

      b、當(dāng)前窗口:同時(shí)按下 Alt + PrtScr 鍵。

      c、延時(shí)戴屏:在 終端 或 "運(yùn)行"窗口中輸入命令: gnome-screenshot --delay 3 ,將延時(shí) 3 秒后戴屏。

      * 直接將 文件管理器 中的文件拖到 GNOME終端 中就可以在終端中得到完整的路徑名。 8.ulimit

      ulimit:顯示(或設(shè)置)用戶可以使用的資源的限制(limit),這限制分為軟限制(當(dāng)前限制)和硬限制(上限),其中硬限制是軟限制的上限值,應(yīng)用程序在運(yùn)行過程中使用的系統(tǒng)資源不超過相應(yīng)的軟限制,任何的超越都導(dǎo)致進(jìn)程的終止。

      ulimited 不限制用戶可以使用的資源,但本設(shè)置對(duì)可打開的最大文件數(shù)(max open files)

      和可同時(shí)運(yùn)行的最大進(jìn)程數(shù)(max user processes)無效

      -a 列出所有當(dāng)前資源極限

      -c 設(shè)置core文件的最大值.單位:blocks

      -d 設(shè)置一個(gè)進(jìn)程的數(shù)據(jù)段的最大值.單位:kbytes

      -f Shell 創(chuàng)建文件的文件大小的最大值,單位:blocks

      -h 指定設(shè)置某個(gè)給定資源的硬極限。如果用戶擁有 root 用戶權(quán)限,可以增大硬極限。任何用戶均可減少硬極限

      -l 可以鎖住的物理內(nèi)存的最大值

      -m 可以使用的常駐內(nèi)存的最大值,單位:kbytes

      -n 每個(gè)進(jìn)程可以同時(shí)打開的最大文件數(shù)

      -p 設(shè)置管道的最大值,單位為block,1block=512bytes

      -s 指定堆棧的最大值:?jiǎn)挝唬簁bytes

      -S 指定為給定的資源設(shè)置軟極限。軟極限可增大到硬極限的值。如果 -H 和 -S 標(biāo)志均未指定,極限適用于以上二者

      -t 指定每個(gè)進(jìn)程所使用的秒數(shù),單位:seconds

      -u 可以運(yùn)行的最大并發(fā)進(jìn)程數(shù)

      -v Shell可使用的最大的虛擬內(nèi)存,單位:kbytes

      eg: ulimit -c 1000(可以先通過ulimit -c 查看原來的值)


    【linux shell編程的簡(jiǎn)介】相關(guān)文章:

    Linux shell常用命令匯總10-26

    Linux系統(tǒng)shell工具打印輸出08-16

    Linux Shell文本處理工具10-08

    Linux文件系統(tǒng)簡(jiǎn)介06-01

    Linux流行的廠商版本簡(jiǎn)介10-12

    linux下etc/fstab文件的簡(jiǎn)介10-23

    2024年Linux認(rèn)證考試要點(diǎn):shell程序控制結(jié)構(gòu)語句09-20

    php調(diào)用shell的方法技巧07-15

    關(guān)于Shell腳本調(diào)試技術(shù)09-30

    Linux認(rèn)證概念10-29

    主站蜘蛛池模板: 久久99精品久久久久婷婷| 99久久精品费精品国产| 精品国产污污免费网站| 在线观看亚洲精品国产| 国产精品V亚洲精品V日韩精品| 亚洲国产第一站精品蜜芽| 精品a在线观看| 99精品福利国产在线| 国产日韩一区在线精品欧美玲| 在线观看自拍少妇精品| 国产精品福利在线观看免费不卡 | www.精品| 国产成人精品日本亚洲| 亚洲欧洲自拍拍偷精品 美利坚| 国产精品亚洲一区二区在线观看| 久久九九有精品国产23百花影院| 久久丫精品国产亚洲av| 成人午夜精品视频在线观看| 精品成人av一区二区三区| .精品久久久麻豆国产精品| 精品亚洲成a人片在线观看少妇| 精品国产91久久久久久久a| 亚洲综合国产精品| 国产精品成人观看视频国产| 精品一区二区三区东京热| 久久久久久亚洲精品成人| 亚洲2022国产成人精品无码区| 日韩人妻无码精品无码中文字幕 | 久久91精品国产91久久麻豆| 精品熟女少妇a∨免费久久| 亚洲精品午夜国产VA久久成人| 无码人妻精品一区二| 欧洲精品码一区二区三区免费看| 精品熟女少妇aⅴ免费久久| 精品午夜福利1000在线观看| 久久99精品久久久久久水蜜桃| 国内精品久久久久久久涩爱| 成人国产精品一区二区网站| 亚洲一级Av无码毛片久久精品| 欧美精品高清在线xxxx| 日本五区在线不卡精品|