linux下開發常用指令集以及使用案例

linux下開發常用指令集

本文主要介紹Linux開發者Linux系統下開發常用的指令集合。方便初學者進行學習的同時,也方便作一個查閱。

echo

    功能:在shell編程中極爲常用,在終端打印變量的時候常用到。
    
    命令格式:echo [-n] 字符串
    其中選項n表示輸出文字後不換行;字符串能加引號,也能不加引號。用echo命令輸出加引號的字符時,將字符串原樣輸出;
    用echo命令輸出不加引號的字符串時,將字符串的各個單詞作爲字符串輸出,各字符串之間用一個空格分割。
    

groupAdd

    功能:將用戶添加。
    
    
    命令格式:
    
    
    命令參數:
    -l 信號,如果不加信號的編號參數,則使用"-l"參數會列出全部的信號名稱。
    -a 當處理當前的進程時,不限制命令名和進程號對應的關係。
    -p 指定kill命令只打印相關進程的進程號,而不發送任何信號。
    -s 指定發送信號
    -u 指定用戶

kill

    功能:將用戶添加。
    
    
    命令格式:
    kill [參數][進程號]
    
    命令參數:
    -l 信號,如果不加信號的編號參數,則使用"-l"參數會列出全部的信號名稱。
    -a 當處理當前的進程時,不限制命令名和進程號對應的關係。
    -p 指定kill命令只打印相關進程的進程號,而不發送任何信號。
    -s 指定發送信號
    -u 指定用戶
    
    
    注意:只有第九種信號(SIGKILL)纔可以無條件終止進程,其它信號進程都有權利忽略。下面是常用的信號。
    
    HUP  1  終端斷線
    INT  2  中斷(同ctrl + c)
    QUIT 3  退出(同ctrl + \)
    TERM 15 終止
    KILL 9  強制終止
    CONT 18 繼續(與STOP相反,fg/bg命令)
    STOP 19 暫停(同Ctrl + z)
    
   
   
 實例1:列出所有信號名稱:
    kill -l 
 
 實例2:得到指定信號的數值
    kill -l KILL
    kill -l SIGKILL
    kill -l TERM
    kill -l SIGTERM
    
 實例3:先用ps查找進程,然後用kill殺掉
 kill 3268
    

 實例4:徹底殺死進程
 
 
 實例5:殺死指定用戶所有進程
 
 
 實例6:init進程是不可殺的。
 ps -ef |grep init
 kill -9   1
 kill -HUP 1
 ps -ef|grep init
 kill -KILL 1
 ps -ef|grep init
 
    
說明:
init是Linux系統中不可缺少的程序之一。所謂的init進程,
它是一個由內核啓動的用戶級進程。內核自行啓動(已被載入內存,
開始運行,並已初始化所有的設備驅動程序和數據結構等)之後,
就通過啓動一個用戶級成內需init的方式,完成引導進程。
所以,init始終是第一個進程(其進程編號始終爲1)。
其它所有進程都是init進程的子孫。init進程是不可殺的。
    
    
    

pidof

    功能:find the process ID of a running program.程序可以是一個二進制程序,也可以是一個shell腳本。如果是找出java程序的進程PID,pidof就無能爲力了,
    可以使用ps -ef |grep java或者jps-l來查看java進程的信息。通常找出進程PID的目的是確認程序是否在運行或者爲了把它殺掉或者發送一個信號給它。
    
    常用參數:
    格式:pidof program
    找出program程序的進程pid,如果有多個就會全部列出,program不能殺死shell腳本名稱。
    
    
    格式:pid -s program
    找出program程序的進程PID,只列出一個。(single shot - this instructs the program to only return one pid.)
    
    格式:pidof -x script
    找出shell腳本script的進程pid.
    
    
    參數:-o omitpid
    參數: -o omitpid1 - omitpid2
    在列出的進程PID中忽略omitpid.可以有多個。

    參數:-s
    只列出一個



使用示例:
示例一
pidof pidof
pidof console
pidof bash
pidof man
pidof java
jps -l


示例二
下面演示了怎麼查看腳本的PID的,可以發現通過不含路徑的腳本文件名稱、或者執行時的路徑來查看,其它方式不行。
ls /opt/imx/imx_web3q/update.sh

ps -ef|grep update.sh

pidof update.sh

pidof -x /opt/imx/imx_web3q/updatesh

pidof ./update.sh

