您的位置:首页 > 运维架构 > Shell

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

2016-09-25 23:55 495 查看
文件处理类:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息