經常使用命令su ls cp cd mv cat touch mkdir rm head less more pwd tac 等

1. 用戶切換
su:switch user
su kevin   //半切換,切換到kevin用戶,可是不讀取kevin用戶的配置文件
su - kevin   //徹底切換,執行這個命令的時候表示切換到kevin用戶,而且從新讀取用戶環境相關配置文件
clear    /*清屏*/
2.pwd
 pwd   //printing working directory,顯示當前目錄
3.cd
cd :change directory 切換目錄
cd 切換到用戶的家目錄,也就是主目錄,Home directory 家目錄能夠用 ~ 表示,因此此命令也能夠 cd ~
  cd ~
 cd ~kevin    /*切換到kevin用戶的家目錄*/     cd ~ USERHAME:進入指定用戶的家目錄,固然對權限有要求
 cd -:在當前目錄和前一次所在的目錄之間來回切換
 
4.命令歷史
history:查看命令歷史
-c:清空命令歷史
-d:OFFSET[n]:刪除指定位置的命令
-w:保存命令歷史至歷史文件
命令歷史的使用技巧:
!n:執行命令歷史中的第n條命令
[root@Kevin ~]# !15
!-n:執行命令歷史中倒數第n條命令
[root@Kevin ~]# !-5
!!:執行上一條命令
[root@Kevin ~]# !!
!string:執行命令歷史中最近一個以指定字符串開頭的命令
[root@Kevin ~]# !ech
!$:引用前一個命令的最後一個參數
[root@Kevin ~]# nano /tmp/inittab
[root@Kevin ~]# nano !$
nano /tmp/inittab
Esc,.:先按Esc,放開,再按點,一樣引用前一個命令的最後一個參數

 

二,基本文件管理
1.ls
ls是"List"的意思,列出指定路徑下的文件。
ls -l:長格式顯示
   -h:作單位換算,將byte換算成K,M,G等.
   -a:列出全部文件,包括以.開頭的隱藏文件
   -d:列出目錄自身屬性
   -i:index node,inode每個文件都有一個數字標識符,就是inode.也能夠稱爲索引節點號,-i 就是顯示索引節點號.
   -t:以時間前後順序顯示結果
 
[root@Kevin ~]# ls -l
drwxr-xr-x. 2 root root    4096 Nov  4 23:10 bash
在ls -l命令所列出的文件屬性中,各字段含義以下:
文件類型:
-:普通文件(f)
d:目錄文件
b:塊設備文件(block)
c:字符設備文件(character)
l:符號連接文件(symbolic link file)
p:命令管道文件:(pipe)
s:套接字文件(socket)
文件權限:9位,每3位一組,每一組:rwx(讀[read],寫[write],執行[execute],)
表示有多少個文件名鏈接到此節點(inode),即鏈接數
文件的屬主(owner)
文件的屬組(group)
文件大小(size) ,單位是字節(byte)
文件名
2.mkdir
mkdir是"make directory"的意思,新建目錄
[root@Kevin ~]#mkdir aming ##建立一個名文aming的目錄
[root@Kevin ~]#mkdir a b c ##依次在當前目錄建立a b c三個同級目錄
[root@Kevin ~]#mkdir -p aa/bb/cc ##遞歸建立aa bb cc目錄,aa目錄包含bb,bb目錄包含cc
3.rmdir
   rmdir是"remove directory"的意思,刪除目錄,用法同上,-p選項略有不一樣
[root@Kevin ~]#rmdir -p aa/bb/cc  ##會遞歸刪除目錄aa bb cc,可是前提是目錄都爲空,若是不爲空就沒法刪除。
 
4.rm
rm是"remove"的意思,意爲刪除
rm -r:遞歸刪除
   -f:強制刪除,不提示
-rf:遞歸併強制刪除,不提示
 
5.cp  cp 
cp是"copy"的意思,意爲複製
# cp -r aaa/bbb . ##將aaa下的bbb目錄複製到當前目錄,加上 -r參數能夠複製目錄
# ls
2.txt  aaa  bbb
# cp aaa/1.txt ./2.txt   ##將1.txt複製到當前目錄並重命名爲2.txt
# ls
2.txt  aaa
 
6.mv
mv是"move"的意思,意爲移動,至關於windows中的剪切
[root@Kevin aa]# mv aaa/bbb . ##將aaa目錄下的bbb目錄移動到當前目錄下
[root@Kevin aa]# ls
1.txt  2.txt  aaa  bbb
[root@Kevin aa]# mv 2.txt 3.txt  ##將文件2.txt重命名爲3.txt
[root@Kevin aa]# ls
1.txt  3.txt  aaa  bbb
 
7.touch
#touch a ##建立文件a,若是文件a已存在,則會更改文檔的日期時間,包括存取時間和更改時間。固然對目錄也有效。
 