tar

-c:建立壓縮檔案
-x:解壓
-t:查看內容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件


這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。

-z:有g_zip屬性的。
-j:有bz2屬性的。
-Z:有compress屬性的。
-v:顯示所有過程
-O:將文件解開到標準輸出。

下面的參數-f是必須的
-f:使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。


#tar -cf all.tar *.jpg
這條命令是將所有的.jpg的文件打包成一個名爲all.tar的包。-c是表示產生新的包,-f制定包的文件名。

#tar -rf all.tar *.gif
這條命令是將所有的.gif文件增加到all.tar的包裏去。-r是表示着表示增加文件的意思。

#tar -uf all.tar logo.gif
這條命令是更新原來的tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

#tar -tf all.tar
這條命令是列出all.tar包中的所有文件,-t是列出文件的意思。


#tar -xf all.tar
這條命令是解出all.tar包中的所有文件,-x是解開的意思。






壓縮:
tar  -cvf jpg.tar *.jpg//將目錄所有jpg文件打包成jpg.tar
tar -czf jpg.tar.gz *.jpg//將目錄裏所有jpg文件愛你打包成jpg.tar後,並且將其用gzip壓縮,生成一個gzip壓縮過的包,命名爲jpg.tar.gz
tar -czf jpg.tar.bz2 *.jpg//將目錄裏所有jpg文件打包成jpg.tar後,並且將其用gzip2壓縮,生車工你一個bzip2壓縮過的包,命名爲jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg//將目錄裏所有jpg文件打包成jpg.tar後,並且將其用compress壓縮
,生成一個umcompress壓縮過的包,命名爲jpg.tar.z


rar a jpg.tar *.jpg//rar格式的壓縮,首先要下載rar for linux

zip jpg.zip *.jpg//zip格式的壓縮,需要先下載zip for linux


解壓
tar -xvf file.tar//解壓tar包
tar -xzvf file.tar.gz//解壓tar.gz
tar -xjvf file.tar.bz2//解壓tar.bz2
tar -xZvf file.tar.Z//解壓tar.Z
urar e file.rar//解壓rar
unzip file.zip//解壓zip



總結:
1.*.tar用tar -xvf解壓
2.*.gz用gzip -d 或者gunzip解壓
3.*.tar.gz和*.tgz用tar -xzf解壓
4.*.bz2用bzip2 -d 或者用bunzip2解壓
5.*.tar.bz2用tar -xjf解壓
6.*.Z用uncompress解壓。
7.*.tar.z用tar -xZf解壓
8.*.rar用unrar e解壓
9.*.zip用unzip解壓

Linux下如何解壓後綴名爲.tar.xz的文件

原文鏈接:
https://blog.csdn.net/wy_bk/article/details/79347598
1.解壓“.xz”
xz -d your_file_name.tar.xz
註釋:運行上述命令後your_file_name.tar.xz會被刪除。

2.解包"tar.gz"
tar -xvf your_file_name.tar
注:運行上述命令後,your_file_name.tar會被刪除。

注:
    1..xz”是一種壓縮文件格式。Linux系統中常使用的文件格式還有".gz",".bz2"等。關於xz的更多內容,可以使用""man xz"查看
    
    2.".tar"是一個文件打包格式。tar命令本身只用於打包或解包,tar本身並沒有壓縮和解壓縮的功能。關於tar的更多內容,可以使用"man tar"查看。
    




Linux下如何正確使用rar命令進行解壓

 rar x *.rar

ed

ed編輯器是Linux操作系統下最簡單的文本編輯器。它是以行爲單位對文本進行編輯不想MS-DOS系統下的edit那樣是以整個屏幕框架爲單位對文本進行編輯的。
ed編輯器有兩個狀態:命令行狀態,

[root@EM335X /mnt/usb2/test]#ed 1.txt
"1.txt", 2 lines, 24 chars
: a      
hello 
s
q
.
: ls
q$
: w  
"1.txt", 5 lines, 35 chars
: x
ed: unimplemented command
: q
Really quit? y

ash

    命令行解釋器:
    一個簡單的輕量級的Shell,佔用資源少,適合運行於低內存環境,但是與下面講到的bash shell完全兼容。
    
    

echo $0 或者 echo $SHELL可以查看到板子裏運行的是bash還是ash

