Linux上的文件管理类命令和bash 的基础特性及正则表达式

来源:互联网 发布:51单片机蓝牙模块 编辑:程序博客网 时间:2024/05/16 13:04

文件处理类:
1、ls:
命令功能: 显示目录下的文件
语法:
-a # 显示所有文件, 包括隐藏文件
-l # 显示文件详细信息
-d # 查看目录属性信息
2、 cd:
命令功能: 切换目录
语法:
几个特殊用法:
cd / # 切换到根目录
cd .. # 回到上一级目录(回到父目录)
cd - # 回到上次切换时的目录
3、pwd:
命令功能: 显示当前所在的工作目录
语法:
pwd # 直接输入即可
4、touch:
命令功能: 创建空文件, 或修改文件时间戳
语法:
-a # 只更改存取时间
-m # 只更改修改时间
-t # 更改为自定义时间戳
5、 mkdir:
命令功能: 创建新目录
语法:
-p # 创建多级目录
6、cp:
命令功能: 复制文件或目录
语法:
-a # 复制所有文件
-R # 复制目录
7、 mv:
命令功能: 移动文件或目录, 或重命名
语法:
mv [源文件或目录] [目的路径或名称]
8、 rm:
命令功能: 删除文件或目录
语法:
rm [-rf] [文件或目录]
-r # 删除目录
-f # 强制删除不提示
9、 cat:
命令功能: 显示文件内容
语法:
cat [文件名]
10、more:
命令功能: 分页显示文件内容
语法:
more [文件名]
空格显示下一页
Enter 显示下一行
q 退出

