Linux 基础的文件目录操作命令,融合多部Linux经典著作,去除多余部分,保留实用部分。
显示目录或文件: 显示目标列表,在Linux系统中是使用率较高的命令.ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件
[root@localhost ~] 命令语法:[ ls [选项] 文件或目录 ] -a -A -d -f -h -i -l -n -S -t -r -R -Z --full-time --time=atime/ctime/mtime
使用 ls -lh
参数查询所在目录详细信息
[root@localhost ~] total 0 -rw-r--r--. 1 root root 0 Nov 13 09:36 admin drwxr-xr-x. 2 root root 6 Nov 13 09:36 lyshark 第1项: 文件权限位 第2项: 引用计数(文件:硬链接数 目录:目录下的子目录个数) 第3项: 文件的所有者(属主->此处为root) 第4项: 文件的所属组(属组->此处为root) 第5项: 文件大小(默认单位字节byte) 第6项: 最后一次修改时间 第7项: 文件名
使用 ls -lh --full-time
显示文件创建的详细时间信息
[root@localhost ~] total 0 -rw-r--r--. 1 root root 0 2018-11-13 09:36:25.172274787 -0500 admin drwxr-xr-x. 2 root root 6 2018-11-13 09:36:13.292275532 -0500 lyshark
使用 ls -lhS
显示文件,并按照文件由大到小打印
[root@localhost ~] total 0 drwxr-xr-x. 2 root root 6 Nov 13 09:36 lyshark -rw-r--r--. 1 root root 0 Nov 13 09:36 admin
使用 ls -lhrS
显示文件,并按照文件由小到大打印
[root@localhost ~] total 0 -rw-r--r--. 1 root root 0 Nov 13 09:36 admin drwxr-xr-x. 2 root root 6 Nov 13 09:36 lyshark
使用 ls -lZ
显示文件,并显示SeLinux安全上下文
[root@localhost ~] -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 admin drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 lyshark
目录跳转与切换: 切换当前的哦工作目录
[root@localhost ~] 命令语法:[ cd [选项] 目录 ] cd cd ~ cd - cd .. cd ../.. cd !$
使用 cd ~ or cd
切换到用户家目录
[root@localhost etc] /etc [root@localhost etc] [root@localhost ~] /root
使用 cd ..
切换上一级目录里去
[root@localhost ~] /root [root@localhost ~] [root@localhost /] /
使用 cd ../..
切换上两级目录里去
[root@localhost sysconfig] /etc/sysconfig [root@localhost sysconfig] [root@localhost /] /
创建新目录: mkdir命令用来创建一个新目录,或者递归创建一些目录。
[root@localhost ~] 语法格式:[ mkdir [选项] 新目录名 ] -v -p -Z -m
使用 mkdir -p
递归创建目录
[root@localhost ~] [root@localhost ~] total 0 drwxr-xr-x. 2 root root 6 Nov 13 09:56 lyshark
使用 mkdir -m
建立目录时同时设置权限.
[root@localhost ~] [root@localhost ~] total 0 d---------. 2 root root 6 Nov 13 10:02 lyshark
创建空文件: touch命令用于创建空文件按,或者把已存在文件的时间标签更新为系统当前的时间。
[root@localhost ~] 语法格式:[ touch [选项] 文件名 ] -a -c -m -t
使用 touch
命令在当前目录下创建一个空文件lyshark.txt.
[root@localhost ~] total 0 [root@localhost ~] [root@localhost ~] total 0 -rw-r--r--. 1 root root 0 Nov 13 10:32 lyshark.txt
使用 touch -t
命令修改文件的时间改成15年11月03日11点59分.
[root@localhost ~] total 0 -rw-r--r--. 1 root root 0 2018-11-13 10:35:50.639051120 -0500 lyshark.txt [root@localhost ~] [root@localhost ~] total 0 -rw-r--r--. 1 root root 0 2015-11-03 11:59:00.000000000 -0500 lyshark.txt
复制文件或目录: cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。
[root@localhost ~] 语法格式:[ cp [选项] 源文件或目录 目标目录 ] -a -d -f -i -p -r -s -u
使用 cp -a
命令实现文件拷贝,将/etc/的文件拷贝到/tmp/目录下.
[root@localhost ~] [root@localhost ~] total 1.1M -rw-r--r--. 1 root root 16 Oct 13 12:37 adjtime -rw-r--r--. 1 root root 1.5K Jun 7 2013 aliases -rw-r--r--. 1 root root 12K Oct 13 12:39 aliases.db drwxr-xr-x. 2 root root 236 Oct 13 12:34 alternatives ....省略....
使用 cp -s
命令实现拷贝文件,将/etc/passwd创建软链接到/tmp/目录下.
[root@localhost ~] [root@localhost ~] total 0 lrwxrwxrwx. 1 root root 11 Nov 13 10:09 passwd -> /etc/passwd
使用 cp -a
命令实现一次拷贝多个文件,到/tmp/目录下.
[root@localhost ~] [root@localhost ~] total 8.0K -rw-r--r--. 1 root root 898 Oct 13 12:37 passwd ----------. 1 root root 714 Oct 13 12:37 shadow
移动文件或目录: mv命令用来对文件或目录重新命名,如果文件存在则会强制更新。
[root@localhost ~] 语法格式:[ mv [选项] 源文件或目录 目标目录 ] -f -i -u
使用 mv
命令实现将/etc/passwd移动到/tmp目录下.
[root@localhost ~] [root@localhost ~] total 4.0K -rw-r--r--. 1 0 root 898 Oct 13 12:37 passwd
使用 mv
命令实现一次移动多个文件,下面将/etc/passwd和/etc/shadow 移动到/tmp目录下.
[root@localhost ~] [root@localhost ~] total 8.0K -rw-r--r--. 1 0 root 898 Oct 13 12:37 passwd ----------. 1 0 root 714 Oct 13 12:37 shadow
使用 mv
命令实现重命名,将当前目录下的lyshark改名为linux.
[root@localhost ~] total 0 drwxr-xr-x. 2 root root 6 Nov 13 10:19 lyshark [root@localhost ~] [root@localhost ~] total 0 drwxr-xr-x. 2 root root 6 Nov 13 10:19 linux
删除文件或目录: rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉.
[root@localhost ~] 语法格式:[ rm [选项] 文件或目录 ] -f -r -i -fr
使用 rm -fr
命令删除当前目录下的linux目录.
[root@localhost ~] linux [root@localhost ~] [root@localhost ~]
使用 rm -fr *
命令使用通配符,删除指定文件夹内的所有文件.
[root@localhost lyshark] 1 10 2 3 4 5 6 7 8 9 [root@localhost lyshark] [root@localhost lyshark]
判断文件的类型: file命令用来检测给定文件的类型,file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程
[root@localhost ~] 语法格式:[ file [选项] 文件或目录 ] -b -c -f 文件名 -z
使用 file
命令判断/etc/passwd 和 /bin/bash 文件的格式.
[root@localhost ~] /etc/passwd: ASCII text [root@localhost ~] /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=9a57e086388119ecd285c4d5c66823f3f3b68ab5, stripped
使用 file -z
命令读取lyshark.tar.gz压缩包文件属性.
[root@localhost ~] total 9.4M -rw-r--r--. 1 root root 9.4M Nov 13 10:51 lyshark.tar.gz [root@localhost ~] lyshark.tar.gz: POSIX tar archive (GNU) , (gzip compressed data, from Unix, last modified: Tue Nov 13 10:51:13 2018)
使用 file -f
命令在文件中读取指定行,并依次判断文件.
[root@localhost ~] /etc/passwd /etc/shadow /bin/bash /bin/ls [root@localhost ~] /etc/passwd: ASCII text /etc/shadow: ASCII text /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=9a57e086388119ecd285c4d5c66823f3f3b68ab5, stripped /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]=ec3f3e5e8160c9917e8a4b896fe9044748472991, stripped
查询文件状态: stat命令用于显示文件的状态信息,stat命令的输出信息比ls命令的输出信息要更详细。
[root@localhost ~] 语法格式:[ stat [选项] 文件或目录 ] -L -f -t
使用 stat
命令查询/bin/bash文件的相信信息.
[root@localhost ~] File: ‘/bin/bash’ Size: 964544 Blocks: 1888 IO Block: 4096 regular file Device: fd00h/64768d Inode: 50340311 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:shell_exec_t:s0 Access: 2018-11-13 09:33:12.197999579 -0500 Modify: 2017-09-26 09:14:20.000000000 -0400 Change: 2018-10-13 12:32:43.377997461 -0400 Birth: -
使用 stat -f
命令显示系统的状态信息.
[root@localhost ~] File: "/bin/bash" ID: fd0000000000 Namelen: 255 Type: xfs Block size: 4096 Fundamental block size: 4096 Blocks: Total: 4452864 Free: 4155020 Available: 4155020 Inodes: Total: 8910848 Free: 8877953
创建链接文件: ln命令用来为文件创件连接,既可以创建软连接也可以创建硬链接。
[root@localhost ~] 语法格式:[ stat [选项] 文件或目录 ] -L -d -f -i -s
使用 ln
命令建立一个硬链接.
[root@localhost ~] total 944K 33844798 -rwxr-xr-x. 1 root root 942K Sep 26 2017 bash [root@localhost ~] [root@localhost ~] total 1.9M 33844798 -rwxr-xr-x. 2 root root 942K Sep 26 2017 bash 33844798 -rwxr-xr-x. 2 root root 942K Sep 26 2017 bash_ln
使用 ln -s
命令建立一个软链接.
[root@localhost ~] total 944K 33844798 -rwxr-xr-x. 1 root root 942K Sep 26 2017 bash [root@localhost ~] [root@localhost ~] total 944K 33844798 -rwxr-xr-x. 1 root root 942K Sep 26 2017 bash 33959316 lrwxrwxrwx. 1 root root 4 Nov 13 11:06 bash_link -> bash
文本打印命令: cat 文件打印滚屏命令,控制参数输出。
[root@localhost ~] 语法格式:[ cat [选项] 文件名 ] -b -E -T -n
使用 cat -n
命令给指定文本标号并打印.
[root@localhost ~] 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin 4 adm:x:3:4:adm:/var/adm:/sbin/nologin 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6 sync :x:5:0:sync :/sbin:/bin/sync ....省略....
使用 cat -E
命令显示文本结束符$.
[root@localhost ~] root:x:0:0:root:/root:/bin/bash$ bin:x:1:1:bin:/bin:/sbin/nologin$ daemon:x:2:2:daemon:/sbin:/sbin/nologin$ adm:x:3:4:adm:/var/adm:/sbin/nologin$ lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$ sync :x:5:0:sync :/sbin:/bin/sync$shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown$ ....省略....
显示开头文本: head命令用于显示文件的开头的内容,在默认情况下,head命令显示文件的头10行内容
[root@localhost ~] 语法格式:[ head [选项] 文件名 ] -c 10 -n 10 -v -q
使用 head -c
命令显示文本的前20个字符.
[root@localhost ~] root:x:0:0:root:/roo [root@localhost ~]
使用 head -n
命令显示文本前3行.
[root@localhost ~] root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
显示结尾文本: tail命令用于输入文件中的尾部内容,tail命令默认在屏幕上显示指定文件的末尾10行
[root@localhost ~] 语法格式:[ tail [选项] 文件名 ] -c 10 -n 10 -f --pid=PID
使用 tail -n
命令显示文本后3行.
[root@localhost ~] postfix:x:89:89::/var/spool/postfix:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin lyshark:x:1000:1000:lyshark:/home/lyshark:/bin/bash
使用 tail -f
命令动态监控一个文件.
[root@localhost ~] Nov 13 10:01:01 localhost systemd: Starting Session 3 of user root. Nov 13 10:10:54 localhost kernel: e1000: ens32 NIC Link is Down Nov 13 10:10:58 localhost kernel: e1000: ens32 NIC Link is Up Nov 13 10:10:58 localhost NetworkManager[772]: <info> ....省略....
使用 tail --pid=PID
命令监视一个进程.
[root@localhost ~] PID TTY TIME CMD 1404 pts/0 00:00:00 bash 11441 pts/0 00:00:00 ps [root@localhost ~] [root@localhost ~] tail : warning: PID ignored; --pid=PID is useful only when following....省略....
使用 tail -n +5
命令从第五行以后开始打印.
[root@localhost ~] lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync :x:5:0:sync :/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin ....省略....
使用 tail -n +5 | head -n 3
命令从第五行开始打印,向下打印2行内容.
[root@localhost ~] lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync :x:5:0:sync :/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
指定格式输出文本: nl命令读取file参数缺省情况下标准输入,计算输入中的行号,将计算过的行号写入标准输出.
[root@localhost ~] 语法格式:[ nl [选项] 文件名 ] -c 10 -b a -b t -n ln -n rn -n rz -w
使用 nl -b a
命令给文本标号打印(类似于cat -n).
[root@localhost ~] 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin 4 adm:x:3:4:adm:/var/adm:/sbin/nologin 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6 sync :x:5:0:sync :/sbin:/bin/sync ....省略....
使用 nl -b a -n rz
命令列出文本并给予编号,空格0填充.
[root@localhost ~] 000001 root:x:0:0:root:/root:/bin/bash 000002 bin:x:1:1:bin:/bin:/sbin/nologin 000003 daemon:x:2:2:daemon:/sbin:/sbin/nologin 000004 adm:x:3:4:adm:/var/adm:/sbin/nologin 000005 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin ....省略....
使用 nl -b a -n rz -w 3
命令列出文本并给予编号,编号填充2行0.
[root@localhost ~] 001 root:x:0:0:root:/root:/bin/bash 002 bin:x:1:1:bin:/bin:/sbin/nologin 003 daemon:x:2:2:daemon:/sbin:/sbin/nologin 004 adm:x:3:4:adm:/var/adm:/sbin/nologin 005 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin ....省略....
非纯文本文件打印: od用于输出文件的八进制、十六进制或其它格式编码字节,此命令主要用来查看保存在二进制文件中的值.
[root@localhost ~] 语法格式:[ od [选项] 文件名 ] -t a -t c -t d -t f -t o -t x
使用 od -t a
命令使用默认格式输出.
[root@localhost ~] 0000000 0000020 n sp c d sp " $ @ " nl 0000032
使用 od -t c
命令使用ASCII输出.
[root@localhost ~] 0000000 0000020 n c d " $ @ " \n 0000032
使用 od -t x
命令输出二进制文件的十六进制。
[root@localhost ~] 0000000 622f2123 732f6e69 75620a68 69746c69 0000020 6463206e 40242220 00000a22
翻页浏览文本: 命令more/less
是文本翻阅查看命令。
[root@localhost ~] 语法格式:[ more 文件名 ] 空格 B Enter /字符串 :f q或Q
[root@localhost ~] 语法格式:[ less [选项] 文件名 ] -e -f -l -N 空格 [pageup] /字符串 ?字符串 q
文件打补丁: 给指定的配置文件打补丁,通过对比生成差异文件,并打入补丁.
[root@localhost ~] 语法格式:[ diff [选项] 源文件 新文件 > *.patch ] -a -b -B -I -N -r -u [root@localhost ~] [root@localhost ~]