BusyBox是一個集成了三百多個最常用的Linux命令和工具的軟件。BusyBox包含了一些簡單的工具,例如ls,cat和echo等等,還包含了一些更大更復雜的攻擊,例如grep、find、mount以及telnet.有些人將BusyBox稱爲Linux的瑞士軍刀。簡單的說,BusyBox就好像一個巨大的工具箱,它集成壓縮了Linux的許多工具和命令,也包含了Android系統自帶的shell。

Linux下的ln命令

這是linux中一個非常重要的命令,請大家一定要熟悉。它的功能是爲某一個文件或目錄在另外一個位置建立一個同步的鏈接,類似windows下的超級鏈接。
這個命令最常用的參數是:-s,具體的用法是:
sudo ln -s 源文件 目標文件

舉例:
當前目錄是/local,而我經常要訪問/usr/local/linux/work

true /false

 將程序退出碼設置爲1或者0

ts_calibrate校準觸摸屏

    使用ts_lib包自帶的ts_calibrate校準觸摸屏非常簡單使用,但是基於xServer的GUI應用環境下,有兩個問題存在:
    1.校準後必須重新啓動X,應用端才能生效。這樣處理用戶肯定不能接受,因爲啓動一次機器畢竟耗時。
    2.在使用ts_calibrate校準觸摸屏時,要觸摸5個點,這時,如果GUI應用端在運行其它響應觸摸時間(鼠標事件)的程序就會出亂,所以安全的做法應該是在校準觸摸屏時,應該進行鎖屏操作。

pdflush的工作原理

    大家知道,在Linux操作系統中,寫操作是異步的,
    即寫操作返回的時候數據並沒有真正寫到磁盤上,
    而是先寫到了系統cache裏,隨後由pdflush內核線程將系統中的髒頁寫到磁盤上,
    在下面幾種情況下,系統會喚醒pdflush寫回髒頁。
    

login登陸

    login gl
    
    在輸入密碼,即能登陸成功。


route查看路由表


[gl@EM335X ~]$route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.201.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.202.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1

printenv

    功能:env和printenv均可以打印當前系統的環境變量。

tslib移植後,會生成五個應用程序。

bin目錄下生成:
ts_calibrate
ts_haverst
ts_print
ts_print_raw
ts_test
etc目錄下生成:
ts.conf

include目錄下有頭文件:
tslib.h

lib目錄下有
libts-1.0.so.0
libts-1.0.0.0
libts.la
libts.so
pkgconfig
ts


fgrep:
    將樣式視爲固定字符串的列表
    
egrep:
    將樣式爲延伸的普通表示法來使用。
    

recurse 遞歸

chattr

    chatter:鎖定文件,不能刪除,不能更改。
    +a:只能給文件添加內容,但是刪除不了
        chattr +a /etc/passwd
    -d: 不可刪除
    
    加鎖:chattr +i /etc/passwd 文件不能刪除,不能更改,不能移動。
    
    查看加鎖:lsattr /etc/passwd 文件加了一個參數i表示鎖定
    
    解鎖:chattr -i /home/omd/h.txt -表示解除
    

A:即Atime,告訴系統不要修改對這個文件的最後訪問時間。
S:即Sync,一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁盤。
a: 即AppendOnly,系統只允許這個文件之後添加數據,不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修改文件,而不允許刪除任何文件。
b:不更新文件或者目錄的最後存取時間。
c:將文件或目錄壓縮後存放。
d:當dump程序執行時,該文件或目錄不會被dump備份。
D:檢查壓縮文件中的錯誤。
i:即Immutable,系統不允許對這個文件進行任何的修改,如果目錄具有這個屬性,那麼任何的進程只能修改目錄之下的文件,不允許建立和刪除文件。
s:徹底刪除文件,不可恢復,因爲是從磁盤上刪除,然後用0填充文件所在區域。
u:當一個應用程序請求刪除這個萬惡我呢見,系統會保留其數據塊,以便以後能恢復刪除這個文件,用來防止意外刪除文件或目錄。

t:文件系統支持尾部合併(tail-merging)。
X:可以直接訪問壓縮文件的內容。

fsync 文件同步指令

pwd

pwd是print working directory的縮寫,其功能是現實當前所在工作目錄的全路徑。主要用當不確定當前所在位置時,通過pwd來查看當前目錄的絕對路徑。


示例1:查看當前所在路徑
pwd

示例2:查看當前所在路徑,不使用連接路徑
pwd -P

