1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
答:有mv,cp,rm,touch,cat,vi等;
使用方法及相关演示:
mv:移动或重命名文件以及文件夹
使用方法:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u:若目标文件已经存在,且source比较新,才会更新
例1:将根目录下的test1.txt文件移动到其他目录中去
例2:重命名文件或文件夹
cp:复制文件或文件夹
使用方法:
cp [option]..... source..... directory
参数:
-a:相当与-dR --preserve=all的意思,保持软连接,递归,保持文件原有有属性;
-d:若来源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身;
-f:为强制的意思,若目标文件已经存在且无法打开,则移除后再尝试一次;
-i:若目标文件已存在,则会覆盖且覆盖前询问;
-r:复制目录所用;
例1:复制根目录下的test1.txt到/shilie目录下,且重命名为test2;
例2:-i的用法,不加i选项在某些操作系统版本下也会询问是否覆盖;
例3:将根目录下的test目录复制到/shilie下(注:cp命令无法直接复制目录,需加-r选项)
rm:删除文件或文件夹
使用方法:
rm [option]..... file....
参数:
-f 忽略不存在的文件,且不给出任何提示(可理解为强制执行);
-i 进行交互式删除
-r 删除目标目录以及所有子目录;
-v 显示详细步骤;
例1:删除根目录下的test1.txt文件(删除前会询问是否删除)
例2:使用-f参数来删除根目录下的test1.txt
例3:使用-r命令删除目标目录及所有子目录
注:使用-r命令后会提示是否进入子目录且还会提示是否删除子目录,在实际环境中一次次提示会很不方便,我们可以加上-rf来强制执行且不询问,直接删除目标目录及下面的所有子目录。
touch:修改文档或目录的时间,包括存取时间和更改时间(也可创建一个新文件)
使用方法:
touch [option]... file...
参数:
-a 只更改存取的时间
-c 不建立任何文档
-t 使用指定的日期时间,而非现在的时间
-m 只更改变动时间
例1:创建新文件
例2:更新test1的时间和test2的时间戳相同
例3:设定test1.txt的时间戳
cat:该命令有三大功能:一次性显示整个文件;从键盘创建一个文件;将几个文件合并为一个文件;
参数:
-a 等同于-vET
-b 堆非空输出行编号
-E 在每行结束处显示$
-n 对输出的所有行编号
-T 对跳格字符显示为 ^I
-v 使用^和M-引用,除了LFD和TAB外
例1:显示/test1.txt所有内容
例2:使用cat创建一个新文件
例3:将两个文件中的内容合并到一个文件中
vi:文本编辑器
使用方法:
vi [options] [file...]
例:直接使用命令+文件名即可,如vi test1.txt。
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
答:bash使用特殊变量$?来保存最新一条命令的执行状态结果,0表示成功,1-255表示失败。
例:
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
答:
(2)、创建/tmp/mylinux目录下的:
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
答:
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
答:①使用stat查看文件的元数据
File:文件名;Blocks:块;IO Block:IO块;Device:设备;Access(第一个):权限;Uid:创建者id;Gid:归属组id;Access(第二个):最近访问;modify:最近修改;change:最近改动
②修改文件的时间戳信息,touch -t命令
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
答:定义命令别名可用alisa命令实现
注:alias设置的命令别名只对当前SHELL起作用,退出后或者切换环境变量后失效
可用管道符在命令中引用另一个命令的执行结果
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
答:
[root@csd var]# ls -d /var/l*[a-z]
/var/l%012lly /var/l0lly.txt /var/lib /var/local /var/lock /var/log
注:命令中的*是表示任意字符的意思
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
答:
[root@csd /]# ls -d /etc/[0-9]*[^0-9]
/etc/3test
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
答:#ls -d /etc/[^a-zA-Z][a-zA-Z]*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-08-06-09-32-22。
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
答:cp -a /etc/p*[^0-9] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
答:cp -a /etc/*.d /emp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
答:cp -a /etc/[lmn]*.conf /tmp/mytest3
本文出自 “时光之书” 博客,谢绝转载!