一天一命令-ls
阿新 • • 發佈:2017-05-26
命令 linux ls
一天一命令-ls
系統軟硬件環境平臺:
VMware Workstation Pro 12.5.5 build-5234757
CentOS Linux release 7.3.1611
軟件版本:ls (GNU coreutils) 8.22
測試時間:2017年5月26日
ls - list directory contents,顯示目錄中的文件列表
一、ls基本信息
#ls --version ls (GNU coreutils) 8.22 #type -a ls ls is aliased to ‘ls -p --color=auto‘ ls is /usr/bin/ls #alias | grep ls alias cls=‘clear‘ alias ls=‘ls -p --color=auto‘ alias lsl=‘ls -l --color=auto‘ alias l.=‘ls -dp .* --color=auto‘ alias l.l=‘ls -dl .* --color=auto‘ alias la=‘ls -ap --color=auto‘ alias ll=‘ls -al --color=auto‘ #which -a ls alias ls=‘ls -p --color=auto‘ /usr/bin/ls #whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz #whatis ls ls (1) - list directory contents ls (1p) - list directory contents #/usr/bin/ls 輸入原始路徑,執行原始ls命令,無顏色 #\ls 轉義,功能同上
二、ls命令格式和選項
ls [OPTION]... [FILE]... -a 顯示隱藏文件 -A 顯示隱藏文件,但不包含./和../ -d 顯示目錄本身屬性而非目錄下的內容 -g 只顯示group -h 顯示大小格式為K,M,G -i 顯示inode值 -I 忽略一個指定文件或目錄,註意目錄後面不要加/,文件名和目錄名必須完全匹配,不能使用通配符 -l 以長格式顯示額外信息 -m 以逗號(,)為分隔符顯示 -n 以數字顯示uid和gid -o 只顯示owner -p 在目錄後顯示斜杠/ -Q 將列出的每個文件都用("")來引用顯示 -r 反轉顯示(默認排序為按文件名從0-9,a-z) -R 遞歸顯示 -S 按文件大小排序,默認從大到小 -t 按mtime排序,從新到舊 -u 按atime從新到舊排序,配合-t選項顯示 -U 按目錄存放順序顯示 -x 文件以行顯示,默認為列顯示,主要是排序不同 -X 按文件後綴排序 -1 文件顯示為1列
三、操作對象:
後邊可以跟單個或多個文件或目錄,也可以兩者混合
四、補充:
4.1文件通配符
* 匹配零個或多個字符
? 匹配任何單個字符
~ 當前用戶家目錄
~usera 用戶usera家目錄
~+ 當前工作目錄
~- 前一個工作目錄
[0-9]匹配數字範圍
[a-z]字母,非小寫
[A-Z]字母,非大寫
[wang]匹配列表中的任何一個字符
[^wang]匹配列表中的所有字符以外的字符
4.2預定義的字符類 man 7 glob查看
[:digit:] 任意數字相當於0-9
[:lower:] 任意小寫字母
[:upper:] 任意大寫字母
[:alpha:] 任意大小寫字母
[:alnum:] 任意數字或字母
[:blank:] 水平空白字符
[:space:] 水平或垂直空白字符
[:punct:] 標點符號
[:print:] 可打印字符
[:cntrl:] 控制(非打印)字符
[:graph:] 圖形字符
[:xdigit:] 十六進制字符
五、案例:
#ls --version ls (GNU coreutils) 8.22 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Richard M. Stallman and David MacKenzie. #ll /etc/chrony.keys -rw-r-----. 1 root chrony 9 Nov 15 2016 /etc/chrony.keys #ls -g /etc/chrony.keys -rw-r-----. 1 chrony 9 Nov 15 2016 /etc/chrony.keys #ls -o /etc/chrony.keys -rw-r-----. 1 root 9 Nov 15 2016 /etc/chrony.keys #touch a,b,c #ls 2017-04-26.log aaaaa abc.tar.gz a.py b.txt history.log passwd a/ abc a.html a.txt f5 info.log sum.sh a. a,b,c anaconda-ks.cfg a.zip f漢 pass #ls -m 2017-04-26.log, a/, a., aaaaa, abc, a,b,c, abc.tar.gz, a.html, anaconda-ks.cfg, a.py, a.txt, a.zip, b.txt, f5, f漢, history.log, info.log, pass, passwd, sum.sh #ls -Q "2017-04-26.log" "aaaaa" "abc.tar.gz" "a.py" "b.txt" "history.log" "passwd" "a"/ "abc" "a.html" "a.txt" "f5" "info.log" "sum.sh" "a." "a,b,c" "anaconda-ks.cfg" "a.zip" "f漢" "pass" #ls -n total 68 -rw-r--r--. 1 0 0 0 May 26 17:52 1 -rw-r--r--. 1 0 0 0 May 26 18:06 1.a -rw-r--r--. 1 0 0 0 May 26 17:52 2 -rw-r--r--. 1 0 0 0 Apr 26 17:29 2017-04-26.log -rw-r--r--. 1 0 0 0 May 26 17:52 88 -rw-r--r--. 1 0 0 0 May 26 18:06 9.z drwxr-xr-x. 3 0 0 15 Apr 27 18:26 a/ -rw-r--r--. 1 0 0 0 May 26 16:46 a. lrwxrwxrwx. 1 0 0 5 May 26 17:09 aaaaa -> a.txt -rwxr-xr-x. 1 1000 0 0 May 26 19:05 abc #ls -R .: 2017-04-26.log aaaaa abc.tar.gz a.py b.txt history.log passwd a/ abc a.html a.txt f5 info.log sum.sh a. a,b,c anaconda-ks.cfg a.zip f漢 pass ./a: b/ ./a/b: c/ ./a/b/c: f2 f22 f3 #ll -S total 76 -rw-r--r--. 1 root root 20819 May 17 00:03 info.log -rw-------. 1 root root 11449 Apr 26 17:48 history.log drwxr-xr-x. 7 root root 4096 May 26 19:18 ./ dr-xr-x---. 21 root root 4096 May 26 11:06 ../ -rw-r--r--. 1 root root 2235 Feb 20 09:04 passwd -rw-------. 1 root root 1940 Feb 20 08:37 anaconda-ks.cfg -rwxr-xr-x. 1 root root 167 May 26 11:06 sum.sh -rwxr-xr-x. 1 root root 142 Apr 26 16:22 a.py drwxr-xr-x. 3 root root 15 Apr 27 18:26 a/ -rw-r--r--. 2 root root 7 May 26 16:46 a.txt -rw-r--r--. 2 root root 7 May 26 16:46 b.txt drwxr-xr-x. 2 root root 6 May 26 19:18 .aabb/ lrwxrwxrwx. 1 root root 5 May 26 17:09 aaaaa -> a.txt -rw-r--r--. 1 root root 0 May 26 17:52 2 #ls //默認為列顯示,排序為自上而下 1 2.b 9.z abc anaconda-ks.cfg b/ f5 pass 1.a 3 a/ a,b,c a.py b.txt f漢 passwd 2 3.c a. abc.tar.gz a.txt c/ history.log sum.sh 2017-04-26.log 88 aaaaa a.html a.zip dd/ info.log #ls -x //以行顯示,排序為從左往右 1 1.a 2 2017-04-26.log 2.b 3 3.c 88 9.z a/ a. aaaaa abc a,b,c abc.tar.gz a.html anaconda-ks.cfg a.py a.txt a.zip b/ b.txt c/ dd/ f5 f漢 history.log info.log pass passwd sum.sh
5.1通配符練習:
touch f{1..5} fa fcd ls f* ls f? touch f漢 //註意漢字也屬於一個字符 ls f? touch ff.txt ls f????? //後綴也屬於字符長度 ll fa //不帶路徑,即當前路徑 ll ./fa //顯示為相對路徑 ll ~+/fa //顯示為絕對路徑 ll f[1-3] //或者[1,2,3] ll f[135] //或者[1,3,5] touch f{a..f} touch f{A..F} ll f[a-c] //匹配a,A,b,B,c ll f[a-C] //匹配a,A,b,B,c,C ll f[A-C] //匹配A,b,B,c,C ll f[ACdf] //匹配A,C,d,f ll f[^a-d] //匹配除了a,A,b,B,c,C,d ll f[[:lower:]] 匹配小寫字母a,b,c,d... ll f[[:upper:]] 匹配大寫字母A,B,C,D... ls -d /etc/*.d 顯示/etc下的所有以.d結尾的文件和目錄 ls -d .*/ 顯示目錄下的隱藏目錄,包括.和.. ls -d */ 顯示目錄下的非隱藏目錄 #ll [[:digit:]] -rw-r--r--. 1 root root 0 May 26 17:52 1 -rw-r--r--. 1 root root 0 May 26 17:52 2 -rw-r--r--. 1 root root 0 May 26 17:52 3 #ll [[:digit:]]* -rw-r--r--. 1 root root 0 May 26 17:52 1 -rw-r--r--. 1 root root 0 May 26 18:06 1.a -rw-r--r--. 1 root root 0 May 26 17:52 2 -rw-r--r--. 1 root root 0 Apr 26 17:29 2017-04-26.log -rw-r--r--. 1 root root 0 May 26 18:06 2.b -rw-r--r--. 1 root root 0 May 26 17:52 3 -rw-r--r--. 1 root root 0 May 26 18:06 3.c -rw-r--r--. 1 root root 0 May 26 17:52 88 -rw-r--r--. 1 root root 0 May 26 18:06 9.z #ll [[:digit:]].* -rw-r--r--. 1 root root 0 May 26 18:06 1.a -rw-r--r--. 1 root root 0 May 26 18:06 2.b -rw-r--r--. 1 root root 0 May 26 18:06 3.c -rw-r--r--. 1 root root 0 May 26 18:06 9.z #ls f* f1 f2 f23 f3 f4 f4422 f5 f漢 #ls f? f1 f2 f3 f4 f5 f漢 #ls f?? f23
此文章為個人學習總結,如有任何問題,[email protected],互相交流。
本文出自 “rackie” 博客,請務必保留此出處http://rackie386.blog.51cto.com/11279229/1929983
一天一命令-ls