示例3:多層連接文件時,現實所有連接文件最終指向的文件全路徑。


cat

cat命令是linux下的一個文本輸出命令,通常是用於觀看某個文件的內容;

cat主要分爲三大功能:
1.一次顯示整個文件。
cat filename

2.從鍵盤創建一個文件
cat > filename
只能創建新文件,不能編輯已有文件。


3.將幾個文件合併爲一個文件
cat file1 file2 > file
cat具體命令格式爲:cat [-AbtEnstTuv][--help][--version] fileName

說明:把檔案串聯接後,傳到基本輸出(屏幕或加>fileName到另一個文檔)

參數:
-n或-number由1開始對所有輸出的行數編號。
-b或-number-nonblank和-n相似,只不過對於空白行不編號。
-s或-squeeze-blank當遇到有連續兩行以上的空白行,就替換爲一行的空白行。
-v或-show-nonprinting

範例:
cat -n linuxfile1 > linuxfile2把linuxfile1的檔案內容加上行號後輸入linuxfile2這個檔案裏。

cat -b linuxfile1 linuxfil2 >> linuxfile3把Linuxfile1和linuxfile2的檔案內容加上行號(空白行不加)之後將內容附加到linuxfile3裏。



範例:
把linuxfile1的檔案內容加上行號輸入linuxfile2這個文檔裏。


把linuxfile1和linuxfile2的檔案內容加上行號(空白行不加)之後將內容附加到linuxfile3裏。

cat -b linuxfile1 linuxfile2 >> linuxfile3
cat /dev/null > /etc/test.txt此爲清空檔案內容。


linux shell腳本中,我們經常看到類似於cat <<EOF語句,不熟悉的童鞋可能會絕的很奇怪:EOF好像是文件的結舒符,用到這裏起到什麼作用呢?



首先必須要說明的是EOF這裏沒有特殊的含義,你可以使用FOE或者ooo等(當然也不限制在三個字符或大寫字符)
可以將EOF替換成其它的東西,意思就是把內容當成標準輸入傳給程序。

結合這兩個表示,即可避免使用多行echo命令的方式,並實現多行輸出的結果。

接下來,簡單描述一下幾種常見的使用方式及其作用:
1、cat<<EOF,以EOF輸入字符爲標註輸入結束
2、cat>filename,創建文件,並把標準輸入輸出到filename文件中,以ctrl+d作爲輸入結束;
3、cat >fileame<<EOF,EOF作爲輸入結束,和ctrl + d作用一樣。



二、使用

看例子是最快的熟悉方法
# cat <<EOF > test.sh
># !/bin/bash  #"shell腳本"
># you shell script writes here
>EOF

結果:
引用#cat test.sh
#!/bin/bash
#you Shell script writes here.
可以看到,test.sh的內容就是cat生成的內容。
cat <<EOF >test.sh內容EOF

---就是將內容寫入test.sh,之前存在的內容會被覆蓋掉。EOF可以換成其他的符號比如EEE:cat <<EEE > test.sh內容EEE


三、其他寫法
1、追加文件
cat << EOF >>test.sh內容EOF
---將內容追加到test.sh的後面,不會覆蓋掉原有的內容。
2、換一種寫法
cat > test.sh <<EOF 內容 EOF

3EOF只是標識,不是固定的
cat << HHH > iii.txt
>adafd
>dafad
>afads
>HHH
這裏的“HHH”就代替了“EOF”的功能。結果是相同的。
引用#cat iii.txt
sdlkfad
sdkjf
asdlfj



4.非腳本中
如果不是在腳本中,我們可以用ctrl -D輸出EOF的標識。
#cat > iii.txt
skldjfklj
sdkfjkl
kljlk
Ctrl -D

結果:
引用#cat iii.txt
skldjfklj
sdkfjkl
kljlk


注意:關於">",">>","<","<<"等的意思,請自行查看bash的介紹。

chgrp 命令

功能:改變文件或目錄所屬的組
語法:chgrp [選項] group filename1/4

getopt工作的例子

getopt工作的例子
getopt ab:cd -a -b test1 -cd test2 test3
-a -b test1 -c -d -- test2 test3

optstring定義了四個有效字母:a,b,c,d.冒號(:)被放在了字母b後面,因爲b選項需奧一個參數值,當getopt命令運行時,它會檢測提供的參數列表(-a -b test1 -cd test2 test3),並給予提供的optstring進行解析,它會自動將-cd選項分割成兩個單獨的選項,並插入雙破折線來分割行中的額外參數。


