赞
踩
在学习Linux文件管理基本命令之前,需要先了解一下Linux目录结构,可以参考我的另外一篇博客:Linux文件目录结构
然后需要知道的就是绝对路径和相对路径:
绝对路径:
以正斜杠开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
例如:/home/zhangsan
相对路径:
不以斜线开始
指定相对于当前工作目录或某目录的位置
可以作为一个简短的形式指定一个文件名
例如:home/shangsan
用法:
pwd [OPTION]...
常用选项:
-P 显示真实物理路径
-L 显示链接路径(默认)
示例:
1、显示当前工作路径
[root@centos7 ~]#pwd
/root
用法:
cd [OPTION] 目录
常用选项:
-P 切换到真实物理路径
~ 切换到家目录
- 切换到上一次所在的目录
示例:
1、切换到/root/data
cd /root/data
2、切换到当前用户的家目录(例如,当前用户是zhangsan)
cd /home/zhangsan
另外一种方式
cd ~
用法:
ls [OPTION]... [FILE]...
常用选项:
-a 包含隐藏文件
-l 显示额外的信息
-R 目录递归通过
-ld 目录和符号链接信息
-1 文件分行显示
–S 按从大到小排序
–t 按mtime排序
–u 配合-t选项,显示并按atime从新到旧排序
–U 按目录存放顺序显示
–X 按文件后缀排序
示例:
1、显示当前工作目录下的文件
ls
2、显示/目录下的文件
ls /
3、显示/root下所有文件的详细信息
ls -al
4、显示/root目录的详细信息
ls -ld /root
用法:
touch [OPTION]... FILE...
常用选项:
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t 指定atime和mtime的时间戳,格式:[[CC]YY]MMDDhhmm[.ss]
-c 如果文件不存在,则不予创建
示例:
1、创建test.txt文件
touch test.txt
用法:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-p 复制文件时保持源文件的所有者、权限信息及时间属性
-d 如果复制的源文件是符号链接,那么仅复制符号链接本身,而且保留符号链接所指向的目标文件或目录
-r 递归复制目录,即复制目录上的所有层级的子目录及文件
-a 等同于上面的p、d、r这3个选项功能的总和
-i 如果文件存在,则提示是否覆盖原有文件
-f 强制,如果文件存在,直接覆盖原有文件,不会提示
示例:
1、复制/etc/fstab到/data目录下
cp /etc/fstab /data
2、复制/etc/fstab到/data目录下并改名为fstab.bak
cp /etc/fstab /data/fstab.bak
3、复制/etc到/tmp目录下
cp -r /etc /tmp
4、复制/etc到/tmp目录下并保留原有的文件权限及时间属性
cp -a /etc /tmp
用法:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i 如果文件存在,则提示是否覆盖原有文件
-f 强制,如果文件存在,直接覆盖原有文件,不会提示
-b 目标存在,覆盖前先备份
示例:
1、移动/root/haha.txt到/tmp下
mv /root/haha.txt /tmp
2、移动/root/haha.txt到/tmp下并改名为xixi.txt
mv /root/haha.txt /tmp/xixi.txt
用法:
rm [OPTION]... FILE...
常用选项:
-i 删除前提示是否真的要删除(安全)
-f 强制删除
-r 递归删除,主要用来删除目录
示例:
1、删除/tmp/xixi.txt
rm /tmp/xixi.txt
注意:
rm是一条危险的命令,慎用,最好不用。
rm -rf非常危险,容易引发生产环境“血案”
用法:
mkdir [OPTION]... DIRECTORY...
常用选项:
-p 当父目录不存在时,可以自动创建父目录
-v 显示详细信息
-m 创建目录时直接指定权限
示例:
1、创建目录/backup
mkdir /backup
2、在/backup目录下创建a目录,在a目录下创建b(一步到位)
mkdir -p /backup/a/b
用法:
rmdir [OPTION]... DIRECTORY...
常用选项:
-p 递归删除父空目录
-v 显示详细信息
示例:
1、删除/backup
rmdir -p /backup/a/b
用法:
basename NAME [SUFFIX]
basename OPTION... NAME...
示例:
1、显示/etc/sysconfig/network的基名
basename /etc/sysconfig/network
2、显示/etc/sysconfig/network的目录名
dirname /etc/sysconfig/network
用法:
tree [option] DIRECTORY
常用选项:
-d 只显示目录
-L 指定显示的层级数目
示例:
1、显示/root目录树
tree /root
2、显示/root目录树,显示2级
tree -L 2 /root
注意:
如果提示:
bash: tree: command not found...
需要安装tree包
yum -y install tree
用法:
file [OPTION] FILE...
常用选项:
-b 列出文件辨识结果时,不显示文件名称
-f filelist 列出文件filelist中文件名的文件类型
-F 使用指定分隔符号替换输出文件名后默认的“ :”分隔符
-L 查看对应软链接对应文件的文件类型
示例:
1、显示/usr/bin/ls文件类型
file /usr/bin/ls
示例:
1、在/tmp目录下创建user01-user10目录
[root@centos7 ~]#mkdir /tmp/user{01..10}
[root@centos7 ~]#ls a
user01 user02 user03 user04 user05 user06 user07 user08 user09 user10
2、创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b
[root@centos7 ~]#mkdir -p /tmp/a{1/{a,b},2}
[root@centos7 ~]#tree /tmp
/tmp
├── a1
│ ├── a
│ └── b
└── a2
4 directories, 0 files
3、在/tmp目录下创建目录:x_y, x_z, q_y, q_z
[root@centos7 ~]#mkdir /tmp/{x,q}_{y,z}
[root@centos7 ~]#ls /tmp
q_y q_z x_y x_z
文件有两类数据:元数据(文件的属性)和文件内容
元数据主要有以下信息:
File:文件名
Size:文件大小
Blocks:当前文件所占用的块大小
IO Block:每个块的大小
File Type:文件类型
Device:使用的设备
Inode:索引号
Links:链接数
Access:文件权限
Uid:文件属主ID
Gid:文件属组ID
Access:访问时间,读取文件内容就会刷新一次
Modify:修改时间,文件内容发生变化就会刷新一次
Change:改变时间,文件元数据发生变化就会刷新一次,例如:更改了权限
stat命令可以查看文件的元数据
[root@centos7 ~]#stat test
File: ‘test’
Size: 50 Blocks: 0 IO Block: 4096 directory
Device: 802h/2050d Inode: 36346598 Links: 6
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-10-12 17:24:35.159201016 +0800
Modify: 2019-10-12 17:24:32.936200864 +0800
Change: 2019-10-12 17:24:32.936200864 +0800
Birth: -
修改文件的时间戳
可以使用前面介绍的touch命令修改文件的时间戳
示例:
修改文件的访问时间
[root@centos7 ~]#touch -a 201910011800 test
[root@centos7 ~]#stat test
File: ‘test’
Size: 50 Blocks: 0 IO Block: 4096 directory
Device: 802h/2050d Inode: 36346598 Links: 6
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-10-12 18:00:44.965349260 +0800
Modify: 2019-10-12 17:24:32.936200864 +0800
Change: 2019-10-12 18:00:44.965349260 +0800
Birth: -
注意:可以观察到文件的改变时间也发生变化了,因为修改了文件的时间戳,也修改了文件的元数据,所以当然会变化。
命令替换主要有$()和``
示例:
1、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch /tmp/tfile-`date +%F-%H-%M-%S`
ls /tmp/
tfile-2019-10-12-18-35-27
也可以使用$()
touch /tmp/tfile-$(date +%F-%H-%M-%S)
ls /tmp
tfile-2019-10-12-18-36-34
* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~zhangsan 用户zhangsan家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围
[a-z] 字母
[A-Z] 字母
[abc] 匹配列表中的任何的一个字符
[^abc] 匹配列表中的所有字符以外的字符
预定义的字符类
[:digit:] 任意数字,相当于0-9
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:alpha:] 任意大小写字母
[:alnum:] 任意数字或字母
[:blank:] 水平空白字符
[:space:] 水平或垂直空白字符
[:punct:] 标点符号
[:print:] 可打印字符
[:cntrl:] 控制(非打印)字符
[:graph:] 图形字符
[:xdigit:] 十六进制字符
示例:
1、查看/root目录下以a开头的文件或目录
ls /root/a*
2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
mkdir /tmp/mytest1
cp -a /etc/p*[^0-9] /tmp/mytest1
用法:
useradd [options] LOGIN
常用选项:
-u 指定用户的uid
-o 配合-u 选项,不检查UID的唯一性
-g 指明用户所属基本组,可为组名,也可以GID
-c 用户的注释信息
-d 以指定的路径(不存在)为家目录
-s 指明用户的默认shell程序
-G 为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户
示例:
1、创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
useradd -u 5001 -d /tmp/tom -s /bin/zsh -G jack tom
用法:
usermod [options] LOGIN
常用选项:
-u 新UID
-g 新主组
-G 新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
-s 新的默认SHELL
-c 新的注释信息
-d 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
-l 新的名字
-L lock指定用户,在/etc/shadow 密码栏的增加 !
-U unlock指定用户,将 /etc/shadow 密码栏的 !拿掉
-e YYYY-MM-DD: 指明用户账号过期日期
-f 设定非活动期限
示例:
1、更改tom用户的uid为2000,主组为root组
usermod -u 2000 -g root tom
用法:
userdel [options] LOGIN
常用选项:
-r 删除用户家目录
示例:
1、删除用户tom并删除家目录
userdel -r tom
用法:
passwd LOGIN
1、为用户zhangsan设置口令
passwd zhangsan
**注意:**如果passwd后面没有加用户,更改的是当前登录用户密码。
用法:
id [OPTION]... [USER]
常用选项:
-u 显示UID
-g 显示GID
-G 显示用户所属的组的ID
-n 显示名称,需配合ugG使用
示例:
1、显示当前登录用户的id信息
id
2、显示用户zhangsan的id信息
id zhangsan
用法:
su [options...] [-] [user [args...]]
切换用户的方式:
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
注意:
root su切换其他用户无须密码;非root用户切换时需要密码
常用选项:
-c 直接以某个用户的身份执行某条命令
-l 相当于su - UserName
示例:
1、以zhangsan的身份执行ls /命令
su - zhangsan -c "ls /"
2、切换到用户zhangsan
su - zhangsan
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。