1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
答:针对文件常用的命令有如下几大类:
a)文件创建命令 touch
touch /path/filename —-新建一个空的文件
b)文件复制命令 cp
cp /path1/filename1 /path2/ —-复制path1路径下的filename1文件到path2路径下,并保持文件名不变
cp /path1/filename1 /path2/filename2 —-复制path1路径下的filename1文件到path2路径下,并修改文件名为filename2
其中cp命令中几个常用参数如下:
-d:如果复制的是链接文件,则保留链接文件属性,而非复制文件的实际数据
-l:以硬链接方式复制,而非复制文件的实际数据
-R(-r):执行递归复制,主要针对目录文件
-i:执行交互式复制,复制过程中会询问用户的选择
-p:保留源文件的基本属性,而非自动继承目的路径的属性
–presever=all:保留除-p基本属性之外的其他属性,如xattr(括展属性),SElinux上下文属性等
-a:等同于-dR –preserve=all
c)文件移动命令 mv
mv /path1/filename1 /path2/ —-复制path1路径下的filename1文件到path2路径下,并保持源文件名不变,同时删除path1路径下的源文件
mv /path1/filename1 /path2/filename2 —-复制path1路径下的filename1文件到path2路径下,并修改文件名为filename2,同时删除path1路径下的源文件
其中mv命令中几个常用参数如下:
-i:执行交互式操作,文件或者目录移动过程中会询问用户的选择
-f:强制模式,不询问用户的选择,强制执行命令动作
-u:更新模式,当目标文件比源文件陈旧时,执行mv操作,反之则不执行
d)文件删除命令 rm
rm /path/filename —-删除文件或者目录
其中rm命令中常用参数如下:
-i:交互式操作,删除过程中询问用户的选择
-f:强制模式,直接执行删除不询问用户选择
-r:递归模式,以递归方式执行删除文件或目录,此方式可以用户对非空目录的删除
e)遍历文件命令 ls
ls /path/filename
其中ls命令中常用参数如下:
-l:长格式显示文件的信息,7段文件信息(文件类别与文件基本权限,链接次数,文件属主,文件属组,文件大小,文件创建时间日期,文件名)
-d:仅显示目录文件,不显示目录下所含的文件以及子目录
-Z:显示文件的SElinux上下文属性
-i:显示文件或目录的i-node信息
-R:递归显示目录以及目录所包含的文件和子目录信息
-t:按时间排序,而非默认的文件名字符排序
-S:按文件大小排序
-r:反向输出排序结果,常和-t,-S等联合使用
-n:显示属主,属组的id号,而非其名称
-h:按照人类易读的数值显示文件大小信息
–color=auto:自动显示不同文件类别的颜色(如:蓝色代表目录文件,紫色代表链接文件,黄色代表设备文件,黑色代表普通文件)
f)文件基名与目录名
basename /path/filename —-显示/path/filename中的基名,即filename
dirname /path/filename —-显示/path/filename中的目录名,即path
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示
答:
命令执行状态分为如下两种:
执行成功:0
执行失败:1-255
使用“$?"特殊变量保存命令执行的状态返回值
例如:
~]$ ls /etc/abc
ls: 无法访问/etc/abc: 没有那个文件或目录
# 执行ls命令提示错误,没有找到相应文件或目录
此时查询命令执行状态返回值如下
~]$ echo $?
2
#返回值是2(失败)
~]$ cd /yes
bash: cd: /yes: 没有那个文件或目录
#执行目录切换命令,提示不存在/yes目录
~]$ echo $?
1
#查询命令执行状态返回值是1(失败)
~]$ cd /etc/
etc]$
#执行正确的目录切换命令,切换目录到/etc下
etc]$ echo $?
0
#查询命令执行状态返回值是0(成功)
命令行展开有如下几种
~:表示当前用户的家目录
etc]$ cd ~
~]$
~account:表示指定account账户的家目录
~]# cd ~user1
user1]#
{}:可以代表花括号内以逗号(,)分割的多个表示路径的名称,例如 /etc/{path1,path2} 代表/etc/path1以及/etc/path2两个目录
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c,a_d,b_c,b_d
答:mkdir /tmp/{a,b}_{c,d}
(2)、创建/tmp/mylinux目录下的:
mylinux/
|——bin
|——boot
|——grup
|——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 -p /tmp/mylinux/{bin,boot/grup,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
4、文件的元数据信息有哪些,分别表示什么含义如何查看?如何修改文件的时间戳信息。
答:文件的元数据包含文件的权限,文件的属性以及括展属性,文件所对应的inode号等信息,通过stat查看文件元数据信息
使用touch命令,vim编辑文件,mv修改文件名等都可以影响文件的时间戳
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
答:
定义别名:alias 命令1=‘命令2’
命令引用:通过管道符号“|”,把前一个命令的结果作为下一个命令的输入,例如:echo “redhat”| passwd –stdin user表示把前一个echo显示的redhat字符作为后一个passwd密码输入的值
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录
答:ls -r /var | grep ^l.*[0-9]\{1,\}.*[a-z]$ 或者 ls -d /var/l*[0-9]*[a-z]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
答:ls -r /etc | grep ^[0-9].*[^0-9]$ 或者 ls -d /etc/[0-9]*[^0-9]
8、显示/etc目录下,以非字母开头后面跟了一个字母以及其他任意长度任意字符的文件或目录
答:ls -r /etc | grep ^[^[:alpha:]][[:alpha:]].* 或者 ls -d /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
答:touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
答:cp -a /etc/p*[^0-9] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
答:cp -a /etc/*.d /tmp/mytest2
12、复制/etc目录下所有以l或者m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
答:cp -a /etc/[l,m,n]*.conf /tmp/mytest3
原创文章,作者:N24_shishen,如若转载,请注明出处:http://www.178linux.com/60073