lzop

lzop工具最適合在注重壓縮速度的場合,壓縮文件時會新建.lzo文件,而原文件保持不變(使用-U選項除外)

cpio命令

 cpio命令是通過重定向的方式將文件進行打包備份,還原恢復的工具,它可以解壓以(*.cpio)
 或者“.tar”結尾的文件。
  
 

more命令

 more功能類似於cat,cat命令是整個文件的內容從上到下顯示在屏幕上。more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按b鍵就會往回(back)一頁顯示,而且還有搜尋字符串的功能。more命令從前向後讀取文件,因此在啓動時就夾在整個文件。

sed

 sed:Stream Editor文本流編輯,sed是一個“非交互式的”面向字符流的編輯器。能同時處理多個文件多行的內容,可以不對原文件改動,把整個文件輸入到屏幕,可以把只匹配到模式的內容輸入到屏幕上。還可以對原文件改動,但是不會在屏幕上返回結果。
 
 
 sed命令的選項(option):
 -n:只打印模式匹配的行
 -e: 直接在命令行模式上進行sed動作編輯,此爲默認選項。
 -f: 將sed的動作寫在一個文件內,用-f filename執行filename內的sed動作。
 
 -r: 支持擴展表達式
 -i:直接修改文件的內容。
 

nice

功能:調整程序的優先級。
優先級的範圍:-20-19;當調整後的優先級小於-20後,以優先級-20來運行程序;當調整程序的優先級大於19後,則以19的優先級運行程序。


[root@EM335X /mnt/usb1/test]#nice   
0
[root@EM335X /mnt/usb1/test]#nice nice
10
[root@EM335X /mnt/usb1/test]#nice nice nice 
19
[root@EM335X /mnt/usb1/test]#

[root@EM335X /mnt/usb1/test]#nice -n -21 nice
-20


date

    #date +"%Y-%m-%d-%H-%m-%S"
    格式化輸出時間:
    

ionice

    功能--獲取或設置程序的IO調度與優先級。
    命令格式--
    ionice  [[-c class][-n classdate] [-t]] -p PID [PID]...
    ionice [-c class] [-n classdata] [-t] COMMAND [ARG]...
    
    IO調度策略:
    ionice將磁盤IO調度分爲三類:
    ilde:空閒磁盤調度,該調度策略是在當前系統沒有其它進程需要進行磁盤IO時,才能進行磁盤;因此該策略對當前系統的影響基本爲0;當然,該調度策略不能帶有任何優先級參數;目前,普通用戶是可以通過使用該調度策略。
    Best effort:是缺省的磁盤io調度策略;
    (1)該調度策略可以指定優先級(範圍是0~7,數值越小,優先級越高);
    (2)針對處於哦那個一優先級的程序將採用round-robin方式;
     (3)對於best effort調度策略,8個優先級等級可以說明在給定的一個調度窗口中時間片的大小。
    (4)目前,普通用戶(非root用戶)是可以使用該調度策略。(5)在內核2.6.26之前,沒有設置IO優先級的進程會使用"none"作爲調度策略,但是這種策略時的進程看起來像是採用了best effort調度策略,因爲其優先級是通過關於cpu nice有關的公式計算得到:io_priority= (cp_nice + 20)/5(6)在內核2.6.26之後,如果當前系統使用的是CFQ調度器,那麼如果進程沒有設置IO優先級別,將採用與內核2.6.26之前版本同樣的方式,推到出io優先級級別。
    
    Real time:實時調度策略,如果設置了該磁盤io調度策略,則立即訪問磁盤,不管系統中其他進程是否有IO。因此使用實時調度策略,需要注意的是,該訪問策略可能會使得其他進程處於等待狀態。

參數說明:
-c class: class 表示調度策略,其中0 for none,1 for read time,2 for best-effort,3 for idle.
-n classdata:class data表示io優先級級別,對於best effort和real time,class data可以設置成0~7-p pid:指定要查看或設置的進程號,如果沒有指定pid參數,ionice will run the listed program with the given parameters.
-t :忽略設置優先級產生的錯誤。
COMMAND:表示命令名