三,查看文本經常使用命令
查看文本經常使用的命令有cat、tac、more、less、head、tail、od等
    - cat:由第一行開始顯示文件內容。
    - tac:從最後一行開始顯示,能夠看出tac是cat的。
    - more:一頁一頁地顯示文件內容。
    - less:與more相似,可是比more更好的是,它能夠往前翻頁!
    - head:只看頭幾行。
    - tail:只看結尾幾行。
    - od:以二進制的方式讀取文件內容!
 
1.cat:concatenate,鏈接並顯示文本內容。
]# cat -n /etc/issue      ##顯示行號,跟內容無關,只是對顯示內容編號
     1     CentOS release 6.4 (Final)
     2     Kernel \r on an \m
     3     
對於Linux系統而言,全部文本文件行結束符是$,而windows的結束符是$+Enter.
]# cat -E /etc/issue  ##顯示換行符
CentOS release 6.4 (Final)$
Kernel \r on an \m$
$
    - 這裏若是直接輸入cat,沒接參數的話,從標準輸入讀取內容,並顯示到標準輸出,須要用Ctrl+C中斷。
    - 若是輸入命令,輸入一半不想執行,也能夠用Ctrl+C中斷,而不用刪回從新輸入。
    - 若是在終端中輸入的話,想查看輸出的上下文,能夠按Shift+page up/page down,不過若是文件比較大的話,由於內存控制,會顯示不完。
 
2.tac:反向顯示文本。
[root@Kevin ~]# tac /etc/issue
Kernel \r on an \m
CentOS release 6.4 (Final)
    - 與cat相反,tac是由最後一行到第一行反向在屏幕上顯示出來的。
3.more:分頁顯示文本,向後翻。
[root@Kevin ~]# more /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6f
#
# For more information about this file, see the man pages man(1)
# and man.conf(5).
#
# This file is read by man to configure the default manpath (also used
--More--(5%)
    - 空格鍵(space):表明向下翻頁;
    - Enter:表明向下滾動一行;
    - /字符串:表明在這個顯示內容當中,向下查詢"字符串"這個關鍵字;
    - :f:馬上顯示出文件名以及目前顯示的行數;
    - q:表明馬上離開more,再也不顯示該文件內容;
    - b或者Ctrl+b:表明往回翻頁,不
    - 過這個操做只對文件有用,對管道無用。
more顯示內容,翻到最後一頁會自動退出。

 
4.less:分頁顯示文本;翻到最後不會退出,要按q退出。
命令相似more,不過有些許不一樣。
 
    
- PageDown:向下翻動一頁;也可使用空格,space;也可使用f
    - PageUp:向上翻動一頁;也可使用b或Ctrl+b
    - /字符串:向下查詢"字符串"的功能;
    - ?字符串:向上查詢"字符串"的功能;
    - n:重複前一個查詢(與/或?有關);
    - N:反向重複前一個查詢(與/或?有關);
    - q:離開
    - j:向下滾動一行
    - k:向上滾動一行
    - shift+G,最下面
    - shift+g,最上面
 
5.head:查看前n行(默認n=10)
 
]# head /etc/inittab     ##默認顯示前10行
]# head -n 20 /etc/inittab   ##顯示前20行,也能夠直接head -20 /etc/inittab
]# head -n -100 /etc/inittab   ##後面100行不顯示,只顯示前面的內容。
 
 
6.tail:顯示後n行(默認n=10)
]# tail -f /var/log/messages   ##持續監測messages文件,不退出,等待顯示後續追加至此文件的新內容,Ctrl+C結束
Aug 18 19:56:10 Kevin NetworkManager[1367]: <info> (eth0): device state change: 2 -> 3 (reason 40)
Aug 18 19:56:10 Kevin kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Aug 19 03:52:34 Kevin kernel: pickup[4695]: segfault at 0 ip (null) sp bfeb1aac error 14 in libm-2.12.so[12a000+28000]
Aug 19 04:23:53 Kevin kernel: e1000: eth0 NIC Link is Down
Aug 19 04:23:53 Kevin NetworkManager[1367]: <info> (eth0): carrier now OFF (device state 3)
Aug 19 04:23:53 Kevin NetworkManager[1367]: <info> (eth0): device state change: 3 -> 2 (reason 40)
Aug 19 04:23:53 Kevin NetworkManager[1367]: <info> (eth0): deactivating device (reason: 40).
Aug 19 04:23:59 Kevin kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Aug 19 04:23:59 Kevin NetworkManager[1367]: <info> (eth0): carrier now ON (device state 2)
Aug 19 04:23:59 Kevin NetworkManager[1367]: <info> (eth0): device state change: 2 -> 3 (reason 40)
]# tail -n +100 /etc/man.config  ##若是不知道有幾行,想列出100行之後的內容
 
四,文本處理
 
