1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
ls |
列出目录 |
cd |
切换目录 |
pwd |
显示当前所处的目录 |
mkdir |
创建目录 |
rmdir |
删除空目录 |
rm |
删除目录或文件 |
cp |
复制文件或目录 |
du |
列出目录占用磁盘空间的大小 |
df |
用于报告已挂载的文件系统的总容量、使用量、剩余容量 |
mv |
移动目录或文件。衍生出的用法,例如:修改文件名 |
ls用法:
ls [选项] [文件]
-a 查看目录下所有文件
-r 递归查看
-l 查看详细信息
cd用法:
cd [目录或特殊符号]
特殊符号表格
. |
当前目录 |
.. |
切换到上一级目录 |
- |
切换到上一次的目录 |
x* |
x代表目录一x开头(x不只代表一个字符),切换到以x开头的目录(目录不一定要唯一)星号代表多个字符 |
x? |
x代表目录一x开头(x不只代表一个字符),切换到以x开头的目录(目录一定唯一),问号只代表一个字符 |
pwd用法:
pwd 直接使用显示当前路径
mkdir用法:
直接跟名字或者路径 -p参数 递归创建
rmdir用法:
跟上名字或路径 -p参数 递归删除
rm用法:
rm [参数] [路径或文件]
-r 强制删除
-f 删除不提示
-rf 强制删除并且不提示
cp用法:
cp [参数] [文件] [目标文件或路径]
-p 连同权限一起复制
-u 覆盖目标文件
mv用法:
mv [参数] [文件] [目标文件或路径]
-b 先备份再移动
-f 不提示
du/df用法:
du/df [参数] [路径]
-h 使用常用格式输出
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
bash 的命令执行结果状态有两种:成功/失败, bash使用特殊变量$?来保存最近一条命令的执行状态结果。0为成功,1-255代表各种失败。
bash的命令行展开:用{}表示可承载一个以逗号分隔的列表,并将其展开为多个路径
如:/tmp/{a,b}=/tmp/a, /tmp/b
/tmp/{a,b}/c= /tmp/a/c, /tmp/b/c
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
(1)mkdir /tmp/{a,b}{_c,_d}
(2)mkdir /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} -p
{}内表示是一级目录 第一个里面 {a,b}{_c,_d} 表示的a跟b与后面的_c _d相互组合
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
日志文件系统(journaling file
systems)可防止系统崩溃时导致的数据不一致问题。对文件系统元数据(metadata)的更改都被保存在一份单独的日志里,当发生系统崩溃时可以
根据日志正确地恢复数据。除此之外,日志使系统重新启动时不必进行文件系统的检查,从而缩短了恢复时间。
所以我们可以认为 文件的元数据就是数据的数据。元数据包含文件的权限,大小,拥有者,组以及修改时间等信息,可用ls -l命令查看。用touch命令修改时间戳信。
touch
【解释】
用于修改文件或目录的时间属性,包括存储时间、更改时间。如果文件不存在,则系统或建立一个新文件。
创建空文件(衍生出来的)
【问题】生产环境中为什么使用touch?
touch命令描述的是改变时间戳,那么我们为什么要改变时间戳?
如果你参加一个全球范围的开源项目,那么时间戳会变得很重要。编译源代码文件可能需要同一地区的时间戳。如果未统一,程序可能会编译失败。(有强迫症的同学也会用,看不得乱七八糟的时间)
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
使用alias定义个别名,alias aliasname = Command + option
使用管道引用另一个命令执行结果, 如 ps -ef |grep httpd
管道符 |
| |
可以把管道符前面的命令执行的结果传递给后面的命令使用 |
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls /var/l*[[:digit:]]*[[:lower:]]
这个题目涉及到了正则表达式的运用关于正则表达式
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在perl中就内建了一个功能强大的正则表达式引擎,还有java语言自带的。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
[:digit:]是表示一个有数字的字符 表示[:lower:] 一个小写字母的字符
补充:匹配符
* |
匹配所有的字符,包括0和一个字符 |
? |
只能匹配唯一的一个字符 |
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
ls /etc/[[:digit:]]*[^[:digit:]]
[^[:digit:]表示没有数字
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-08-06-09-32-22。
touch tfile-`date +%Y-%m-%d-%H-%M-%S
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
cp /etc/p*[^[:digit:]] /tmp/mytest1/
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
cp -r /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
cp /etc/[lmn]*.conf /tmp/mytest3/