ionice -c 3 -p 89 #設置進程號爲89的進程的調度策略是idle.
ionice -c 2 -n 0 bash
#運行bash,調度策略是best-effort,最高優先級
ionice -p 89 91 #打印進程號爲8991的進程的調度策略和io優先級。
ionice -c3 -p$$ 
#將當前的進程(也就是shell)磁盤IO調度策略設置爲idle類型。

    

mount

功能:
   掛載
   
   
掛載的概念:
    Linux中的根目錄以外的文件想要被訪問,需要將其關聯到根目錄下的某個目錄來實現,這種關聯就是"掛載",這個目錄就是“掛載點”,解除次關聯關係的過程稱爲"卸載"。
    


注意:掛載點的目錄需要以下幾個要求:
(1)目錄事先存在,可以用mkdir命令新建目錄。
(2)掛載點目錄不可被其它進程使用到。
(3)掛載點下原有文件被隱藏。



掛載與卸載:

掛載方法:mount DECE MOUN_POINT
    mount:通過查看/ect/mtab(文章最後會對/ect/mtab有個解釋)文件顯示當前系統已掛載的所有設備。
    
 命令使用格式:mount [-fnrsvw][-t vfstype][-o options] device dir
 device :指明要掛載的設備;
 (1)設備文件:例如/dev/sda5
 (2)卷標:-L 'LABEL',例如 -LMYDATA
 (3)UUID-U 'UUID':例如, -U0C5050-4313
 (4)僞文件系統名稱:proc,sysfs,devtmpfs,configfs
 
 dir:掛載點
 
     事先存在;建議使用空目錄:
     進程正在使用中的設備無法被卸載;
常用命令選項:
-t sftype:指定要掛在的設備上的文件系統類型。
-r:readonly,只讀掛載;
-w:read and write,讀寫掛載;
-n:不更新/etc/mtab;
-a:自動掛載所有支持自動掛載的設備;(定義在/etc/fstab文件中,且掛載選項中有自動掛載的功能。)
-L 'LABEL':以卷標指定掛載設備;
-U 'UUID':UUID指定要掛載的設備;
-B,--bind:綁定到另一個目錄上。
 
 
 事先存在;建議使用空目錄。
     進程正在使用中的設備無法被卸載:
     
常用命令選項:
-t vsftype:指定要掛載的設備上的文件系統。
-r readonly,只讀掛載
-w red and write:讀寫掛載
-n 不更新/etc/mtab;
-a 自動掛載所有支持自動掛載的設備;(定義在了/etc/fstab文件中,且掛載中有“自動掛載”功能。)
-L 'LABEL':以卷標指定掛載設備;
-U 'UUID'
 
 
 UUID:含義是通用唯一識別碼(Universally Unique Identifier),這是一個軟件構建的標準。
-o options:(掛載文件系統的選項)
async:異步模式
sync:同步模式
atimee/noatime:包含目錄和文件;
diratime/nodiratime:目錄的訪問時間戳。
auto/noauto:是否支持自動掛載
exec/noexec:是否支持將文件系統上應用程序運行爲進程。
dev/nodev:是否支持在此文件系統上使用特殊權限。
remount:重新掛載
ro:只讀
rw:只寫
user/nouser:是否允許普通用戶掛載此設備。
acl:啓用此文件系統上的acl功能。
注意:上述選項可多個同時使用,彼此使用逗號分隔。
默認掛載選項:
defaults:rw,suid,dev,exec,auto,nouser,and async
上述信息可以通過查看超級塊信息看到,這裏不再對其進行演示。



命令演示:
1.指定文件系統將塊設備掛載至指定空萬惡文件夾內:演示內容:1)沒有指定文件系統,命令是否能正確執行;2)指定錯誤文件系統,命令是否能正確執行;3)掛載點有內容的文件夾,查看被掛載後其內容是否消失。



https://blog.csdn.net/daydayup654/article/details/78788310



 
 
 
 