文本處理經常使用命令:cut、join、sed、awk
 
1.cut:
-d:指定字段分隔符,默認是空格
-f:指定要顯示的字段
[root@Kevin ~]# cut -d: -f1,7 /etc/passwd  ##顯示以:分割的第一個和第七個字段
root:/bin/bash
bin:/sbin/nologin
daemon:/sbin/nologin
adm:/sbin/nologin
lp:/sbin/nologin
 
]# cut -d: -f1-3 /etc/passwd   ##顯示第一個字段到第三個字段
]# cut -d" " -f1-3 a.txt   ##以空格爲分隔符,顯示第一個字段到第三個字段
 
五,文本排序
1.sort:默認按ASCII表排序,其中-f參數忽略大小寫
 ~]# sort sort.test   ##按ASCII表排序
022
21234
213
232
 
~]# sort -n sort.test   ##按數值大小排序
022
34
34
213
 
 ~]# sort -n -r sort.test  ##按數值大小,而且降序排序
32423
21234
4546
3435
 
~]# sort -t: -k3 /etc/passwd  ##-t:指定字段分隔符,-k指定以哪一個字段爲準
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
 
 ~]# sort -n -u sort.test  ##其中,-u指unique,相同項只顯示一次,即去掉重複項
022
34
213
232
3435
 
2.uniq:就是unique的意思
 ~]# sort 1.txt
022
21234
213
232
 ~]# uniq sort.test  ##未作排序,重複項不顯示,可是隻限於相鄰的重複項
32423
213
 
~]# uniq -c sort.test  ##  顯示文件中行重複的次數
 ~]# uniq -d sort.test  ##  只顯示重複的行
 
六,文本統計
1.wc(word count)
~]# wc /etc/fstab  ##這裏意思是15行,78個單詞,779個字節
15  78 779 /etc/fstab
 ~]# wc -l /etc/fstab  ##顯示行數
15 /etc/fstab
 ~]# wc -w /etc/fstab  ##顯示單詞數
78 /etc/fstab
 ~]# wc -c /etc/fstab  ##顯示字節數
779 /etc/fstab
 ~]# wc -m /etc/fstab  ##顯示字符數,其實這裏字節就是字符
779 /etc/fstab
 ~]# wc -L /etc/fstab  ##最長的一行包含93個字符
93 /etc/fstab
 
七,字符處理命令
1.tr:轉換或刪除字符, tr[option]... SET1[SET2]
[root@Kevin ~]# tr 'abc' 'ABc' ##轉換字符abc爲ABc
abc
ABc
account
Account
begin
Begin
[root@Kevin ~]# tr 'a-z' 'A-Z' < /etc/passwd  ##將passwd文件中,a到z的全部字母轉換成大寫
[root@Kevin ~]# tr -d 'ab'  ##刪除出如今字符集中的ab,若是直接tr -d就是刪除字符集中全部字符
aaaaaaabvc
vc
bfdsffa
fdsff
ab
 
aaaaaaabbbbc
c
 
 
split 切割大文件
[root@kevin ~]#split -b70k 2.txt     ##將2.txt文件按大小分割成N個文件,每一個文件72k,默認命名爲xaa xab xac....
 
 
[root@kevin ~]#split -l500 2.txt kevin    ##將2.txt文件按行切割成N個文件,每一個文件500行,命名爲kevinaa kevinab kevinac... 
 
 
文件查找:
locate:
locate 數據庫由另外一個 叫作 updatedb 的程序建立。
這個數據庫不是持續更新的,若是新建立的文件去用locate查找,是找不到的,由於沒有更新updatedb數據庫,這時候需用手動更新一下.
非實時,模糊匹配,查找是根據全系統文件數據庫進行的;
updatedb:
手動生成文件數據庫
[root@www ~]# locate passwd |head -5     ##依據updatedb,能夠手動更新updatedb
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/lib64/security/pam_passwdqc.so
 
[root@www ~]# updatedb     ##手動更新updatedb,updatedb並非實時更新的
 
默認天天凌晨4點自動更新.
 
1.文件的操做命令:
ls -ld  目錄 
du -sh 查看目錄和文件大小
touch 建立一個文件
mkdir ---mkdir aaa/ppp/ccc -p 遞歸建立目錄
cat 命令: -n 查看文件時,把行號也顯示到屏幕上
               -A 顯示全部東西出來,包括特殊字符
