linux常用命令

Linux發行版本:CentOS(應用最廣) redhat  ubuntu
CentOS 6.4(64bit位)
發行版本:內核,發行文檔等
Linux下是一切皆文件。目錄也是文件
1、Xshell連接Linux系統:ssh root@ip地址
2、基本操作命令:
1)/表示根目錄,就是頂級目錄,Linux所有的文件都是從頂級目錄開始
2)文件或目錄嚴格區分大小寫    例:config Config conFig
3)路徑是以‘/’分割
4)cd /var/log 進入/var/log目錄的命令
5)pwd打印當前目錄
6)ls     列出當前目錄有哪些文件(包含目錄)
7)ls -l(參數)     列出當前目錄文件名稱、權限、大小等屬性
8)man 命令    查看命令幫助    q鍵是退出
9)ls -s    查看目錄本身的屬性
10)ls -d    查看目錄本身
11)ls -a    查看所有文件,包括(以.開頭的隱藏文件)    ____ls的命令可以組合用
12)touch 123.txt(瞭解)    創建一個空文件
13)mkdir+目錄名稱    創建一個目錄
14)mkdir -p 遞歸的創建(多級目錄的創建)
15)rmdir    刪除目錄(只能刪除空目錄)
16)rm     刪除文件或者目錄
17)rm -f    強制刪除    可以組合
18)rm -r    刪除目錄    可以和f組合-rf
19)cp    拷貝文件
    cp -r 複製目錄
    cp -a 複製所有(包括屬性)
20)mv    移動或重命名
21)cat     查看文件內容整體展示
22)more    一頁一頁展示查看文件內容    (相當於分屏查看文件內容)
23)head -5    文件名        查看前5行內容
24)tail -10 文件名        查看後5行內容
    
25)Ctrl+c    終止命令
26).    ./當前目錄
27)..    ../上級目錄

!!28)du    統計文件或者目錄大小
    du -s統計容量總和    h人性化的顯示    -sh人性化的統計容量總和
    這個命令在生產環境下用的很多

!!29)find 查找的目標 匹配的條件    find /etc/ -name '*conf*'        在目錄裏面找符合條件的文件或目錄
    -name
    -type d(目錄) f(文件)
!!30)grep 在文件裏面找符合條件的行的內容顯示出來:grep 'root' /etc/passwd
        -i 不區分大小寫
        -v    取反
        -A+數字    匹配條件的後多少行
        -B+數字    匹配條件的前多少行
        -n    顯示匹配條件的行號
        -R    遞歸
        支持正則表達式
!!31)vi    進入到命令行模式,通過(a,i,o)可以進入插入模式,插入模式通過(ESC)可以返回命令行,在命令行以:來進入最後行模式
        w:保存
        q:退出
        !:強制

命令行模式:
        dd    剪切(刪除)掉光標所在的行
        3dd    剪切(刪除)掉光標所在的連續3行
        p    粘貼
        yy    複製
        gg    光標快速定位到第一行
        G    光標快速定位到最後一行
        u    撤銷上一步操作
        /字符串    查找文件中的字符串    按字母n向下搜索
                                按字母N向上搜索
        

最後行模式:
        快捷鍵:進入最後行模式後:
        :set nu    顯示行號
        :5    光標快速定位到第5行
        :G    光標快速定位到最後一行
        :1,$s/nologin/888888/g        1代表第一行,s代表替換(這個是固定的),$代表最後一行,/是固定的,nologin原文件,888888是要替換的文件,如果不加g,默認只匹配每一行第一個相應的字符串
        把整個文件的nologin文件替換成88888

!!32)vim
33)init 6    重啓命令
34)init 0     關機
35)wc     統計行
        wc -l(line)    統計多少行(一般都和-l組合用)
        例如:ps -ef(這個命令是查看系統進程的)| wc -l======>查看系統下有多少個進程
[root@localhost ~]代表:當前登陸用戶@主機名 當前目錄
~代表當前登陸用戶的家目錄:root用戶的家目錄時/root,其他所有用戶家目錄幾乎都是在/home/下面


如何區分文件和目錄?
答:ls -l或ll
文件:-rw-r--r--. 1 root root    0 May 28 00:28 123.txt    ,當前面的屬性爲"-"時,就代表文件
目錄:drwxr-xr-x. 2 root root 4096 May 28 00:26 320    ,前面的屬性以d開頭就是目錄