11、 head:
命令功能: 显示文件前几行
语法:
-num # 显示文件的前num行
12、tail:
命令功能: 显示文件后几行
语法:
-num # 显示文件的后num行
13、 ln:
命令功能: 创建一个链接文件
语法:
-s # 创建软连接
硬链接和软链接的区别:
硬链接:
创建的文件inode号一样, 即说明这两个文件是同一个文件, 修改任何一个文件都是修改这个文件. 删除任意一个文件, 不会影响到另外一个文件
软链接:
创建一个指向源文件的链接文件, 打开软链接时会打开源文件, 但源文件被删除后, 该链接文件将失效 (软链接文件的inode号不同)
ln命令不能对目录创建硬链接, 但是能对目录创建软链接
硬链接不能跨文件系统, 软链接可以跨文件系统
文件权限管理类:
1、 chmod:
命令功能: 更改文件或目录的权限
语法:
user, group, other(所有者, 所属组, 其他人)
{+-} # 对当前目录的权限的添加, 减少
{rwx} # r值读权限, w指写权限, x指执行权限
421 # r对应数字4, w对应数字2, x对应数字1
文件权限的意义
2、 chown:
命令功能: 更改文件或目录的所有者
语法:
chown [用户] [文件或目录]
3、 chgrp:
命令功能: 更改文件或目录的所属组
语法:
chgrp [组名] [文件或目录]
文件搜索类:
1、 which:
命令功能:显示系统命令所在的目录
语法:
which [命令名称]
2、 find:
命令功能: 查找文件或目录
语法:
-name # 根据关键字来查找
-mtime # 根据文件的修改时间来查找文件
-user # 根据所有者来查找文件
-group # 根据所属组来查找文件
3、locate:
命令功能: 查找文件或目录(通过搜索数据库来查找, 需要和updatedb命令配合使用
语法:
在使用locate的前提是要用updatedb命令创建文件的搜索数据库, 因为数据库更新时间的原因, 一般新创建的文件不会被locate搜索到
4、grep:
命令的功能: 在文件中搜寻字符串匹配的行并输出
语法:
-i # 搜索的时候忽略大小写
文件帮助类:
1、 man:
命令的功能: 查看文件或命令的帮助信息
语法:
man [1-9] [命令或配置文件]
2、 info:
命令的功能: 获取关键字的帮助信息
语法:
info [任何关键字]
3、 whatis:
命令的功能: 获取索引的简短说明信息
语法:
whatis [任何关键字]
文件压缩解压类:
1、 gzip:
命令的功能: 压缩文件(不能压缩目录), 且不保留源文件
语法:
-d # 解开压缩文件(等于gunzip命令)
-r # 递归处理, 将指定目录下的文件及子目录一并处理
-t # 测试压缩文件是否正确
-v # 显示指令执行过程
2、gunzip:
命令的功能: 解压缩.gz文件
语法:
-l # 显示压缩文件的相关信息
-r # 递归处理
-v # 显示执行执行过程
3、tar:
命令的功能: 打包目录
语法:
-z # 打包同时压缩
-x # 解压缩(不可与-c一起用)
-c # 产生.tar打包文件(不可与-x一起用)
-v # 显示打包时的详细信息
-f # 指定压缩后的文件名

常用的方式
tar -zcvf dir1.tar.gz dir1 # 打包并压缩目录
tar -zxvf dir1.tar.gz # 解压目录
4、zip:
命令的功能: 压缩文件或目录(会保留源文件)
语法:
-r 压缩目录
5、 unzip:
命令的功能: 解压缩文件或目录
语法:
unzip [压缩文件]
6、 bzip2:
命令的功能: 产生.bz2格式的压缩文件
语法:
-k # 压缩后保留源文件
7、bunzip2:
命令的功能: 解压缩.bz2格式的压缩文件
语法:
-k # 解压缩后保留源文件
Bash
1. 命令的执行状态返回值
在shell中, 每执行一次命令, 都会产生一个命令返回值, 保存在bash的特殊环境变量 ?.,:echo?
查看的命令返回值有多种结果, 但只分为两类:
1. 状态返回值为0, 表示命令执行成功
2. 状态返回值为1-255, 表示命令有错误
2. 命令行展开
~: 展开结果为用户的家目录
{}: 可以承载一个逗号分割的路径列表, 自动展开成为多个路径

创建/tmp目录下的 a_c, a_d, b_c, b_d

[root@cwg ~]# touch {a,b}_{c,d}
[root@cwg ~]# ls
a_c a_d b_c b_d

创建/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

[root@cwg~]#mkdir-p/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丶 文件元数据
在linux系统中, 每一个目录或文件都有一个索引节点相对应, 而在索引节点表中包含文件系统所有的文件列表, 每个索引节点的表中, 包含有文件的信息(元数据), 每个表中包含的信息有:
文件类型, 权限, UID, GID
链接数
文件大小和时间戳
指向磁盘上数据块的指针
有关文件的其他数据
查看一个文件元数据的方法:
[root@cwg etc]# stat services
File: `services’
Size: 641020 Blocks: 1256 IO Block: 4096 regular file
Device: 9161h/37217d Inode: 80498808 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-09-17 10:46:13.736003841 -0400
Modify: 2013-10-02 05:06:18.000000000 -0400
Change: 2016-09-17 10:46:15.956637121 -0400

修改一个文件的时间戳:

touch [-amt] [文件]
-a # 只更改存取时间
-m # 只更改修改时间
-t # 更改为自定义时间戳
4. 定义文件别名
在linux中, alias命令用来定义一个命令的别名信息, 若要永久定义别名信息, 则需要将定义信息写入到 /etc/aliases 配置文件中

给ls -l 取别名:

alias lsl=’ls -l’
5. 使用管道符引用命令输出结果
所谓管道符, 就是”|”, 它可以引用前面的命令的输出结果并给后面的命令使用.

管道举例:

[root@cwg ~]# cat /etc/inittab | grep id
id:3:initdefault:
6. 显示/var目录下以 l 开头, 以一个小写字母结尾, 且中间至少出现一位数字(可以有其他字符)的文件或目录
[root@cwg ~]# ls -d /var/l*[0-9]*[[:lower:]]
7. 显示/etc目录, 以任意一个数字开头, 且以非数字结尾的文件或目录
[root@cwg ~]# ls -d /etc/[0-9]*[^0-9]
8. 显示/etc目录下, 以非字母开头, 后面跟了一个字母一级其他任意长度任意字符的文件或目录
[root@cwg ~]# ls -d /etc/[^a-z][a-z]*
9. 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@cwg ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
10. 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
[root@cwg ~]# mkdir /tmp/mytest1
[root@cwg ~]# cp -r /etc/p*[^0-9]/tmp/mytest1
11. 复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
[root@cwg ~]# mkdir /tmp/mytest2
[root@cwg ~]# cp -r /etc/*.d /tmp/mytest2
12. 复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
[root@cwg ~]# mkdir /tmp/mytest3
[root@cwg ~]# cp /etc/[lmn]*.conf /tmp/mytest3

0 0
原创粉丝点击