tac命令:用來把文件的內容顯示在屏幕上,只不過是先顯示最後一行,而後是倒數第二行,最後顯示的是第一
行。倒敘顯示
more 也是用來查看一個文件的內容,後面直接跟文件名,當文件內容太多,一屏幕不能佔下,而你用 ‘cat’ 確定是看不前面的內容的,那麼使用 ‘more’ 就能夠解決這個問題了。當看完一屏後按空格鍵繼續看下一屏。但看完全部內容後就會退出。若是你想提早退出,只需按 ‘q’ 鍵便可。
less做用跟more同樣,後面直接跟文件名,但比more好在能夠上翻,下翻。空格鍵一樣能夠翻頁,而按 ‘j’ 鍵能夠向下移動(按一下就向下移動一行),按 ‘k’ 鍵向上移動。在使用more和less查看某個文件時,你能夠按一下 ‘/’ 鍵,而後輸入一個word回車,這樣就能夠查找這個word了。若是是多個該word能夠按 ‘n’ 鍵顯示下一個。另外你也能夠不按 ‘/’ 而是按 ‘?’ 後邊一樣跟word來搜索這個word,惟一不一樣的是, ‘/’ 是在當前行向下搜索,而 ‘?’ 是在當前行向上搜索。
head命令:若是加 -n 選項則顯示文件前n行。
tail命令:加-n 選項則顯示文件最後n行。
                加-f動態顯示文件最後十行。
 
cp -r 表示拷貝目錄(拷貝目錄必須加-r) cp 來源文件 目標文件
test1 拷貝成test2 cp test1 test2
etho abc >filename # >符號表示重定向 把前面命令輸出的類容寫入後面的文件中
         >>追加寫入 >刪除寫入
(一個 ‘>>’ 這個符號跟前面介紹的 ‘>’ 的做用都是重定向,即把前面輸出的東西輸入到後邊的文件中,只是 ‘>>’ 是追加的意思,而用 ‘>’ 若是文件中有內容則會刪除文件中內容,而 ‘>>’ 則不會。)
cp -d 鏈接軟鏈接硬鏈接 軟鏈接跟window快捷方式類是
mv ---mv /home/yuananqin /home/piao 把yuananqin移動到piao中
      mv /home/yuananqin/123.txt
mv 來源文件 目標文件
若是目標文件不存在既把:來源文件更名成目標文件名稱
cat -n filename //顯示幾行
cat -A filename//顯示全部東西包括特殊符號
rmdir 只能刪除目錄不能刪除文件
rm -r跟rmdir同樣 -rf不須要提示才加f
/bin/rm -r aaa 使用絕對路徑 which rm .. alias
 
環境變量 PATH
which 用來查找某個命令的絕對路徑
[root@localhost ~]# which rmdir
/bin/rmdir
host ~]# which rm alias rm='
[root@loca
lrm -i' /bin/rm
h ls alias ls='ls --color=au
[root@localhost ~]# whi
cto'
/bin/ls
rm和ls 是兩個特殊命令,使用alias命令作了別名 。咱們使用rm 實際使用的事"rm -i" 
ls實際使用的事「ls --color=auto」‘alias’ 能夠設置命令的別名也能夠設置文件的別名
[root@localhost ~]# echo $PATH//etho表示打印的意思$表示後面鏈接的是變量
設置環境變量
[root@localhost ~]# PATH=$PATH:/root
修改Linux的PATH方法有三(添加用戶的路徑到PATH):
 方法一: 直接在命令行中輸入:#PATH=$PATH:/etc/apache/bin。這種方法只對當前會話有效,也就是說每當登出或註銷系統後,PATH設置就會恢復原有設置。
 方法二: 修改/etc/profile文件。在/etc/profile文件的適當位置添加PATH=$PATH:/etc/apache/bin (注意:=即等號兩邊不能有任何空格)。這種方法最好,除非你手動強制修改PATH的值。不然將不會被改變。
 方法三: 修改用戶目錄下的.bash_profile:vi ~/.bash_profile,把用戶想添加的路徑添加到PATH後面。這種方法只針對用戶起做用。 注意:若採用修改profile文件的方法改變PATH,則必須從新登陸才能生效,如下方法可簡化工做: 若是修改了/etc/profile,那麼編輯結束後執行source profile 或執行點命令:./profile,PATH的值就會當即生效了。這個方法的原理是再執行一次/etc/profile shell腳本,注意若是用sh /etc/profile是不行的,由於sh是在子shell進程中執行的,即便PATH改變了也不會反映到當前環境中,可是source是在當前shell進程中執行的,因此咱們能看到PATH的改變。
屬性 ls -lh
linux文件屬性和目錄管理:

用ls –l 查看當前目錄下的文件時,共顯示了9列內容(用空格劃分列)node

第1列,包含有該文件類型和所屬主、所屬組以及其餘用戶對該文件的權限。共11位有的文件是10位,沒有最後面的一位。 其中第一位用來描述該文件的類型。linux

‘d’ 表示該文件爲目錄;ios

‘-‘ 表示該文件爲普通文件;shell

‘l’ 表示該文件爲連接文件(linux file),上邊提到的軟連接即爲該類型;數據庫

‘b’ 表示該文件爲塊設備,好比 /dev/sda 就是這樣的文件。apache

‘c’ 表示該文件爲串行端口設備,例如鍵盤、鼠標。vim

‘s’ 表示該文件爲套接字文件(socket),用於進程間通訊。windows

第2列,表示爲連接佔用的節點(inode), [1] 爲目錄時,一般與該目錄底下還有多少目錄有關係。bash

第3列,表示該文件的所屬主。網絡

第4列,表示該文件的所屬組。

第5列,表示該文件的大小。

第6列、第7列和第8列爲該文件的最近的修改日期,分別爲月份日期以及時間,也就是所謂的mtime.

第9列,文件名。

更改文件的權限

文件權限 drwxr-xr-x
第一列表示文件類型
l 連接文件 b塊設備文件 c字符文件 p管道文件 s套接字文件 -普通文件
後9段每三段一組 擁有者 擁有組 其餘人權限 r w x讀寫執行
對於目錄 具備x說明能夠進入cd目錄 ,rx 具備 cd 和ls讀出目錄, wx rm mv
rw 對於目錄沒有意義
chmod u g o 表示 擁有者, 擁有組, 其餘other
chmod u=rwx filename
chmod g=x filename
chmod o=rwx filename
chmod ugo=r filename//組合模式
chmod u+w filename //加模式
chmod u-r filename
chmod o+x password
r 4 w 2 x 1
chmod 744 filename
更改文件的所屬主 chown

語法: chown [ -R ] 帳戶名 文件名或者 chown [ -R ] 帳戶名:組名 文件名

-R選項只做用於目錄,做用是級聯更改,即不只更改當前目錄,連目錄裏的目錄或者文件所有更改。

chown user  filename 更改文件的全部主

chown :usergroup filename 更改文件所屬組

chown yuananqin:piao password 更改擁有者和擁有組

umask語法: umask  xxx (這裏的xxx表明三個數字)

1)若用戶創建爲普通文件,則預設 ‘沒有可執行權限’, 只有’rw’兩個權限。最大爲666 (‘-rw-rw-rw-‘).