du -sh /etc/*    統計所有的文件各自所佔用的空間大小
du -sh /etc/    統計etc所佔用的空間大小

目錄結構:
etc:系統目錄
root:家目錄
sbin:命令
user:命令
boot:linux系統必須加載的內核文件

管道符號:    |
把前一個命令的輸出結果,傳遞給後一個命令處理
!!哪些命令支持放在管道符號後面    more    head    grep    wc

追加、覆蓋    >>        >
>>把前一個命令的輸出結果追加(或者叫寫入)到某個文件中cat /etc/passwd >> /etc/eth0.log
>把前一個命令的輸出結果覆蓋到某個文件中

CentOS操作系統兩種工作界面
圖形化界面
字符界面(企業服務選擇):企業選擇字符界面的原因是因爲字符界面可以少啓動很多服務,節省很多資源
通過vi /etc/inittab    將id:5:initdetault改成3就可以將圖形化界面轉化位字符界面;

CentOS有7種啓動模式
1)init 0     關機
2)init 1     單用戶模式
3)init 2      多用戶,沒有網絡
4)init 3    字符界面
5)init 4    圖形化界面
6)init 5    圖形化界面的服務
7)init 6    重啓

用戶和用戶組
1、/etc/passwd    保存系統用戶的一些基本信息
用戶名:x:UID:GID    G->group組
UID:系統默認給用戶分配的一個ID號,系統不是靠用戶名這個字符串去識別的,而是靠UID的ID號去識別的,只有UID=0的纔是超級用戶
GID:用戶組的ID,普通用戶屬於哪個組
/etc/group        保存用戶組的信息

2、創建一個用戶以後,系統默認會創建一個與用戶名同名的用戶組(瞭解即可,不需要記)
原因:平時我們只會用到root用戶,其他用戶是系統默認生成的用戶,這些用戶是用來運行系統進程的
!!每個進程都有系統用戶,就跟windows一樣

!!!1)useradd        增加用戶
        ---------------創建一個用戶以後,系統默認會創建一個與用戶名同名的用戶組(瞭解即可,不需要記)
        useradd user01
!!!2)groupadd     增加用戶組
        groupadd user
3)passwd    設置密碼
        ---------echo    回顯字符     例:echo '123'        輸出結果:123
        echo重新設置密碼:echo '123456' | passwd --stdin user01        stdin參數必須有
!!!4)su     用戶切換        例:su - root
5)id    查看用戶信息        例:id user01
6)userdel    刪除用戶    userdel user01

!!!用戶家目錄:
        創建完用戶以後,默認在/home目錄下生成一個與用戶名同名的目錄,這個目錄稱爲該用戶的家目錄


目錄和文件的權限
1)權限的查看
ls -la或者ll -a
drwxr-xr-x. 2 test02 test 4096 Nov 11  2010 .gnome2
    -----test02    代表擁有者
    -----test    代表擁有組

d         第一組(rwx) 第二組(r-x) 第三組(r-x)
文件類型    文件擁有者權限位    文件擁有組權限位    其他所有人

表示字符    權限名稱        對文件的含義                對目錄的含義
r(4)-----讀            讀取文件內容                檢查目錄內容
w(2)-----寫            修改文件內容                改變目錄內容
x(1)-----執行        執行文件(例如shell腳本)    進入目錄

!!!修改權限:只有root用戶才能使用命令進行權限的修改~!
修改權限命令:
1)chmod修改權限方式一:
[root@hadoop01 ~]# ll -d
dr-xr-x---. 28 root root 4096 Jun  2 02:16 .
[root@hadoop01 ~]# chmod u+w,g-r,o+w /srv
[root@hadoop01 ~]# ll -d /srv/
drwx-wxrwx. 2 root root 4096 May 29 01:57 /srv/

!!!chmod修改權限方式二:每一個數字代表每一個組所對應的權限
[root@hadoop01 ~]# chmod 134 /srv/
[root@hadoop01 ~]# ll -d /srv/
d--x-wxr--. 2 root root 4096 May 29 01:57 /srv/

目錄的默認權限:755
文件的默認權限:644

2)chown
修改文件擁有者的權限
[root@hadoop01 ~]# ll -d /srv/
drwxr-xr-x. 2 root root 4096 May 29 01:57 /srv/
[root@hadoop01 ~]# chown test01 /srv/
[root@hadoop01 ~]# ll -d /srv/
drwxr-xr-x. 2 test01 root 4096 May 29 01:57 /srv/
[root@hadoop01 ~]# chown test01:test01 /srv/
[root@hadoop01 ~]# ll -d /srv/
drwxr-xr-x. 2 test01 test01 4096 Jun 10 20:26 /srv/

Linux壓縮和解壓工具
後綴:
tar.gz

        c 創建壓縮包        v顯示過程    t查看    ztvf
        -----壓縮命令:tar -zcvf 壓縮後的包名.tar.gz 壓縮的目標    
                    -------------例如:tar -zcvf varlog.tar.gz /var/log/
        x解壓
        -----解壓命令:tar -zxvf 壓縮後的包名.tar.gz [-C 目標目錄]
                    -------------例如: tar -zxvf varlog.tar.gz -C .
                                       tar -zxvf varlog.tar.gz -C target/
        /var/log/    存放Linux應用層的日誌
        
        -----壓縮命令:tar -jcvf 壓縮後的包名.tar.gz 壓縮的目標
        -----解壓命令:tar -jxvf 壓縮後的包名.tar.gz [-C 目標目錄]
zip
    ---------壓縮         zip 壓縮的目標
    ---------解壓         unzip  壓縮包
rar
    --------默認不支持        需要安裝第三方插件,纔可以支持,具體說明插件,我忘了,網上查一下

!!!磁盤管理

主分區+擴展分區(邏輯分區) <= 4個    (企業中:3+1或者2+1)    
!!擴展分區無法使用,必須要在擴展分區之上分成邏輯分區後纔可以使用

Linux系統默認所有設備文件都在/dev下面
/dev/sda    ---硬盤1    sda1代表第一個分區  sda2代表第二個分區  sda3代表第三個分區
/dev/sdb    ---硬盤2    sda1代表第一個分區  sda2代表第二個分區  sda3代表第三個分區
/dev/sdc    ---硬盤3    sda1代表第一個分區  sda2代表第二個分區  sda3代表第三個分區
                ---------------s代表接口
                                    --------服務器的接口(sata,sas,scsi)
                ---------------d代表disk硬盤

        fdisk -l    查看系統所有設備的分區情況    cylinders磁柱
        作用:
        1)系統一共有幾塊硬盤,每個硬盤容量大小
        2)每個硬盤的分區情況(硬盤空間是否還有剩餘)

!!!fdisk /dev/sdb    針對sdb這塊硬盤進行分區(進入系統交互界面)

!!分區步驟:
df -h    查看掛載點命令
umount /mnt        刪除掛載點
1)fdisk 設備名稱(/dev/sda)
2)partx -a /dev/sdb    讓系統內核重新去硬盤讀取系統分區
3)格式化: mkfs.ext4 /dev/sdb6(格式化哪個分區)
4)掛載:mount /dev/sdb5 /mnt    (mnt是掛載點)    ----臨時生效(系統重啓後會消失)
        修改/etc/fstab        ------永久生效
        /dev/sdb6 /wwwroot    ext4 default    0 0

掛載光驅:mount /dev/cdrom /media(/media是你要掛載到哪個)
文件系統:ext2    ext3    ext4    xfs(CentOS7所對應的系統)
文件系統每個操作系統都有:windows,Linux,IOS等
文件系統是系統自帶的,就相當於對硬盤中的文件的一種管理機制(怎麼去快速的從硬盤中查詢或者寫入這種機制)

block:Linux操作系統管理文件的最小(邏輯)單位
block大小:默認有    1k    2k    4k

擴展瞭解:分區parted(自己百度去查一下)    MBR        GPT

軟件包管理(安裝)--------CentOS
!!!    rpm包---------***.rpm----------使用rpm命令管理
        --安裝    rpm -ivh +包的全路徑名    
                            rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm
        --卸載    rpm -e +包名(不要含有後面的.rpm)
                            rpm -e zlib-devel-1.2.3-29.el6.x86_64
        --升級    rpm -U
        --查看    rpm -qa----(查看所有已經安裝好的rpm包)
                            rpm -qa | grep zlib
        --查看文件屬於哪個rpm包
                            rpm -qf /etc/ntp.conf 
        ls | kernel-*查看所有內核包        以kernel開頭的都是內核包

!!!    yum命令:
                ----用來管理rpm包的,由於用rpm命令來管理rpm包的時候,有些包會存在很強的依賴關係,(例如,在安裝當前rpm包的時候,必須要先安裝另一個rpm包纔可以執行當前rpm包的安裝),因此,用yum命令,很容易的解決的這個問題
1)yum list---------    列出所有可用(包含已安裝)的rpm包
yum list | grep httpd-tools(工作中一般yum和grep結合着用) 
例:
包的名稱                                包的版本                   倉庫名
yum-utils.noarch                   1.1.30-40.el6           base 
httpd-tools.x86_64               2.2.15-29.el6.centos    @anaconda-CentOS(前面有@代表這個包已經安裝過了)

2)yum -y install +包名(不需要寫全包名,就是不用加後綴.rpm),-y代表直接安裝 ---------安裝
3)yum -y remove +包名---------------卸載
!!!4)配置yum倉庫
        -----------常用的倉庫地址:mirrors.163.com            mirrors.sohu.com
        -----------倉庫配置文件路徑:/etc/yum.repos.d
        ------DNS解析

!!!常用的系統管理命令
1)ifconfig    查看網卡IP
2)top        查看系統整體資源(相當於windows中的任務管理器)
            ------------load average負載
            ------------Tasks任務狀態
            ------------Swap交換分區(相當於windows中的虛擬內存:在windows高級設置中的高級裏面可以查看虛擬內存),當你的物理內存使用完後,可以使用swap分區來充當物理分區來使用
            q:退出
3)free        查看內存(以KB爲顯示)
            -m        以MB來顯示
4)netstat    查看端口情況
            -an        
            -tlnp
5)ps        查看進程
            -ef
            auxf
6)瞭解:vmstat iostat mpstat sar
7)kill        殺死進程
            -l    列出信號
            -9    強制殺掉
            kill -9 2243    2243,進程號
            -5    正常殺掉
工作中,例如:當你啓動一個任務後,發現訪問不了該任務所對應的網站,這時候,你就需要先查看端口號,是否被監聽了,然後查詢進程,
    例如:
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN  
    其中的State代表着監聽狀態,State所對應的LISTEN,代表端口在被監聽

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章