一、Linux上的文件管理类命令,其常用的使用方法和相关示例
1、ls:查看文件与目录
作用:ls命令用于显示目录内容,类似于DOS下的dir命令,它的使用权限是所有用户。
用法:ls [选项]…[文件]…
主要选项如下:
-a:全部的文件,连同隐藏文件(开头为 .的文件)一起列出来
-A:列出全部的文件(连同隐藏文件,但不包括.与..这两个目录)
-d:仅列出目录本身,而不是列出目录内的文件数据
-f:直接列出结果,而不进行排序
-F:根据文件、目录等信息给予附加数据结构,例如:*:代表可执行文件; /:代表目录; =:代表socket文件; |:代表FIFO文件
-h:将文件容量以人类较易读的方式列出来
-i:–inode,显示每个文件的inode号
-l:使用较长格式列出信息,包含文件的属性与权限等数据
-n:–numeric-uid-gid,类似-l,但列出UID与GID,而非用户与用户组的名称
-r:–reverse,逆序排列,将排序结果反向输出
-R:–recursive,递归显示子目录
-S:根据文件大小排序
-t:根据时间排序,而不是文件名
示例:
[root@localhost ~]# ls -al #列出用户所在主目录下的所有文件与目录
total 36
dr-xr-x—. 2 root root 4096 Dec 8 19:03 .
dr-xr-xr-x. 17 root root 4096 Dec 8 18:58 ..
-rw——-. 1 root root 1186 Dec 8 18:58 anaconda-ks.cfg
-rw——-. 1 root root 152 Dec 8 19:50 .bash_history
-rw-r–r–. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r–r–. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r–r–. 1 root root 176 Dec 28 2013 .bashrc
-rw-r–r–. 1 root root 100 Dec 28 2013 .cshrc
-rw-r–r–. 1 root root 129 Dec 28 2013 .tcshrc
[root@localhost ~]# ls -alt #列出用户所在主目录下的所有文件按时间排序
total 36
-rw——-. 1 root root 152 Dec 8 19:50 .bash_history
dr-xr-x—. 2 root root 4096 Dec 8 19:03 .
-rw——-. 1 root root 1186 Dec 8 18:58 anaconda-ks.cfg
dr-xr-xr-x. 17 root root 4096 Dec 8 18:58 ..
-rw-r–r–. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r–r–. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r–r–. 1 root root 176 Dec 28 2013 .bashrc
-rw-r–r–. 1 root root 100 Dec 28 2013 .cshrc
-rw-r–r–. 1 root root 129 Dec 28 2013 .tcshrc
2、cat:显示文本文件内容
作用:将[文件]或标准输入组合输出到标准输出。
用法:cat [选项] [文件]…
主要选项如下:
-A:–show-all,相当于-vET的整合参数,可列出一些特殊字符,而不是空白
-b:–number-nonblank,列出行号,仅针对非空白行做行号显示,空白行不标行号
-E:–show-ends,在每行结束处显示”$“
-n:–number,对输出所有行编号
-T:–show-tabs,将TAB按键以“^I”显示出来
-v:–show-nonprinting,使用“^”和“M-”引用,除LFD和TAB之外
示例:
[root@localhost ~]# cat /etc/issue #查看/etc/issue这个文件的内容
\S
Kernel \r on an \m
[root@localhost ~]# cat -n /etc/issue #加印行号查看/etc/issue这个文件的内容
1 \S
2 Kernel \r on an \m
3
[root@jl ~]# cat -A /etc/issue #将/etc/issue这个文件的内容完整显示出来(包含特殊字母)
CentOS release 6.5 (Final)$
Kernel \r on an \m$
$
3、cp:复制文件
作用:文件或目录的复制
用法:cp [选项]… [-T] 源文件 目标文件
cp [选项]… 源文件… 目录
cp [选项]… -t 目录 源文件…
将<源文件>文件复制至<目标文件>, 或将多个<源>复制至<目录>
主要选项如下:
-a:等同于-dpR参数一起使用,在复制过程中尽可能保留源文件或目录的属性
-d:若源文件为连接文件的属性(link file),则复制连接文件属性而非文件本身
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试一次
-i:若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行
-l:进行硬链接(hard link)的连接文件创建,而非复制文件本身
-p:连同文件的属性一起复制,而非使用默认属性(备份常用)
-r:递归持续复制,用于目录的复制行为(常用)
-s:复制成为符号链接文件(symbolic link),即”快捷方式“文件
示例:
[root@jl ~]# cp ~/install.log /home/jl/xxx #将~目录下的install.log文件复制到/home/jl下并更名为xxx文件
[root@jl ~]# ls /home/jl #查看结果
Desktop Documents Downloads Music Pictures Public Templates Videos xxx
[root@jl ~]# cd /home/jl #切换目录至/jl
[root@jl jl]# cp ~/install.log . #将~目录下的install.log文件复制到/jl目录下
[root@jl jl]# ls #查看结果
Desktop Downloads Music Public Videos
Documents install.log Pictures Templates xxx
4、rm:删除文件
作用:删除指定的文件
用法:rm [选项]…文件…
主要选项如下:
-f:–force,强制删除,忽略不存在的文件,不提示确认
-i:互动模式,在删除前需要用户确认
-r:-R,–recursive,递归删除目录及内容
示例:
[root@jl jl]# rm -i install.log #删除目录/jl下的install.log文件
rm: remove regular file `install.log'? y #是否删除
[root@jl jl]# ls #查看是否已删除install.log
Desktop Documents Downloads Music Pictures Public Templates Videos xxx
[root@jl jl]# touch ./-a- #创建一个-a-的空文件
[root@jl jl]# ls
-a- Desktop Documents Downloads Music Pictures Public Templates Videos xxx # -a-空文件创建成功
[root@jl jl]# rm -a- #删除-a-的空文件,提示无法删除,因为“-”是参数,系统误判
rm: invalid option — 'a'
Try `rm ./-a-' to remove the file `-a-'.
Try `rm –help' for more information.
[root@jl jl]# rm ./-a- #通过在./-a-的形式可以正常删除
rm: remove regular empty file `./-a-'? y
[root@jl jl]# ls
Desktop Documents Downloads Music Pictures Public Templates Videos xxx
5、mv:移动或更改文件名
作用:mv可以将源文件重命名为目标文件,或将源文件移动至指定目录
用法:mv [选项]… [-T] 源文件 目标文件
mv [选项]… 源文件… 目录
mv [选项]… -t 目录 源文件..
主要选项如下:
-f:–force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i:–interactive,若目标文件已经存在,就会询问是否覆盖
-u:–update,若源文件比目标文件新,或目标文件不存在时才进行移动或更新
示例:
[root@jl jl]# mv xxx Public #将/home/jl下的xxx文件移动到/home/jl/Public目录下
[root@jl jl]# ls Public #查看是否完成上述操作
xxx
[root@jl jl]# cd Public
[root@jl Public]# ls
xxx
[root@jl Public]# mv xxx yyy #将xxx文件改名为yyy文件
[root@jl Public]# ls
yyy
6、tac:和cat用法一样,只是将cat显示内容由最后一行到第一行反向在屏幕上显示出来
示例:
[root@localhost ~]# cat /etc/issue #用cat查看/etc/issue这个文件的内容
\S
Kernel \r on an \m
[root@jl Public]# tac /etc/issue #用tac查看/etc/issue的结果
Kernel \r on an \m
CentOS release 6.5 (Final)
7、file:查看文件类型
作用:通过探测文件内容来判断文件类型
用法:file [选项]文件名
示例:
[root@jl Public]# file yyy #查看yyy文件的类型
yyy: ASCII text #yyy:是纯文本文件
8、echo:显示文本
作用:显示文本内容
用法:echo [-neE] [字符串]
主要选项如下:
-n:不输出行尾的换行符
-E:禁止对在STRINGs中的那些序列进行解释
-e:允许对加反斜线转义的字符进行解释
\n:换行且光标移至行首
\t:插入TAB字符
二、bash的工作特性命令执行状态返回值和命令行展开所涉及的内容及示例
1、命令执行状态返回值:返回值用于判断命令执行正确与否
成功:0
失败:1-255之间的数字
示例:
[root@jl ~]# ls
anaconda-ks.cfg install.log install.log.syslog
[root@jl ~]# echo $?
0
[root@jl ~]# lsl
-bash: lsl: command not found
[root@jl ~]# echo $?
127
2、命令行展开
以bash能够解释的符号来代替命令中的一些重复字段,一定要用{}引起来。
示例:
[root@jl Public]# touch aa,bb,cc,dd #错误的展开方式
[root@jl Public]# ls
aa,bb,cc,dd yyy
[root@jl Public]# touch {aa,bb,cc,dd} #正确的展开方式
[root@jl Public]# ls
aa aa,bb,cc,dd bb cc dd yyy
三、请使用命令行展开功能完成以下练习
1、创建/tmp目录下的:a_c,a_d,b_c,b_d
示例:
[root@jl tmp]# mkdir -p {a_{c,d},b_{c,d}} #创建题目所示目录
[root@jl tmp]# ls
{ab}_{cd} a_d b_d orbit-gdm pulse-mVv73u248BxO
a_c b_c mkdir pulse-1WkG75eehMWV yum.log
2、创建/tmp目录下的子目录
示例:
[root@jl var]# mkdir -pv mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
mkdir: created directory `mylinux'
mkdir: created directory `mylinux/bin'
mkdir: created directory `mylinux/boot'
mkdir: created directory `mylinux/boot/grub'
mkdir: created directory `mylinux/dev'
mkdir: created directory `mylinux/etc'
mkdir: created directory `mylinux/etc/rc.d'
mkdir: created directory `mylinux/etc/rc.d/init.d'
mkdir: created directory `mylinux/etc/sysconfig'
mkdir: created directory `mylinux/etc/sysconfig/network-scripts'
mkdir: created directory `mylinux/lib'
mkdir: created directory `mylinux/lib/modules'
mkdir: created directory `mylinux/lib64'
mkdir: created directory `mylinux/proc'
mkdir: created directory `mylinux/sbin'
mkdir: created directory `mylinux/sys'
mkdir: created directory `mylinux/tmp'
mkdir: created directory `mylinux/usr'
mkdir: created directory `mylinux/usr/local'
mkdir: created directory `mylinux/usr/local/bin'
mkdir: created directory `mylinux/usr/local/sbin'
mkdir: created directory `mylinux/var'
mkdir: created directory `mylinux/var/lock'
mkdir: created directory `mylinux/var/log'
mkdir: created directory `mylinux/var/run'
四、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的 时间戳信息
在Linux文件管理中,文件除了自身数据之外,还有附属信息,即文件的元数据;这个元数据用于记录文件的许多信息,比如文件大小,属主,属组,修改日期等等。元数据并不包含在文件数据中,由系统维护,也就是包含在inode中。每个inode有一个唯一的整数编号表示(inode number)。
查看文件元数据信息:ls -l,stat
示例:
[root@jl var]# stat /mylinux
File: `/mylinux'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 802h/2050d Inode: 521573 Links: 14
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-12-11 11:50:39.155526394 -0500
Modify: 2016-12-11 11:49:08.483526598 -0500
Change: 2016-12-11 11:49:08.483526598 -0500
[root@jl var]# ls -l /mylinux
total 48
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 bin
drwxr-xr-x. 3 root root 4096 Dec 11 11:49 boot
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 dev
drwxr-xr-x. 4 root root 4096 Dec 11 11:49 etc
drwxr-xr-x. 3 root root 4096 Dec 11 11:49 lib
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 lib64
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 proc
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 sbin
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 sys
drwxr-xr-x. 2 root root 4096 Dec 11 11:49 tmp
drwxr-xr-x. 3 root root 4096 Dec 11 11:49 usr
drwxr-xr-x. 5 root root 4096 Dec 11 11:49 var
修改文件的时间戳:
[root@jl ~]# touch [-acdmt] 文件
参数:
-a : 仅修改access time。
-c : 仅修改时间,而不建立文件。
-d : 后面可以接日期,也可以使用 –date="日期或时间"
-m : 仅修改mtime。
-t : 后面可以接时间,格式为 [YYMMDDhhmm]
五、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
指令:alias
设置指令的别名
语法:# alias name='command line'
参数:-p: 打印出现有的别名(唯一的参数)
若不加任何参数,则列出目前所有的别名设置
用法:# alias cp='cp -i'或alias l='ll'
这样就可以用cp来代替cp -i,而且cp -i这条命令依旧有效
查看alias:
列出目前所有的别名设置。
# alias 或 # alias -p
查看具体一条指令的别名
# alias cp
别名永久化:
alias的作用仅在该次登入的操作,即输入一次alias后,这个修改只在当前的Shell生效。如果重新开启一个 Shell,或者重新登录,则这些alias将无法使用。好在linux中提供alias永久化的方法:
<1>.若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
<2>.若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,然后# source /etc/bashrc
重新设置别名:
alias重置的方法与第一次设置的时候一样
# alias cp='cp -i'
删除别名:
格式:unalias name
# unalias cp
如何在命令中引用另一个命令的执行结果
命令是ficonfig eth0,变量是ip,则:
#!/bin/bash
ip=`ifconfig eth0`
echo $ip
这样就把命令生成的字符串赋值给ip了,echo $ip,看到的就是命令执行的结果
六、显示/var目录下所有以l开头,以一个小写字母结尾,中间出现至少一位数字(可以有其他字符)的文件或目录
# ls –d /var/l*[0-9]*[[:lower:]]
七、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
# ls –d /etc/[0-9]*[^0-9]
八、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录
# ls –d /etc/[^[:alpha:]][[:alpha:]]*
九、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
touch /tmp/tfile-$(date +"%F-%H-%M-%S")
十、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
cp -r /etc/p*[^0-9] /tmp/mytest1/
十一、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
cp -r /etc/*.d /tmp/mytest2/
十二、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
cp -r /etc/[lmn]*.conf /tmp/mytest3/
原创文章,作者:jindizang,如若转载,请注明出处:http://www.178linux.com/63234
评论列表(1条)
赞~写的不错~~排版上能注意下会更好~