2)若用戶創建爲目錄,則預設全部權限均開放,即777 (‘drwxrwxrwx’).

umask數值表明的含義爲,上邊兩條規則中的默認值(文件爲666,目錄爲777)須要減掉的權限。因此目錄的權限爲 'rwxrwxrwx' - '----w--w-' = 'rwxr-xr-x',普通文件的權限爲 'rw-rw-rw-' - '----w--w-' = 'rw-r--r--'. umask的值是能夠自定義的,好比設定umask 爲 002,你再建立目錄或者文件時,默認權限分別爲 'rwxrwxrwx' - '-------w-' = 'rwxrwxr-x' 和 'rw-rw-rw-' - '-------w-' = 'rw-rw-r--'.

umask 0022  後三位 文件最高權限666? 目錄最高權限777
建立一個文件默認權限是:擁有者-可讀可寫6  擁有組 -可讀4  其餘 -可讀4
建立一個目錄默認權限是:擁有者-可讀可寫可執行7 擁有組 -可讀可執行5 其餘 -可讀可執行5
umask 能夠在 /etc/bashrc 裏面更改,預設狀況下,root的umask爲022,而通常使用者則爲002
超級權限
一個文件都有一個全部者, 表示該文件是誰建立的. 同時, 該文件還有一個組編號, 表示該文件所屬的組, 通常爲文件全部者所屬的組. 若是是一個可執行文件, 那麼在執行時, 通常該文件只擁有調用該文件的用戶具備的權限. 而setuid, setgid 能夠來改變這種設置.
setuid: 設置使文件在執行階段具備文件全部者的權限. 典型的文件是 /usr/bin/passwd. 若是通常用戶執行該文件, 則在執行過程當中, 該文件能夠得到root權限, 從而能夠更改用戶的密碼. 
setgid: 該權限只對目錄有效. 目錄被設置該位後, 任何用戶在此目錄下建立的文件都具備和該目錄所屬的組相同的組. 
sticky bit: 該位能夠理解爲防刪除位. 一個文件是否能夠被某用戶刪除, 主要取決於該文件所屬的組是否對該用戶具備寫權限. 若是沒有寫權限, 則這個目錄下的全部文件都不能被刪除, 同時也不能添加新的文件. 若是但願用戶可以添加文件但同時不能刪除文件, 則能夠對文件使用sticky bit位. 設置該位後, 就算用戶對目錄具備寫權限, 也不能刪除該文件.

下面說一下如何操做這些標誌: 
操做這些標誌與操做文件權限的命令是同樣的, 都是 chmod. 有兩種方法來操做, 
1) chmod u+s  temp    -- 爲temp文件加上setuid標誌. (setuid 只對文件有效)
     chmod g+s tempdir -- 爲tempdir目錄加上setgid標誌 (setgid 只對目錄有效)
     chmod o+t temp -- 爲temp文件加上sticky標誌 (sticky只對目錄有效)
