亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux命令、文件管理

發布時間:2020-08-04 12:20:05 來源:ITPUB博客 閱讀:147 作者:nh39304 欄目:建站服務器

Linux命令  文件管理 用戶管理

一、linux命令


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

1、命令的含義:發起一命令:就是請求內核將某個二進制程序運行為一個進程; 命令是一個可執行的二進制程序文件,
有可能會調用共享文件庫。

[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
     程序-->進程
     靜態-->動態 (有生命周期)

    file  文件: 查詢文件類型信息;
    ldd:可以查看一個可執行程序依賴的共享庫;
[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)

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

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

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


   

2、系統程序存放路徑:
   /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;
   注意:并非所有的命令都有一個在某個目錄與之對應的可執行程序文件。


    3、命令的類別:以是否有可執行文件來區分。

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

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

4、shell

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

        環境變量: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:從路徑中查找用戶鍵入的命令字符串所對應的命令文件:查找的順序是,自左向右,以第一次查找到的命令為止。
    OPTIONS:
     兩種表現形式:
     短選項; 如  -l  -d (注意有些選項沒有-);可合并,如 -ld;
     長選項: 如  --word  ; 不能合并;

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

[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
語法格式:
尖括號< >:必選參數,實際使用時應將其替換為所需要的參數
大括號{ }:必選參數,內部使用,包含此處允許使用的參數
方括號[ ]:可選參數,在命令中根據需要加以取舍
小括號( ):指明參數的默認值,只用于{ }中
豎線|:a|b|C ;用于分隔多個互斥參數,含義為“或”,使用時只能選擇一個。
省略號...:任意多個參數。

    5、獲取命令幫助

   內置命令:  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      ----需要有手冊
      手冊為壓縮格式文件,有章節CHAPTER之分: man1;  man2;  man3......
        1:  用戶命令
        2: 系統調用
        3: C庫調用
        4: 設備文件及特殊文件
        5: 文件格式(配置文件格式)
        6: 游戲使用幫助;
        7: 雜項
        8: 管理工具及守護進程;系統管理員手冊。

       # 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的數據庫:
   # makewhatis
   # info COMMAND   查看該命令的info幫助文檔

      應用程序自帶文檔: /usr/share/doc/APP-VERSION

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

    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'  -----加回去

   要執行別名的原命令,使用\COMMAND; 
   別名設置是對當前的shell有效

7、常用命令

 pwd: 當前目錄
 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--:   權限

                      左: user; 宿主;

                      中: group  宿組;

                      右: other  其它用戶;

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

               4:    硬連接數;       


           -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: 顯示結束符;


        tac:cat的逆序;


        file: 查看文件類型;


        echo:

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

               -e 顯示轉義字符   \n 換行    \t 制表符

                STING 用單引號和雙引號

                      單引號: 強引用 變量引用不執行替換;

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

        

        wall : 發消息


        日期命令:

            date 

             顯示系統時間 

              +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

             設定系統時間 

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


        Linux系統啟動從硬件讀取時間和日期,讀取完成后,這日期時間就不再與硬件項相關聯了。

            系統時鐘:

            硬件時鐘:


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

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

          -w :   Set the Hardware Clock to the current System Time  系統為準


        cal;   display a calendar

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


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

[root@localhost mk]# echo "tfile-/date"       -----命令date無執行,引用命令結果要$(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)" ----- 結果快出來了
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. 文件類型

    - 常規文件,即file

d 目錄文件

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

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

    major number: 主設備號,用于標識設備類型,加載驅動;

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

[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 即套接字文件,用于實現兩個進程進行通信   -----這個套接字當時寫TCP通訊程序非常熟悉,現在全忘了!



2、常用命令

    mkdir: make directories創建目錄

      -p : 自動創建父目錄

[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   -----創建成功

      -v :  verbose 顯示創建過程

      -m : 設置權限


    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 

    

    練習:

        1)創建/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目錄下創建目錄: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、文件的數據信息及查詢

    文件查看工具:

        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;  -----通常用于追蹤轉化為后臺應用程序的日志;


    文件包含兩類數據: 元數據+正文實際數據

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

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

            時間戳:

                access time :  ATime    數據最后一次讀取時間;

                modify time :  MTime    數據最后一次更改時間;

(當實際數據更改了,并不一定會產生讀取!,如重定向>>輸入)

                change time :   CTime    元數據最后一次更改時間;

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

     查看文件數據信息: 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...   改變時間戳,默認為當下,CTime無法指定更換, 文件不存在則創建文件

                  -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 :強制復制,不詢問覆蓋性的復制

       -R -r: 遞歸復制目錄


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

                                                     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的權限下輸入此命令,極容易出現rm -rf / 的操作,所有都沒有了,因此最后對其限制或者用別名。

              root權限危險,rm危險,兩者結合很危險。



    練習:復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/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
。。。。。



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

唐河县| 壤塘县| 临夏县| 阜新| 嵊泗县| 横山县| 应用必备| 新田县| 香格里拉县| 贵定县| 繁昌县| 合川市| 当阳市| 黔江区| 青田县| 绥芬河市| 邯郸县| 雷山县| 灌云县| 历史| 东兰县| 肇州县| 汶川县| 德格县| 乌兰察布市| 徐水县| 清苑县| 海门市| 衡阳县| 灵山县| 文山县| 永登县| 抚松县| 神池县| 海原县| 正安县| 冕宁县| 博兴县| 平邑县| 涿鹿县| 江门市|