• linux常用命令大全--档案目录篇
    时间:2008-09-08   作者:佚名   出处:互联网

    一.cd

        名称 : cd

        使用权限 : 所有使用者

        使用方式 : cd [dirName]

        说明 : 变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录)。

        另外,"~" 也表示为 home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。

        范例 : 跳到 /usr/bin/ :
        cd /usr/bin

        跳到自己的 home directory :
        cd ~

        跳到目前目录的上上两层 :
        cd ../..


        cd - 返回进入当前目录前所在目录  

    二.ls

        名称 : ls

        使用权限 : 所有使用者

        使用方式 : ls [-alrtAFR] [name...]

        说明 : 显示指定工作目录下之内容(列出当前工作目录所含之档案及子目录)。

        参数 :

        -a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
        -l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
        -r 将档案以相反次序显示(原定依英文字母次序)
        -t 将档案依建立时间之先后次序列出
        -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
        -F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
        -R 若目录下有档案,则以下之档案亦皆依序列出

        范例:
        列出目前工作目录下所有名称是 s 开头的档案,愈新的排愈后面 :
        ls -ltr s*

        将 /bin 目录以下所有目录及档案详细资料列出 :
        ls -lR /bin

    三.mkdir

        名称: mkdir

        使用权限:于目前目录有适当权限的所有使用者

        使用方式:mkdir [-p] dirName

        说明:建立名称为 dirName 之子目录。

        参数:-p 确保目录名称存在,不存在的就建一个。

        范例:

        在工作目录下,建立一个名为 AAA 的子目录 :
        mkdir AAA

        在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。若 BBB 目录原本不存在,则建立一个。
        mkdir -p BBB/Test

    四.cat

        名称:cat
        使用权限:所有使用者
        使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
        说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
        参数:
        -n 或 --number 由 1 开始对所有输出的行数编号
        -b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
        -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
        -v 或 --show-nonprinting
        范例:
        cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
        cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。

        范例:
        把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
        cat -n textfile1 > textfile2

        把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
        cat -b textfile1 textfile2 >> textfile3

        cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容

     五.chmod

        指令名称 : chmod

        使用权限 : 所有使用者

        使用方式 : chmod [-cfvR] [--help] [--version] mode file...

        说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。

        参数 :

        mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
        u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
        + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
        r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
        -c : 若该档案权限确实已经更改,才显示其更改动作
        -f : 若该档案权限无法被更改也不要显示错误讯息
        -v : 显示权限变更的详细资料
        -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
        --help : 显示辅助说明
        --version : 显示版本

        范例 :将档案 file1.txt 设为所有人皆可读取 :
        chmod ugo+r file1.txt

        将档案 file1.txt 设为所有人皆可读取 :
        chmod a+r file1.txt

        将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
        chmod ug+w,o-w file1.txt file2.txt

        将 ex1.py 设定为只有该档案拥有者可以执行 :
        chmod u+x ex1.py

        将目前目录下的所有档案与子目录皆设为任何人可读取 :
        chmod -R a+r *

    六.chown

        指令名称 : chown

        使用权限 : root

        使用方式 : chmod [-cfhvR] [--help] [--version] user[:group] file...

        说明 : Linux/Unix 是多人多工操作系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限使自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。

        参数 :

        user : 新的档案拥有者的使用者 ID
        group : 新的档案拥有者的使用者群体(group)
        -c : 若该档案拥有者确实已经更改,才显示其更改动作
        -f : 若该档案拥有者无法被更改也不要显示错误讯息
        -h : 只对于连结(link)进行变更,而非该 link 真正指向的档案
        -v : 显示拥有者变更的详细资料
        -R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
        --help : 显示辅助说明
        --version : 显示版本
        范例 :
        将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
        chown jessie:users file1.txt

        将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :
        chmod -R lamport:users *

    七.find

        名称 : find
        用法 : find pathname -options [-print -exec -ok ...]
        使用说明 :

        将档案系统内符合 expression 的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。

        find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。

        expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

        -mount, -xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案
        -amin n : 在过去 n 分钟内被读取过
        -anewer file : 比档案 file 更晚被读取过的档案
        -atime n : 在过去 n 天过读取过的档案
        -cmin n : 在过去 n 分钟内被修改过
        -cnewer file :比档案 file 更新的档案
        -ctime n : 在过去 n 天过修改过的档案
        -empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name
        -ipath p, -path p : 路径名称符合 p 的档案,ipath 会忽略大小写
        -name name, -iname name : 档案名称符合 name 的档案。iname 会忽略大小写
        -size n : 档案大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
        -type c : 档案类型是 c 的档案。
        d: 目录
        c: 字型装置档案
        b: 区块装置档案
        p: 具名贮列
        f: 一般档案
        l: 符号连结
        s: socket
        -pid n : process id 是 n 的档案

        范例:
        将目前目录及其子目录下所有延伸档名是 c 的档案列出来。
        # find . -name "*.c"

        将目前目录其其下子目录中所有一般档案列出
        # find . -ftype f

        将目前目录及其子目录下所有最近 20 分钟内更新过的档案列出
        # find . -ctime -20

    八.cp

        名称:cp

        使用权限:所有使用者

        使用方式:

        cp [options] source dest
        cp [options] source... directory

        说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。

        参数:

        -a 尽可能将档案状态、权限等资料都照原状予以复制。
        -r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
        -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
        范例:
        将档案 aaa 复制(已存在),并命名为 bbb :
        cp aaa bbb

        将所有的C语言程序拷贝至 Finished 子目录中 :
        cp *.c Finished

    九.rm

        名称:rm

        使用权限:所有使用者

        使用方式:rm [options] name...

        说明:删除档案及目录。

        参数:

        -i 删除前逐一询问确认。
        -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
        -r 将目录及以下之档案亦逐一删除。
        范例:
        删除所有C语言程序档;删除前逐一询问确认 :
        rm -i *.c

        将 Finished 子目录及子目录中所有档案删除 :
        rm -r Finished

    十.mv

        名称:mv

        使用权限:所有使用者

        使用方式:

        mv [options] source dest
        mv [options] source... directory
        说明:将一个档案移至另一档案,或将数个档案移至另一目录。
        参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。

        范例:

        将档案 aaa 更名为 bbb :
        mv aaa bbb

        将所有的C语言程序移至 Finished 子目录中 :
        mv -i *.c

    十一.more

        名称:more
        使用权限:所有使用者
        使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
        说明:类似 cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
        参数:
        -num 一次显示的行数
        -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
        -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
        -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
        -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
        -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
        -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
        -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
        +/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示
        +num 从第 num 行开始显示
        fileNames 欲显示内容的档案,可为复数个数
        范例:
        more -s testfile 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。
        more +20 testfile 从第 20 行开始显示 testfile 之档案内容。

    十二.locate

        名称:locate
        使用权限:所有使用者
        使用方式: locate [-q] [-d ] [--database=]
        locate [-r ] [--regexp=]
        locate [-qv] [-o ] [--output=]
        locate [-e ] [-f ] <[-l ] [-c]
        <[-U ] [-u]>
        locate [-Vh] [--version] [--help]
        说明:

          locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。

          在一般的 distribution 之中,数据库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用 locate your_file_name 的型式就可以了。
        参数:
        -u,-U 建立数据库,-u 会由根目录开始,-U 则可以指定开始的位置。
        -e 将  排除在寻找的范围之外。
        -l 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。
        -f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在数据库中。
        -q 安静模式,不会显示任何错误讯息。
        -n 至多显示 个输出。
        -r 使用正规运算式 做寻找的条件。
        -o 指定数据库存的名称。
        -d 指定数据库的路径
        -h 显示辅助讯息
        -v 显示更多的讯息
        -V 显示程序的版本讯息 范例:
        locate chdrv : 寻找所有叫 chdrv 的档案
        locate -n 100 a.out : 寻找所有叫 a.out 的档案,但最多只显示 100 个
        locate -u : 建立数据库
          locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)

          locate指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元(如”*”或”?”等)来指定范本样式,如指定范本为kcpa*ner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括子目录在内的所有档案。

          locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。

          不过第一次在执行update後再使用locate寻找档案常会失败,此时就要执行slocate ˉu该命令(也可执行updatedb指令,其效果相同)来更新slocate数据库,该命令会在/usr/sbin下产生slocate执行档,再由 locate到此数据库寻找所要找的资料。 

    网友留言/评论

    我要留言/评论