2) 採用八進制方式. 對通常文件經過三組八進制數字來置標誌, 如 666, 777, 644等. 若是設置這些特殊標誌, 則在這組數字以外外加一組八進制數字. 如 4666, 2777等. 這一組八進制數字三位的意義以下, 
   abc
   a - setuid位, 若是該位爲1, 則表示設置setuid
   b - setgid位, 若是該位爲1, 則表示設置setgid
   c - sticky位, 若是該位爲1, 則表示設置sticky
也就是說,若是有特殊權限時,第一位數字能夠是0,1(--t),2(-s-),3(-st),4(s--),5(s-t),6(ss-),7(sst)

設置完這些標誌後, 能夠用 ls -l 來查看. 若是有這些標誌, 則會在原來的執行標誌位置上顯示. 如  
rwsrw-r--    表示有setuid標誌
rwxrwsrw-  表示有setgid標誌
rwxrw-rwt   表示有sticky標誌
那麼原來的執行標誌x到哪裏去了呢? 系統是這樣規定的, 若是原本在該位上有x, 則這些特殊標誌顯示爲小寫字母 (s, s, t). 不然, 顯示爲大寫字母 (S, S, T)
在linux下搜一個文件
    1. ‘which’ 用來查找可執行文件的絕對路徑。
 
 
 
重定向
ls /   > ls_out.txt
把根目錄下的文件輸出結果 重定向到 ls_out.txt中。
>重定向符號老是從零開始寫文件,全部若是遇到一個錯誤的重定向會刪除文件  
好比  ls  /sssd  > ls_out.txt   
1,高級文件管理

         輸入輸出重定向
         標準輸入 設備:鍵盤 標記:0
         標準輸出 設備:屏幕 標記:1
         錯誤輸出 設備:屏幕   標記:2
         
            echo "aminglinux" > aming.log  輸出重定向
             echo "study.lishiming.net" >> aming.log  追加
           cat < /etc/passwd  將文件內容讀出作cat命令的輸入

    若是我想把一個程序的輸出存放到單獨的一個文件中,那麼咱們在這個流程中該如何介入呢?
    其實很簡單,只是用標記符來控制輸出的目標就能夠了,例如
           ls     /etc/passwd aaa.txt   > out.file 2> err.file 將標準輸出與錯誤輸出分別定向到文件
           ls  /etc/passwd aaa.txt   &> all.file  將錯誤輸出和標準輸出合併定向到文件
           ls /etc/passwd aaa.txt  >/dev/null 2>&1 將錯誤輸出和標準輸出合併定向到系統黑洞
 ls -l /bin/usr &> ls-output.txt
注意重定向的順序安排很是重要。標準錯誤的重定向必須老是出如今標準輸出重定向以後,
要否則它不起做用
 
