真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Linux命令、文件管理

Linux命令  文件管理 用戶管理

我們注重客戶提出的每個要求,我們充分考慮每一個細節(jié),我們積極的做好成都做網(wǎng)站、網(wǎng)站設(shè)計服務(wù),我們努力開拓更好的視野,通過不懈的努力,成都創(chuàng)新互聯(lián)公司贏得了業(yè)內(nèi)的良好聲譽,這一切,也不斷的激勵著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計,微信小程序定制開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。

一、linux命令


    命令語法通用格式
    #COMMAND OPTION ARGUMENTS

1、命令的含義:發(fā)起一命令:就是請求內(nèi)核將某個二進制程序運行為一個進程; 命令是一個可執(zhí)行的二進制程序文件,
有可能會調(diào)用共享文件庫。

[root@localhost tmp]# file /bin/ls   -----查看ls文件類型
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.32, 
BuildID[sha1]=0xec333a104e045327c5e3d0ca6dda16c610a210f3, stripped
     程序-->進程
     靜態(tài)-->動態(tài) (有生命周期)

    file  文件: 查詢文件類型信息;
    ldd:可以查看一個可執(zhí)行程序依賴的共享庫;
[root@localhost tmp]# ldd /bin/ls
linux-vdso.so.1 =>  (0x00007fffb81fe000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f7882e89000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f7882c84000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f7882a7a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f78826b9000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f7882458000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f7882253000)
/lib64/ld-linux-x86-64.so.2 (0x00007f78830c3000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f788204e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7881e32000)

    庫: 別人寫好的現(xiàn)有的,成熟的,可以復(fù)用的代碼,可以使用但要遵守許可協(xié)議;
      靜態(tài)庫的后綴是.a;
      動態(tài)庫(共享庫)的后綴是.so,它由gcc加特定參數(shù)編譯產(chǎn)生;

 如何定位共享庫文件?新安裝一個庫之后如何讓系統(tǒng)識別?Linux中如何創(chuàng)建靜態(tài)庫和動態(tài)庫,以及使用它們?

            詳細可參考: https://www.cnblogs.com/yangg518/p/5842651.html

   

2、系統(tǒng)程序存放路徑:
   /bin; /sbin; /usr/bin; /usr/sbin; /usr/local/bin; /usr/local/sbin;
   普通命令:/bin; /usr/bin; /usr/local/bin; 
   管理命名:/sbin;  /usr/sbin; /usr/local/sbin;
   共享庫文件: /lib; /lib64; /usr/lib;/usr/lib64; /usr/local/lib; /usr/local/lib64;
   注意:并非所有的命令都有一個在某個目錄與之對應(yīng)的可執(zhí)行程序文件。

    3、命令的類別:以是否有可執(zhí)行文件來區(qū)分。

   查看命令的類型及位置:type COMMAND 
   內(nèi)置命令: 由shell程序自帶的命令; builtin
   [root@localhost bin]# type printf
    printf is a shell builtin

      外部命令: 獨立的可執(zhí)行程序文件,文件即命令:
    [root@localhost bin]# type zip
    zip is /bin/zip

4、shell

       shell程序是獨特的程序,負責(zé)解析用戶提供的命令;

        環(huán)境變量:PATH

[root@localhost bin]# echo $PATH
/usr/java/jdk1.6.0_45/bin:/bin:/usr/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

PATH:從路徑中查找用戶鍵入的命令字符串所對應(yīng)的命令文件:查找的順序是,自左向右,以第一次查找到的命令為止。
    OPTIONS:
     兩種表現(xiàn)形式:
     短選項; 如  -l  -d (注意有些選項沒有-);可合并,如 -ld;
     長選項: 如  --word  ; 不能合并;

    ARGUMENTS: 命令作用對象,對何生效
      部分可以帶多個參數(shù),以空白字符分開,如