df命令

    用來檢測Linux服務器的文件系統的磁盤空間佔用情況。
    
    實例一:
    顯示所有磁盤空間佔用情況:
    df -ha[-a 顯示所有]
    注意:tmpfs是一個不存在與實體硬盤上,而是駐在記憶裏的特殊文件系統。其中一個副作用就是當你失去電源(或重新開機時),tmpfs上的一切內容就會消失。tmpfs駐守在內存裏,它的速度極快。它的尋覓時間與駐守在硬盤上的一般文件系統根本不能相比。
    
    
    mount -t tmpfs tempfilesystem /mnt/tmpfs[手動掛載tmpfs文件系統]
    
    以inode模式顯示磁盤使用情況。
    df -i
    
    顯示指定磁盤:
    df -ht ext4
    
    
    列出文件系統的類型:
    df -h
    
    [root@EM335X /bin]#df -ha
Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs              98.8M     52.8M     46.0M  53% /
devtmpfs                121.2M      4.0K    121.2M   0% /dev
proc                         0         0         0   0% /proc
sysfs                        0         0         0   0% /sys
tmpfs                   121.4M         0    121.4M   0% /tmp
tmpfs                   121.4M      4.0K    121.4M   0% /var
devpts                       0         0         0   0% /dev/pts
/dev/sda1                14.7G    735.9M     14.0G   5% /mnt/usb1
ubi1_0                  111.2M     20.0K    106.5M   0% /mnt/nandflash


dd命令

dd命令用於讀取、轉換並輸出數據。
dd可從標準輸入或文件中讀取數據,根據指定的格式來轉換數據,再輸出到文件、設備或標準輸出。

dd的流程: 讀取 -->格式 -->輸出

參數說明:
 if=文件名:輸入文件名,缺省爲標準輸入。即指定源文件。
 of=文件名:輸出文件名,缺省爲標準輸出。即制定目的文件。
 ibs=bytes:一次讀入bytes個字節,即指定一個塊大小爲bytes個字節。
 obs=bytes:一次輸出bytes個字節,即指定一個塊大小爲butes個字節
 cbs=bytes:一次轉換bytes個字節,即指定轉換緩衝區大小。
 skip=blocks:從輸入文件開頭跳過blocks個塊後開始複製。
 count=blocks:僅拷貝blocks個塊,塊大小等於ibs指定的字節數。
 
 conv=<關鍵字>,關鍵字可以有以下11種:
   conversion:用於指定的參數轉換文件
   ascii:轉換ebs dic爲ascii
   ebsdic:轉換ascii爲ebc dic
   ibm:轉換ascii爲altermate ebc dic
   block:把每一行轉換爲長度爲cbs,不足部分用空格填充
   unblock:把每一行的長度都爲cbs,不足部分用空格填充
   lcase:把大寫字符轉換爲小寫字符。
   ucase:把小寫字符轉化爲大寫字符。
   swab:交換輸入的每對字節。
   noerror:出錯時不停止
   notrunc:不截短輸出文件。
   sysnc:將每個輸入塊填充到libs個字節,不足部分用空(NUL)字符補齊。
 
 
 
 實例:
    在linux下製作啓動盤,可使用如下命令:
    dd if=boot.img of=/dev/fd0 bs=1440k
    將testfile文件中的所有英文字母轉阿虎爲大寫,然後轉化成testfile_1文件,在命令提示符中使用如下命令:
    dd if=testfile2 of=testfile_1 conv=ucase
    
    其中testfile_2的內容爲:
    
 




ip

使用ip命令顯示不同網絡接口的統計數據:

[root@EM335X /mnt/usb1/test]#ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      
2: can1@NONE: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT qlen 10
    link/can 
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      
3: can0@NONE: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT qlen 10
    link/can 
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      
4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
    link/ether c8:df:84:9b:7b:d3 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      
5: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
    link/ether c8:df:84:9b:7b:d5 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0      

ip

查看所有ip的連接狀態:
ip addr show

ip link set eth0 down

ip link set eth0 up



mountpoint查看一個目錄是不是掛載點。

    mountpoint [-q][-d] /path/to/directory
    mountpoint -x /dev/device
    
    [功能]
    查看一個目錄是不是掛載點。
    
    [描述]
    mountpoint查看一個目錄是不是掛載點
    選項如下:
    -q 安靜模式,不會打印任何東西。
    -d 在標準輸出上打印文件系統的主/次設備號。
    -x 在標準設備上打印塊設備的主/次設備號。
    
    如果掛載點返回0,如果不是就返回非0[舉例]
    *查看/mnt目錄是不是掛載點;
    $mountpoint /mnt
    輸入之後,輸出如下:
    /mnt is a mountpoint
    這裏,我在/mnt目錄下面掛載了一些東西。
    
    