經過重定向輸出結果到一個特殊的
叫作 「/dev/null」 的文件。這個文件是系統設備,叫作位存儲桶,它能夠接受輸入,而且對輸
入不作任何處理。


         /dev/null /dev/zero 介紹
         /dev/null 是系統的黑洞
         /dev/zero 是系統的零發生器
         dd if=/dev/zero of=/root/big_file bs=10 count=1M

      wc 計算文件的行數,單詞數,字節數
         # wc /etc/passwd
           40   59 1800 /etc/passwd
         # wc -l /etc/passwd
           40 /etc/passwd
         # wc -w /etc/passwd
           59 /etc/passwd
         # wc -c /etc/passwd
           1800 /etc/passwd
         #
 
     grep正則介紹

           ^  行首
           $  行尾
           v  取反
           n  顯示行號
           c  統計行數
                   
       diff  對比兩文件的差別
         d 刪除了(delete) -a 新增了(append) -c 改變了(change)
         cp /etc/passwd passwd1
         刪幾行 改幾行 加幾行看看效果
         diff /etc/passwd passwd1

     uniq  對文件去重
        uniq -c file    顯示file文件中重複的行出現的次數
        uniq -d  file    只顯示重複的行,沒重複的不顯示
      cut 按列提取文件
         -d 指明列分隔符 -f 選擇輸出的區域 -c 指定字符位置
         # cut -d: -f 1,7 /etc/passwd |head -n 2
             root:/bin/bash
             bin:/sbin/nologin
         # cut -c 1-3,6-9 /etc/passwd |head -n 2
 
         tr 字符的刪除替換
          -d 刪除
          # tr -d :  < /etc/passwd |head -n 2
          替換
          # tr 'abc' 'ABC'  < /etc/passwd |head -n 2
          # tr 'abc'  'A ' < /etc/passwd |head -n 2
          # tr 'a-z' 'A-Z'  < /etc/passwd |head -n 2
 
         sort 排序輸出
          默認按首字符從頭到尾的順序排序
          -r 逆序
          -n 按數字排序
          -t 指明分隔符  -k 連用
          -k 按指定的域排序
          sort -t: -k 3 /etc/passwd
               
         | 管道妙用
         將上一個命令的標準輸出,傳遞給下一個命令作標準輸入
         cat /etc/passwd | head -n 3 | cut -d: -f 1,3,7 |sort -rt: -k 2 |tr [a-z] [A-Z]
         
         xargs
         前面咱們學習了管道,管道只是讓後面的命令從前一個命令獲取輸入
         那咱們要創建一個/etc/passwd第一域(用戶名)的目錄的話,只利用管道就沒法實現了
         # cut -d: -f 1 /etc/passwd |head -n 5 | mkdir
             mkdir: 缺乏操做數
             請嘗試執行「mkdir --help」來獲取更多信息。
         # cut -d: -f 1 /etc/passwd |head -n 5 | xargs mkdir
         # ls
             adm  bin  daemon  lp  root
      
   查找文件
         which 搜索命令的位置 搜索的源是$PATH
         # which ls
           alias ls='ls --color=tty'
           /bin/ls
         # which cat
         locate 搜索全部文件 搜索的源始updatadb 庫按期更新 因此不能搜到最新的資料
         locate passwd | head -n 3
         find 搜索真實文件系統,搜索方式多樣
         find .
                   -type 類型 f d l p c b
                   -name 名稱 能夠通配
                   -size 大小 +1M 大於1M,-1M 小於1M,1M 等於1M
                   -user 文件擁有者
                   -group文件屬組
                   -perm 權限 + -0是通配;
                            +表明()三組權限匹配其中之一;好比 r-x 知足r-- --x r-x 三個都成立            
                            -表明()三組權限同時匹配好比 r-xr-xr-x 知足r----xr-x 也算成立
                   -o    
                   -not  
                   -ls   詳細信息
                   -exec CMD {} \; -ok CMD {} \;
                   -mtime +3 從當天向歷史天數推算的第三天前(三天前 不包含第三天)
                   -atime -3 從當前向歷史天數推算的前三天至當天這個段範圍
                   -ctime 3  從當天向歷史天數推算的第三天
                   與管道連用 | xargs
 
cat 能夠捕捉鍵盤輸入當沒有任何參數跟隨的時候, 因此能夠用從定向捕捉鍵盤輸入到文本中。
ctrl +d
1,怎麼查看命令幫助
         ls --help
         man ls
        百度搜索或google搜索,例如:ls命令詳解



2,基本文件管理,經過從【查,建,刪,改】四個維度介紹了不一樣的命令。
查:(ls,cat,more,less,head,tail,rev,tac)
      ls -a   查看目錄中全部的文件,包括隱藏文件(以.開頭的) 
      ls -l    查看目錄中文件的詳細信息
      ls -t    以時間前後順序顯示結果
      ls -h   顯示文件大小
      ls -d   查看目錄信息
      ls -i    顯示inode節點

      cat    查看文件文件,只顯示最後一頁,例如cat /etc/passwd
      more  分屏顯示,按空格鍵翻頁,沒法前翻
      less    可上下滾動查看文件內容
      head  默認只顯示前10行
      head -20 /etc/passwd   顯示前20行
      tail     默認顯示最後10行
      tail -20 /etc/passwd  顯示最後20行
      rev    使文件內容左右顛倒
      tac    使文件內容先後顛倒

建:(mkdir ,touch,vim)
     mkdir aminglinux   建立一個aminglinux目錄
     mkdir a b c           依次在當前目錄下建立a b c 同級目錄
     mkdir -p aa/bb/cc       遞推建立aa bb cc目錄,aa目錄包含bb,bb目錄包含cc

刪:(cp, mv,rm)
     cp  a   b   將文件a複製一份成b
     cp -r        複製目錄,默認不加-r只能複製文件
     mv          移動或更名
     rm           刪除文件
     rm -r       刪除目錄,默認不加-r只能刪除文件
     rm -f       強制刪除,不提示

3,用戶管理 (增刪改切)

         用戶都存儲哪些信息?  /etc/passwd
         用戶名 密碼控位鍵 用戶UID  組GID  用戶描述信息  用戶家目錄  用戶shell
         linux系統是支持多用戶的系統
         用戶分爲三種以UID來區分
         超級用戶 UID = 0           在系統中擁有至高無上的權限.
         系統用戶 UID 1-499      bin,ftp,mail等,不具有登陸系統的權利,倒是系統運行不可缺乏的.
         普通用戶 UID 500以上  管理員創建的用戶.密碼和權限都由管理員制定.


         useradd   user1          建立用戶user1
                   -u UID
                   -d 家目錄
                   -g GID
                   -c  用戶描述信息
         passwd    user1       給user1設置密碼

         usermod                修改用戶屬性命令
                   -u UID
                   -d 家目錄
                   -g GID
                   -s  指定用戶shell
         userdel
                   -r 刪除用戶及用戶家目錄

         su  切換用戶
             以root用戶切換其餘用戶則不須要密碼
             而其餘用戶作任何切換都須要密碼
         su -
             加 - 與不加 - 的區別


