1、Linux上文件/目录相关命令有哪些?
-
1)目录管理类命令:mkdir、rmdir
-
(1)mkdir:make directorise 创建文件夹
使用格式: mkdir [OPTION]... DIRECTORY... 常用选项: -p:自动按需创建父目录 -v、verbose:显示详细过程 -m MODE:创建目录时直接给定权限,否则即为umask配置的默认权限;
-
(2)rmdir:remove empty directorise 删除空目录
使用格式: rmdir [OPTION]... [DIRECTORY]... 常用选项: -p:删除某个目录后,如果其上一级目录为空,则一并删除; -v:显示操作过程; blob.png 注:因当前目录不是空目录,所以操作.(当前目录)时提示失败。
-
2)文件查看类命令:cat、tac、head、tail、more、less
-
(1)分屏查看命令:more与less
使用格式:more|less FILE 注:more命令翻屏至文件尾部后自动退出
-
(2)head命令:查看文件的前n行,默认为10行
使用格式:head [OPTIONS] FILE
常用选项: -n NUM:NUM表示要查看的行数; -NUM:NUM表示要查看的行数;
-
(3)tail命令:查看文件的后n行,默认为10行
使用格式:tail [OPTIONS] FILE
常用选项: -n NUM:NUM表示要查看的行数; -NUM:NUM表示要查看的行数;
-
(4)cat与tac
使用格式:cat|tac FILE
-
3)文件管理工具:cp、mv、rm
-
(1)cp命令:复制文件或目录
常用选项: -i,--interactive:交互式复制,即覆盖前提示用户确认; -f,--force:强制覆盖目标文件; -R,-r,-recursive:递归复制目录; -d:复制符号链接文件本身,并不复制其指向的源文件; -a:-dR --preserve=all,archive,用于实现归档 -preserv= mode 权限 owership 属主与属组 timestamps 时间戳 context 安全标签 xattr 扩展属性 link 符号链接 all 上述所有属性 实例: 将文件file1复制成文件file2 cp file1 file2 采用交互方式将文件file1复制成文件file2 cp -i file1 file2 将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式 cp -f file1 file2 同时将文件file1、file2、file3与目录dir1复制到dir2 cp -R file1 file2 file3 dir1 dir2
-
(2)mv命令:是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
常用选项: -i:交互式 -f:强制覆盖 实例1:将文件file1改名为file2,如果file2已经存在,则询问是否覆盖 mv -i log1.txt log2.txt 实例2:将文件file1改名为file2,即使file2存在,也是直接覆盖掉 mv -f log3.txt log2.txt
-
(3)rm命令:为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
rm [OPTION]... FILE... 常规选项: -i:交互式执行 -f:强制执行,不提示任何信息 -r:递归执行 删除目录:rm -rf /PATH/TO/DIR 危险操作:rm -rf / 、rm -rf /* 建议不用的不文件不要直接删除,可移动至某个专用的目录(模拟回收站)
2、bash的工作特性值命令执行状态返回值和命令行展开;
-
通过 $? 获取上一次命令执行的结果,0表示成功,非0表示失败。
-
命令行展开
-
花括号展开:{ }
在非引号内的内容,如果用花括号包括,而且里面用逗号分隔(至少包含一个逗号,可以是空内容),这样花括号里的内容会被展开成用空格分开的一个列表,花括号前后可以紧随前缀和后缀
如:
echo {a,b,c} echo hello,{world,pig}
-
波浪号展开:~
从波浪号~到第一个未被引号包含的斜杠/(如果没有斜杠,则全部算上),作为波浪号前缀。 在波浪号后面的字符串作为一个可能的登录名:如果为空,被展开成该用户的HOME变量,如果HOME变量未设置,则用用户执行shell的主目录替换。如果不为空,则按照该登录名的主目录替换。
如:
echo ~ # 显示$HOME内容 echo ~root # 显示root用户主目录
-
Shell参数和变量展开
用$符号开始,后面接着变量名或者花括号括起来的变量名,如果是花括号内以叹号开头,那么就是变量名本身。 如:
echo $PWD # 显示PWD对应的值 echo ${PWD} # 显示PWD对应的值
3、使用命令行展开功能完成以下练习:
-
(1)创建/tmp目录下的:a_c,a_d,b_c,b_d
mkdir -pv /tmp/{a,b}_{c,d}
-
(2)创建/tmp/mylinux目录下的如下目录:
实现命令: mkdir -pv /tmp/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}} 实现效果: [root@localhost ~]# tree /tmp/mylinux/ /tmp/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、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
-
(1)文件的元数据:
任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,如访问权限、文件拥有者、文件数据块的分布信息(inode...)、文件时间戳信息等。
-
(2)查看文件的元数据
stat FILE #使用stat命令可以查看文件或目录的元数据
-
(3)修改文件的时间戳信息:
touch命令:可以用于改变access time和modity time touch [OPTIONS]... FILE... -c:指定文件,当文件不存在时不予创建 -a:仅改变access time -m:仅改变modify time -t STAMP: [[CC]YY]MMDDhhmm[.ss]
5、如果定义命令的别名,如何在命令中引用另一个命令的执行结果?
-
(1)如何定义命令的别名:
alise NAME='COMMAND' 注意:此方法仅对当前shell进程有效
-
(2)命令中引用另一个命令的执行结果:
使用`COMMAND` 如: ls -l `find /etc -name "pa*"`
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可有其它字符)的文件或目录;
ls /var/ | grep "^l.*[0-9].*[[:lower:]]$"
7、显示/etc目录下,以任意数字开头,且以非数字结尾的文件或目录;
ls /etc/ | grep "^[0-9].*[^0-9]$"
8、显示/etc目录下,以非字母开头,后面跟一个字母以及其它任意长度任意字符的目录或文件;
ls /etc/ | grep "^[^[:alpha:]][[:alpha:]].*"
9、在/tmp/目录下创建以tfile开头,后面跟上当前日期和时间的文件,文件名如:tfile-2016-05-27-09-32-22;
mkdir /tmp/tfile-$(date "+%Y-%m-%d-%H-%M-%S")
10、复制/etc目录下所有以p开头、以非数字结尾的文件或目录至/tmp/mytest1目录中;
cp -r /etc/p*[^0-9] /tmp/mytest1/
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中;
cp -r /etc/*\.d /tmp/mytest2/
12、复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中;
cp -r /etc/[lmn].\.conf /tmp/mytest3/
原创文章,作者:N22-江西-H随风,如若转载,请注明出处:http://www.178linux.com/42475
评论列表(1条)
以N开头或者以N结尾,使用行首或行末牟定来实现。答题比较认真,继续保持。