Linux下的简单文件管理
1.文件管理
1.1 常用命令行
touch:新建文件,修改文件时间戳。时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。它的提出主要是为用户提供一份电子证据,以证明用户的某些数据的产生时间。
`
touch file1 file2... 建立空文件`
`touch file 把文件的时间同步到当前的时间`
`touch -t YYYYMMDDHHmm file 把文件时间更改到指定时间`
mkdir: 意为make directory
`mkdir dir1 dir2 建立空目录`
`mkdir -p test/redhat/Linux 建立多层目录`
rm: 删除文件或目录
`rm file1 file2 删除文件有提示`
`rm -f file 强制删除文件不提示`
`rm -r dir1 dir2 删除目录`
`rm -rf dir 强制删除目录不提示`
注意:-r表示重复迭代的过程,删除所有,-i表示id。
cat: 显示文件的全部内容
`cat file`
`cat -b file 显示文件内容并显示行号,不显示空行的行号`
`cat -n file 显示文件内容并显示行号`
head: 查看文件前多少行
`head westos 默认显示文件前10行`
`head -n westos n代表number,显示文件的前n行`
tail: 查看文件的后多少
`tail westos 默认查看文件的后10行`
`tail -n westos n代表number,显示文件的后n行`
less: 分页浏览
`less westos 进入到less模式查看westos`
less模式中 <上> <下> 逐行查看文件内容
逐页查看文件内容
/ 关键词 搜索关键词 n 向下匹配 N 向上匹配
有less模式进入到vim 编辑完成:wq退出返回less
在less中 退出
cp: 复制文件
`cp 文件 目的地文件`
`cp 文件1 文件2 目的地文件`
`cp -r 目录1 目录2`
复制原理:
按照源文件建立新文件
mv: 移动文件,重命名
`mv file1 file2 dir`
`mv dir dir1 dir`
`mv file 不存在的file 给file文件重命名`
移动原理:
相同设备分区的文件移动是重命名过程
不同分区的文件移动是建立和删除的过程
`ls -i file 查看文件节点号`
file: 文件类型的查看
`file westos 查看westos的真实类型`
wc: 文件容量统计
`wc -l 行数`
`wc -m 字符数`
`wc-w 单词数`
`wc-c 字节数`
1.2 编辑器的使用
1.2.1 vim编辑器
vim file 进入到vim的浏览模式
注意:浏览模式不能编辑文件,在浏览模式中按i进入插入模式,在vim中鼠标不能控制光标,用上下左右移动光标,按esc课退出插入模式,按:wq保存更改,按:q 当vim打开文件后未作任何操作可以直接退出,按:q! 当vim打开文件后修改文件内容但不想保存可以强制退出。
vim异常退出:
当vim编写文件时,在未保存更改内容时被强制关闭
vim出现异常:
0:只读打开文件
E:继续编辑
R:恢复未保存内容编辑
D:删除.swp文件进入编辑
Q:退出当前文件编辑
A:退出vim程序
vim崩溃正确做法:使用D删除.swp文件进入编辑
vim同时打开多个文件:
vim -o westos1 westos2 上下模式打开两个文件,ctrl+w 上/下 来转换控制窗口
vim -p westos1 westos2 左右模式打开两个不同的文件。输入“:tabn”,进入到下一个窗口。输入:“:tabp”,进入到上一个窗口。注意这里是冒号加英文字母,不是tab键和字母n。
1.2.3 gedit图形文本编辑器
gedit file file1... 编辑file file1
gedit在使用的时候必须要有图标
file file1可以不存在
1.3 Linux中文件的寻址及文件操作
1.3.1 Linux系统的结构
核心思想:Linux中的一切都是文件。
rm -rf /*:删库跑路操作
FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数Linux版本采用这种文件组织形式。
1.3.1.1 根目录(/)
根目录 (/)是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机、还原、系统修复等操作有关。
因此 FHS 标准建议:根目录(/)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。如此不但性能较好,根目录所在的文件系统也比较不容易发生问题。
1.3.1.2 系统二级目录
/bin: 主要放置系统常规命令,即:**单用户维护模式下还能被操作的命令**。/bin下的命令可以在root,普通用户下使用。如:cat,chmod,date,chown,mv,mkdir,cp,bash等常规命令。
/sbin: 主要放置系统管理命令。**存放需要系统管理员及其他需要root权限来执行的命令**。
/dev: 驱动设备目录。**任何设备与接口设备都是以文件的形式存在于这个目录当中的**。访问该目录下的文件,即为访问某个设备。
/home: 普通用户家目录集合。在你创建一个一般用户账号时,默认的用户主文件夹都会规范到这里来。**~ 代表当前用户的主文件夹**。**在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的**。
/root: 超级用户家目录,系统管理员的主文件夹。
/lib64: 64位函数库。
/lib: 系统函数库。放置的则是在开机时会用到的函数库,以及在 /bin 或 /sbin 下面的命令会调用的函数库而已。
/proc: 虚拟文件系统目录。存放进程信息,系统识别的硬件信息。它放置的数据都是在内存当中,例如系统内核、进程、外部设备以及网络状态等。**因为这个目录下的数据都是在内存当中的,所以本身并不占任何硬盘空间**。存放于内存之中,不占用硬盘空间。
/run: 当前运行的硬件和系统模块。
/srv: service的缩写。该目录存放一些服务启动之后需要提取的数据。
/var: 存放变量系统数据,包括缓存,登录文件等。
/tmp: 系统临时文件存放目录。
/mnt: 系统设备挂载点。如果挂载额外的设备,一般建议放置到这个目录。
/media: 媒体设备暂挂区。软盘,光盘,DVD一般暂时挂载于此。
/etc: 系统大多数程序的配置目录,例如人员的账号密码文件。一般只有root权限才有权力修改。
/opt: 第三方软件安装的位置。
/boot: 系统的启动分区,主要存放开机会使用到的文件,如Linux内核文件和开机所需要的配置文件。
/sys: 内核设定目录,虚拟的文件系统,主要记录与内核相关的信息,不占硬盘容量。
/usr: Unix Software Resource 的缩写,重要性仅次于/。重要的系统资源多处于此目录。
/usr/bin/:绝大部分的用户可使用命令都放在这里
/usr/include/:C/C++等程序语言的头文件(header)与包含文件(include)放置处
/usr/lib/:包含各应用软件的函数库、目标文件以及一些不被一般用户惯用的执行文件或脚本
/usr/local/:系统管理员在本机自行安装下载的软件建议安装到此目录
/usr/sbin/:非系统正常运行所需的系统命令
/usr/share/:放置共享文件的地方
/usr/src/:一般源码建议放置到这里
注意:根目录中为系统层次,/usr目录中为软件层次
1.3.2 Linux文件寻址的命令
**pwd**: 显示当前的工作目录。
**cd**: 切换当前的工作目录。
cd ~- == cd -
..表示当前用户的上一级目录
**ls**: 显示文件信息。
ls 显示当前目录中文件的名称
`ls file 显示指定文件名称`
ls dir 显示指定目录中内容的名称
ls -d dir 显示目录本身的名称
ls -l file 显示文件属性
ls -l dir 显示目录中内容的属性
ls -ld dir 显示目录本身属性
ls -a dir 显示目录中所有文件名称,包括隐藏文件
ls -s 显示文件大小
ls -r dir 递归显示目录中的内容
1.3.3 Linux中的文件批量处理
\* ##匹配0~任意字符
? ##匹配单个字符
[[:alpha:]] ##匹配单个字母
[[:lower:]] ##匹配单个小写字母
[[:upper:]] ##匹配单个大写字母
[[:digit:]] ##匹配单个数字
[[:alnum:]] ##匹配单个数字或字母
[[:punct:]] ##匹配单个符号
[[:space:]] ##匹配单个空格
字符集合表示方法
[] ##条件是或者关系是模糊匹配,对象和几个对比匹配就操作
##**[1-10]** 1到10 **[!d-f]**|**[^d-f]** 除了d-f以外
{} ##点名机制,经精确指定集合中的每一个元素
##{1..10} 1-10 {a..c} a-c
~username ##指定的用户家目录
"~+" = "." ##当前目录
~- ##当前目录之前所在目录
.. ##当前目录的上级目录
一些其他的注意点:
1.模糊匹配:有就有,没有就没有。
精准匹配:必须要有,不能没有。
2.|:前面的输入是后面的输出,以此类推得到结果。