[root@localhost bin]# ls /tmp /etc/ssh
/etc/ssh:
moduli       ssh_host_ecdsa_key      ssh_host_ed25519_key.pub
ssh_config   ssh_host_ecdsa_key.pub  ssh_host_rsa_key
sshd_config  ssh_host_ed25519_key    ssh_host_rsa_key.pub
/tmp:
2004-02-29 16:21:42  script
2017-02-29 16:21:42  sort.txt
2017-4-5      systemd-private-1f0c154d3be34ae4bc6670cd76168c21-colord.service-NOKmzL
cat        systemd-private-1f0c154d3be34ae4bc6670cd76168c21-rtkit-daemon.service-ekYjoA
fatabmy      vmware-root
functions     yum_save_tx.2019-06-24.08-11.VV74Ze.yumtx
glfstab      yum_save_tx.2019-06-25.16-52.9YerbK.yumtx
magedu.com
語法格式:
尖括號< >:必選參數(shù),實際使用時應(yīng)將其替換為所需要的參數(shù)
大括號{ }:必選參數(shù),內(nèi)部使用,包含此處允許使用的參數(shù)
方括號[ ]:可選參數(shù),在命令中根據(jù)需要加以取舍
小括號( ):指明參數(shù)的默認值,只用于{ }中
豎線|:a|b|C ;用于分隔多個互斥參數(shù),含義為“或”,使用時只能選擇一個。
省略號...:任意多個參數(shù)。

    5、獲取命令幫助

   內(nèi)置命令:  help COMMAND
   所有命令:
     1) 命令自帶簡要格式的使用幫助
       # COMMAND --help

[root@localhost bin]# mke2fs --help
mke2fs: invalid option -- '-'
Usage: mke2fs [-c|-l filename] [-b block-size] [-C cluster-size]
[-i bytes-per-inode] [-I inode-size] [-J journal-options]
[-G flex-group-size] [-N number-of-inodes]
[-m reserved-blocks-percentage] [-o creator-os]
[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]
[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]

 2) 手冊查詢幫助:  manual COMMAND   或者  man COMMAND        
      手冊位于: /usr/share/man      ----需要有手冊
      手冊為壓縮格式文件,有章節(jié)CHAPTER之分: man1;  man2;  man3......
        1:  用戶命令
        2: 系統(tǒng)調(diào)用
        3: C庫調(diào)用
        4: 設(shè)備文件及特殊文件
        5: 文件格式(配置文件格式)
        6: 游戲使用幫助;
        7: 雜項
        8: 管理工具及守護進程;系統(tǒng)管理員手冊。

       # whatis COMMAND      ---查詢命令有哪個CHAPTER手冊 
       # man CHAPTER COMMAND ---指定查詢CHAPTER的手冊;
         -M /PATH/         ---到指定目錄查找手冊;

[root@localhost bin]# whatis passwd
sslpasswd (1ssl)     - compute password hashes
passwd (1)           - update user's authentication tokens
passwd (5)           - password file
[root@localhost bin]# man 5 passwd
PASSWD(5)   Linux Programmer's Manual   PASSWD(5)
NAME
passwd - password file

    手動更新man的數(shù)據(jù)庫:
   # makewhatis
   # info COMMAND   查看該命令的info幫助文檔

      應(yīng)用程序自帶文檔: /usr/share/doc/APP-VERSION

google 搜索查詢:
    keyword  filetype :pdf    指定文檔類型;
    keyword  site:domain       指定網(wǎng)站;

    6、命令別名

  外部命令可以起別名,可以與原名相同,若相同,則原名被隱藏。