登陸後檢查
         whoami        查看當前用戶身份
         who               查看登陸本機用戶及來源ip
         w                    查看登陸用戶在作什麼
         id                   查看用戶和查看用戶所屬的組
         users             都有哪些登陸用戶


退出登錄
         exit   退出登錄shell
 
---------------------------------------------------------------------------------------------------------------------
1. 救援模式
如果真機,須要有安裝光盤或者U盤,重啓進入bios調成光驅啓動,選擇 ‘Rescue installed system’ 
語言咱們默認,鍵盤類型也默認
Rescue Method 也保持默認
是否在使用rescue模式的時候啓用網絡,這個根據實際狀況,在這裏阿銘選擇NO(使用tab鍵) 
三種模式能夠選擇:shell 模式會直接進入命令行,能夠進行的操做有編輯文件、修改用戶密碼等; fakd 是診斷模式; reboot 會直接重啓; 選擇第一個shell模式
執行一個命令:chroot /mnt/sysimage

2. Linux啓動過程
BIOS加電自檢,找啓動介質則找到MBR
找到MBR後,則根據bootloader(grub)設置找到內核所在位置
執行Linux內核映像代碼,檢測和加載硬件驅動
驅動加載完成後,內核把主動權交給了init
init會根據系統設定的運行級別作系統初始化
      /etc/init/rcS.conf
      exec /etc/rc.d/rc.sysinit -> 激活交換分區,檢查磁盤,加載硬件模塊以及其它一些須要優先執行任務
      exec /etc/rc.d/rc $RUNLEVEL ($RUNLEVEL == 3)
      /etc/rc.d/rc3.d/
      /etc/rc.d/rc.local
創建終端:6個tty和1個圖形 
用戶登陸

3. 命令ls 
-l   詳細信息
-a  查看隱藏的文件或目錄
-d   只看目錄自己,不列出目錄下面的文件和目錄
-t 以時間前後排序
 
5. cd命令
cd  後面不加東西,就是進入到當前用戶的家目錄
cd ~  這裏的~符號也表示用戶的家目錄
cd -  切換到上一次所在的目錄
cd .  ..   其中.表示當前目錄, ..表示上一級目錄
注意區分絕對路徑,相對路徑概念,其中絕對路徑是從/開始的

6. 環境變量PATH的用法
echo $PATH 能夠查看系統的環境變量PATH的值,使用which命令能夠查看某個命令所在的絕對路徑
PATH=$PATH:/tmp  這樣咱們可使用/tmp/下面的可執行文件做爲命令
讓PATH永久生效的,須要把它加入到/etc/profile 裏,重啓生效,或者直接運行命令: 
source  /etc/profile

alias設置命令的別名,例如 alias aming='ls -lt'  
解除別名使用 unalias  aming 
讓別名永久生效,須要把設置別名的命令,加入到 ~/.bashrc 裏

7. man 的用法
默認,咱們安裝的CentOS沒有這個命令,須要使用yum工具安裝它: yum install  -y  man
想查看一個命令的具體用法,就可使用man來查詢一下文檔,好比,man  ls  能夠查看ls命令的用法
咱們還可使用man來查看某個配置文件的用法,好比 man  passwd

8. 快捷鍵
Ctrl+c  取消命令
Ctrl+z 暫停命令
Ctrl+a 光標到行首
Ctrl+e 光標到行尾
Ctrl+u 刪除光標前全部字符
Ctrl+k 刪除光標後全部字符
Ctrl+l 清屏
Ctrl+d 退出登陸 == exit
Ctrl+s 鎖住命令終端,按任何鍵都不會有反應
Ctrl+q 解鎖命令終端

9. grub密碼
配置文件/etc/grub.conf,這個文件實際上是一個軟鏈接文件(相似於win下的快捷方式),真正的文件是/boot/grub/grub.conf
在hiddenmenu下加入一行(明文):
    password 123456
密文:輸入命令
grub-md5-crypt
而後輸入密碼,
編輯/etc/grub.conf,加入:
    password --md5  上面的字符串

---------------------------------------------------------------------------------------------------------------------------------------------------------
 

單引號表明字符串
雙引號
若是你把文本放在雙引號中,shell 使用的特
殊字符,除了 $,\ (反斜槓) ,和 ‘(倒引號)以外,則失去它們的特殊含義,被看成普通字符
來看待。
記住,在雙引號中,參數展開,算術表達式展開,和命令替換仍然有效:
相關文章
相關標籤/搜索