注意:    
[root@EM335X /mnt/usb1]#mountpoint /mnt
/mnt is not a mountpoint
[root@EM335X /mnt/usb1]#mountpoint /dev/sda
/dev/sda   /dev/sda1
[root@EM335X /mnt/usb1]#mountpoint /dev/sda1
mountpoint: /dev/sda1: Not a directory
[root@EM335X /mnt/usb1]#mountpoint /dev     
/dev is a mountpoint
    
首先:掛載點是一個文件夾,我們掛載點的設備文件目錄,而不是我們映射到的文件夾。


linux中如何建立掛載點/mnt/usb
1.首先usb這個目錄自己創建
    mkdir /mnt/usb
2.mount /dev/設備文件(要掛載的設備文件) /mnt/usb(掛載點)
[root@EM335X /]#mount /dev/sda1 /mnt/usb3


[root@EM335X /mnt/usb1]#mountpoint /mnt/usb1
/mnt/usb1 is a mountpoint
[root@EM335X /mnt/usb1]#mountpoint /mnt/usb2
/mnt/usb2 is not a mountpoint
[root@EM335X /mnt/usb1]#mountpoint /mnt/usb3
/mnt/usb3 is a mountpoint

    
    
    

mount

通俗來說,掛載就是將一個磁盤分區或者一個文件和一個目錄綁定在一起,

比如掛載一個磁盤分區:
mount /dev/sda1 /mnt
解釋:mount就是掛載命令,/dev/sd1就是要掛載的磁盤分區,/mnt是要綁定的目錄。

掛載後就能到目錄/mnt去訪問磁盤分區/dev/sda1裏面的資料了。
比如掛載一個ISO文件:
mount -o loop myfile.iso /mnt/iso
一個文件不能有幾個掛載點,會提示設備忙碌。



如何卸載一個掛載點

我們可以通過rm -r /mnt/usb3
將掛載點進行刪除,即可不使用多餘的u盤掛載點。

linux加載insmod和卸載rmmod驅動。

    假設要加載的驅動模塊名稱爲1.ko
    
    方法一:
    insmod 1.ko 即可安裝
    
    方法二:
    rmmod <module_name>
    注意:其中,module_name:顯示的是模塊名稱,而不是對應的ko文件名。
    

讀取鼠標設備座標,以十六進制輸出。

[root@EM335X /]#cat /dev/input/mice | hexdump  
0000000 0208 0800 0106 0a08 0803 030e 1108 0802
0000010 0112 1308 0800 0012 1108 0800 0011 1008
0000020 0800 000e 0b08 0800 0009 0808 0800 0107
0000030 0608 0801 0106 0508 0801 0105 0508 0801
0000040 0003 0208 0800 0001 0028 28ff fe00 0028
0000050 28fc fc00 0028 28fe ff00 0028 28ff ff00
0000060 0028 28ff ff00 0028 28ff fe00 ff38 38fe
0000070 feff 0028 28fe ff00 0008 0801 0200 0008
0000080 0805 0701 0108 0808 0a01 0108 0809 0701
0000090 0208 0806 0602 0208 0805 0402 0208 0804
00000a0 0302 0308 0803 0404 0608 0804 0407 0808
00000b0 0805 040a 0a08 0804 040a 0a08 0803 0307
00000c0 0408 0801 0003 0108 0800 0100 0108 0801
00000d0 0002 0208 0800 0102 0108 2801 ff00 0028
00000e0 28fd fc00 0028 28fc fb00 0028 28fb fd00
00000f0 0028 28fd fc01 0128 28fc fc00 0128 28fc
0000100 fc01 0128 28fb fb01 0028 28fc fd00 0028
0000110 28fd fd00 0028 28fe fe00 0028 28fd fd00
0000120 0128 28fe fe01 0028 28fe ff00 0028 28ff
0000130 ff00 0028 28ff fd00 0128 28f9 f602 0228
0000140 28f5 f402 0228 28f5 f701 0128 28f9 fc01

virtual box如何建立共享文件夾

1.在virtual box設置中,添加windows下的文件夾,假如爲sharing

2.在虛擬機的ubuntu中/mnt/目錄下新建sharing目錄
cd /mnt
sudo mkdir sharing


3.接下來我們建立兩個系統之間的共享文件的聯繫。

需要安裝相應的增強功能。

之後,我們用root用戶權限執行下面命令。

sudo mount -t vboxsf sharing /mnt/sharing

  • 技術交流可加入羣聊:
qq1:498339061
qq2:875479019 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章