[root@localhost dev]# type ls      
ls is aliased to `ls --color=auto'       -----ls是ls --color=auto的別名
[root@localhost dev]# alias         -----查詢別名
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost dev]# unalias ls   -----撤銷別名
[root@localhost dev]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost dev]# type ls    ----看到了ls是外部命令,
ls is hashed (/bin/ls)
[root@localhost dev]# alias ls='ls --color=auto'  -----加回去

   要執(zhí)行別名的原命令,使用\COMMAND; 
   別名設(shè)置是對當(dāng)前的shell有效

7、常用命令

 pwd: 當(dāng)前目錄
 cd:
  cd 或者 cd ~  切換到家目錄
  cd -  切換到上一個目錄
     隱含了兩個變量: $PWD; $OLDPWD
[root@localhost tmp]# echo $PWD
/tmp
[root@localhost tmp]# echo $OLDPWD
/bin
[root@localhost tmp]# cd -
/bin
[root@localhost bin]# cd -
/tmp

        

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

           -l

               如:

               -rw-r--r--. 1 root  root    18281 Jun  4 06:08 functions

               文件類型: -; d; b; c; l; s; p

               -rw-rwxr--:   權(quán)限

                      左: user; 宿主;

                      中: group  宿組;

                      右: other  其它用戶;

               18281: 字節(jié);(注意,目錄的大小不代表它下一級所有文件的大小之和,謹代表它自己)

               4:    硬連接數(shù);       


           -h  文件大小換算;

           -d  查看目錄自身

               [root@localhost tmp]# ls -ld /tmp

   drwxrwxrwt. 13 root root 4096 Jul  7 01:29 /tmp

           -r 逆序顯示;

           -R 遞歸顯示所有;


        cat:查看文本文件(去看二進制文件,亂碼一堆)

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

           -n: 編行號顯示;

           -E: 顯示結(jié)束符;


        tac:cat的逆序;


        file: 查看文件類型;


        echo:

            echo [SHORT-OPTION]... [STRING]...

               -e 顯示轉(zhuǎn)義字符   \n 換行    \t 制表符

                STING 用單引號和雙引號

                      單引號: 強引用 變量引用不執(zhí)行替換;

                      雙引號: 弱引用 變量引用會被替換

        

        wall : 發(fā)消息


        日期命令:

            date 

             顯示系統(tǒng)時間 

              +FORMAT

                +%F  ;full date; same as %Y-%m-%d

                +%T  : time; same as %H:%M:%S

                +%S  :seconds since 1970-01-01 00:00:00 UTC

                 -       : (hyphen) do not pad the field


[root@localhost script]# date
Sun Jul  7 02:00:35 PDT 2019
[root@localhost script]# date +%F
2019-07-07
[root@localhost script]# date +%T
02:05:31
[root@localhost script]# date +%s
1562490341

             設(shè)定系統(tǒng)時間 

               date [MMDDhhmm[[CC]YY][.ss]


        Linux系統(tǒng)啟動從硬件讀取時間和日期,讀取完成后,這日期時間就不再與硬件項相關(guān)聯(lián)了。

            系統(tǒng)時鐘:

            硬件時鐘:


        hwclock : query or set the hardware clock 顯示或設(shè)置硬件時鐘

          -s :   Set the System Time from the Hardware Clock   硬為準

          -w :   Set the Hardware Clock to the current System Time  系統(tǒng)為準


        cal;   display a calendar

           cal [options] [[[day] month] year]


    練習(xí):在/tmp目錄下創(chuàng)建以tfile開頭,后跟當(dāng)前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。

[root@localhost mk]# echo "tfile-/date"       -----命令date無執(zhí)行,引用命令結(jié)果要$(COMMAND)
tfile-/date
[root@localhost mk]# echo "tfile-$(date)"      ----- date的格式要處理
tfile-Sun Jul  7 07:24:53 PDT 2019
[root@localhost mk]# echo "tfile-$(date +%F-+%H-+%M-+%S)"  ----- 這個+一個就足夠了
tfile-2019-07-07-+07-+25-+45
[root@localhost mk]# echo "tfile-$(date +%F-%H-%M-%S)" ----- 結(jié)果快出來了
tfile-2019-07-07-07-25-59
[root@localhost mk]# touch "tfile-$(date +%F-%H-%M-%S)"
[root@localhost mk]# ls
mydir  tfile-2019-07-07-07-26-18

          

二、文件管理


1. 文件類型

    - 常規(guī)文件,即file

d 目錄文件

b block device 即塊設(shè)備文件,如硬盤;支持以block為單位進行隨機訪問

c character device 即字符設(shè)備文件,如鍵盤支持以character為單位進行線性訪問

    major number: 主設(shè)備號,用于標識設(shè)備類型,加載驅(qū)動;

    minor number: 次設(shè)備號,用于標識同一設(shè)備類型的不同設(shè)備.

[root@localhost dev]# ls -l /dev |grep sda
brw-rw----. 1 root disk      8,   0 Jul  3 07:14 sda
brw-rw----. 1 root disk      8,   1 Jul  3 07:14 sda1
brw-rw----. 1 root disk      8,   2 Jul  3 07:14 sda2
brw-rw----. 1 root disk      8,   3 Jul  3 07:14 sda3


l symbolic link 即符號鏈接文件,又稱軟鏈接文件

p pipe 即命名管道文件

s socket 即套接字文件,用于實現(xiàn)兩個進程進行通信   -----這個套接字當(dāng)時寫TCP通訊程序非常熟悉,現(xiàn)在全忘了!



2、常用命令

    mkdir: make directories創(chuàng)建目錄

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

[root@localhost tmp]# mkdir /tmp/mk/mydir
mkdir: cannot create directory ‘/tmp/mk/mydir’: No such file or directory
[root@localhost tmp]# mkdir -p /tmp/mk/mydir   -----創(chuàng)建成功

      -v :  verbose 顯示創(chuàng)建過程

      -m : 設(shè)置權(quán)限


    rmdir:  remove empty directories 刪除目錄

      -P :  刪除某目錄,若父輩為空,則一并刪除;rmdir -p a/b/c' is similar to 'rmdir a/b/c a/b a'


    tree : 顯示目錄層次

      -L level 顯示指定層組,如 tree -L 3 

    

    練習(xí):

        1)創(chuàng)建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b。

          利用{}分組,可承載以逗號為分割的路徑列表

[root@localhost mk]# mkdir /tmp/a{1{a,b},2}
[root@localhost mk]# cd /tmp/
[root@localhost tmp]# tree 
├── a1a
├── a1b
├── a2
 
[root@localhost tmp]# mkdir -pv /tmp/a{1/{a,b},2}
     ----r若不帶p,則顯示mkdir:cannotcreate directory ‘/tmp/a1/a’: No such file or director
mkdir: created directory ‘/tmp/a1’
mkdir: created directory ‘/tmp/a1/a’
mkdir: created directory ‘/tmp/a1/b’
mkdir: created directory ‘/tmp/a2


2)在/tmp目錄下創(chuàng)建目錄:x_y, x_z, q_y, q_z

[root@localhost tmp]# mkdir -pv /tmp/{x,q}/{y,z}
mkdir: created directory ‘/tmp/x’
mkdir: created directory ‘/tmp/x/y’
mkdir: created directory ‘/tmp/x/z’
mkdir: created directory ‘/tmp/q’
mkdir: created directory ‘/tmp/q/y’
mkdir: created directory ‘/tmp/q/z’
[root@localhost tmp]# mkdir -pv /tmp/{x,q}_{y,z}
mkdir: created directory ‘/tmp/x_y’
mkdir: created directory ‘/tmp/x_z’
mkdir: created directory ‘/tmp/q_y’
mkdir: created directory ‘/tmp/q_z’

3、文件的數(shù)據(jù)信息及查詢

    文件查看工具:

        cat;tac; less; more; head; tail;

        tail : - output the last part of files 顯示文件尾部n行,默認10行。 

           tail -20  somefile

           -f : output appended data as the file grows;  -----通常用于追蹤轉(zhuǎn)化為后臺應(yīng)用程序的日志;

    文件包含兩類數(shù)據(jù): 元數(shù)據(jù)+正文實際數(shù)據(jù)

        元數(shù)據(jù)Metadata:描述數(shù)據(jù)的數(shù)據(jù),即數(shù)據(jù)屬性(property)信息,

                                    如大小、權(quán)限、宿主宿組、時間戳、數(shù)據(jù)塊的分布信息(inode)等

            時間戳:

                access time :  ATime    數(shù)據(jù)最后一次讀取時間;

                modify time :  MTime    數(shù)據(jù)最后一次更改時間;

(當(dāng)實際數(shù)據(jù)更改了,并不一定會產(chǎn)生讀??!,如重定向>>輸入)

                change time :   CTime    元數(shù)據(jù)最后一次更改時間;

(實際數(shù)據(jù)更改了,這個就一定會跟著變,但是如果你是用touch去修改數(shù)據(jù)戳,就不會跟著變)

     查看文件數(shù)據(jù)信息: stat file

[root@localhost tmp]# stat glfstab 
File: ‘glfstab’
Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d      Inode: 103529576   Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1002/   user1)   Gid: ( 1002/   user1)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-06-23 06:31:29.863083244 -0700
Modify: 2019-06-23 06:31:29.863083244 -0700
Change: 2019-06-23 08:40:41.242916831 -0700
 Birth: -

    修改文件時間戳的信息: 

          touch [OPTION]... FILE...   改變時間戳,默認為當(dāng)下,CTime無法指定更換, 文件不存在則創(chuàng)建文件

                  -a  ATime;

                  -m  MTime;    

                        human readable date string such as "Sun, 29 Feb2004 16:21:42 -0800" or "2004-02-29 16:21:42" or

 even "next Thursday"

                   -c  CTime  do not create any files

                    -t  指定時間;  [[CC]YY]MMDDhhmm[.ss]

                    

[root@localhost tmp]# touch -t 201707070707 glfstab 
[root@localhost tmp]# stat glfstab 
File: ‘glfstab’
Size: 0        Blocks: 0    IO Block: 4096   regular empty file
Device: 803h/2051d      Inode: 103529576   Links: 1
Access: (0674/-rw-rwxr--)  Uid: ( 1002/   user1)   Gid: ( 1002/   user1)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-07-07 07:07:00.000000000 -0700
Modify: 2017-07-07 07:07:00.000000000 -0700
Change: 2019-07-06 22:38:48.310288863 -0700
 Birth: -
[root@localhost tmp]# echo "be a test" >> glfstab   
(用vim修改,Atime必然跟著MTime而變,用>>,ATim不變)
[root@localhost tmp]# stat glfstab 
File: ‘glfstab’
Size: 28       Blocks: 8     IO Block: 4096   regular file
Device: 803h/2051d      Inode: 103529576   Links: 1
Access: (0674/-rw-rwxr--)  Uid: ( 1002/   user1)   Gid: ( 1002/   user1)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-07-06 22:40:43.228353962 -0700
Modify: 2019-07-06 22:42:30.142275224 -0700
Change: 2019-07-06 22:42:30.142275224 -0700
 Birth: -


4.文件管理工具

    cp: 

       單--->單(可重命名) ----通常用來備份文件

       多(用{})--->目錄

       -i :交互

       -n : do not overwrite an existing file

       -f :強制復(fù)制,不詢問覆蓋性的復(fù)制

       -R -r: 遞歸復(fù)制目錄

    mv: move (rename) files    -----你說這東西拷到一半出故障了,目錄兩邊各一部分內(nèi)容,怎么還原呢?

                                                     ctrl+c ctrl+V 比直接ctrl+X安全

       -b :  like --backup but does not accept an argument    -----這個也安全

    

    rm:remove files or directories    -----危險動作,還是先mv到臨時文件夾,過段時間在臨時文件夾rm安全

       -i : 交互

       -f : force

       -R -r : recursive;遞歸刪除

       刪除目錄 rm -rf   

       嚴重警告 :

              在root的權(quán)限下輸入此命令,極容易出現(xiàn)rm -rf / 的操作,所有都沒有了,因此最后對其限制或者用別名。

              root權(quán)限危險,rm危險,兩者結(jié)合很危險。



    練習(xí):復(fù)制/etc目錄下所有以p開頭,以非數(shù)字結(jié)尾的文件或目錄到/tmp/mytest1目錄中。

[root@localhost tmp]# cp -rv  /etc/[p]*[^[[:digit:]]] /tmp
cp: cannot stat ‘/etc/[p]*[^[[:digit:]]]’: No such file or directory
[root@localhost tmp]# cp -rv  /etc/[p]*[^[:digit:]] /tmp  
‘/etc/pam.d’ -> ‘/tmp/pam.d’
‘/etc/pam.d/config-util’ -> ‘/tmp/pam.d/config-util’
‘/etc/pam.d/other’ -> ‘/tmp/pam.d/other’
‘/etc/pam.d/chfn’ -> ‘/tmp/pam.d/chfn’
‘/etc/pam.d/chsh’ -> ‘/tmp/pam.d/chsh
。。。。。



新聞名稱:Linux命令、文件管理
標題路徑:http://weahome.cn/article/gepjph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部