目录
文件与路径
1、文件结构
2、基本概念
用户目录
登录信息
相对路径和绝对路径
绝对路径
相对路径
. 和 ..
文件权限
文件属主与属组
3、基本命令信息
ls命令
cd命令
pwd 命令
Linux基本命令一
mkdir 命令
2、touch 命令
rm 命令
rmdir 命令
mv 命令
cp 命令
cat命令
more 命令
less 命令
Linux基本命令二
head 命令
which 命令
whereis命令
locate命令
find命令
-exec
-xargs find
depth
chmod命令
chown命令
tar 命令
date命令
cal 命令
grep命令
ps命令
kill命令
Linux编辑器vim
1、vi与vim的简介
2、命令模式
3、输入模式
4、末行模式
5、vim 中批量添加注释
Linux网络
Linux网络配置文件
查看第一张网卡的网卡信息:
查看主机名文件:
DNS配置文件
防火墙设置:
Linux的软件安装
1、rpm软件安装包
rpm查询:
2、yum命令
Linux安装Python
1、下载Python官方源码文件
2、安装Python3.8
Linux安装MySQL
1、下载并安装MySQL官方的 Yum Repository
2、然后进行rpm的安装
3、启动MySQL
当我们输入ls / 可以查看更目录下的文件查看根目录下的系统文件
[root@localhost ~]# ls /
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
目录 | 说明 | 备注 |
---|---|---|
bin | 存放普通用户可执行的指令 | 即使在单用户模式下也能够执行处理 |
boot | 开机引导目录 | 包括Linux内核文件与开机所需要的文件 |
dev | 设备目录 | 所有的硬件设备及周边均放置在这个设备目录中 |
etc | 各种配置文件目录 | 大部分配置属性均存放在这里 |
lib/lib64 | 开机时常用的动态链接库 | bin及sbin指令也会调用对应的lib库 |
media | 可移除设备挂载目录 | 类似软盘 U盘 光盘等临时挂放目录 |
mnt | 用户临时挂载其他的文件系统 | 额外的设备可挂载在这里,相对临时而言 |
opt | 第三方软件安装目录 | 现在习惯性的放置在/usr/local中 |
proc | 虚拟文件系统 | 通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系统不重启,还是有很大几率能将数据找回来 |
root | 系统管理员主目录 | 除root之外,其他用户均放置在/home目录下 |
run | 系统运行是所需文件 | 以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据 |
sbin | 只有root才能运行的管理指令 | 跟bin类似,但只属于root管理员 |
srv | 服务启动后需要访问的数据目录 | |
sys | 跟proc一样虚拟文件系统 | 记录核心系统硬件信息 |
tmp | 存放临时文件目录 | 所有用户对该目录均可读写 |
usr | 应用程序放置目录 | |
var | 存放系统执行过程经常改变的文件 |
|
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录 下,具体在/var/log 目录下,另外mail的预设放置也是在这里
位于 /home/user,称之为用户工作目录或家目录,表示方式:
# 在home有一个user 这里就是之前创建的perfect123用户
[root@myLinux001 ~]# cd /home
[root@myLinux001 home]# ls
perfect123
# 使用~回到root目录,使用/是回到根目录下
[root@myLinux001 perfect123]# cd ~
[root@myLinux001 ~]#
[root@myLinux001 /]#
Linux的bash解析器终端用来显示主机名和当前用户的标识;
# root表示bai当前用户叫root(系统管理员账户)
# localhost表示当前使用的主机名叫localhost(没有设置系bai统名字的时候默认名称是localhost)
# / 表示你当前所处的目录位置 (这里的'/'表示你当前在根目录下)
从/目录开始描述的路径为绝对路径,如:
[root@myLinux001 ~]# cd /home/perfect
[root@myLinux001 ~]# cd /etc/sysconfig/network-scripts/
[root@myLinux001 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
从当前位置开始描述的路径为相对路径,如:
[root@myLinux001 ~]# cd ../../
[root@myLinux001 etc]# cd sysconfig/
[root@myLinux001 sysconfig]# cd ../../etc/
[root@myLinux001 etc]#
. 表示当前目录
.. 表示上一级目录,即父目录
# 从 / 根目录切换到 home目录
[root@myLinux001 /]# cd home
# 确认路径/home
[root@myLinux001t home]# pwd
/home
# 切换到当前目录cd . 目录无变化
[root@localhost home]# cd .
# 切换到当前目录cd .. 目录回到上一级根目录
[root@myLinux001 home]# cd ..
[root@myLinux001 /]#
(注意 根目录下的 . 和 .. 都表示当前目录)
访问用户
通过设定权限可以从以下三种访问方式限制访问权限:
1. 只允许用户自己访问(所有者) 所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件。
2.- 允许一个预先指定的用户组中的用户访问(用户组) 用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。
3.- 允许系统中的任何用户访问(其他用户) 用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是 other 用户类
访问权限
用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:
读权限(r) 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限 |
写权限(w) 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限 |
可执行权限(x) 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限 |
U,G,O
U=USER
G=GROUP
O=OTHERS
u就是用户权限
g就是文件所属组的权限
而O就是其他人的权限了
一般对文件使用ll 可查看其权限如何,权限主要分为三种:
r:可读,w:可写,x:可执行
比如 一个文件的权限为
-r-xr-x---
这是一个十位的,第一位代表了文件的类型,此处的-说明文件是一个
普通文件,2-4位是U的权限,5-7位是G的权限,8-10位是O的权限。
此处说明用户的权限为可写与可执行,组成员的为可读可执行,其他人
则没有任何权限。
我这边列一个表格,应该能表达的更清晰些:
- | - - - | - - - | - - - |
-普通文件d文件夹 | r(USER) | g(GROUP) | O(OTHERS) |
文件的类型 | 用户权限 | 文件所属组的权限 | 其他人的权限 |
对应的应算:
- | - | - |
4 | 2 | 1 |
可读 | 可写 | 可执行 |
比如645对应的就是
用户权限:可读 可写(4+2)
文件所属组的权限:可读(4)
其他人的权限:可读 可执行(5+1)
用到 ls -l 命令查看当前文件夹下详细信息,具体的命令和参数,后面会深入讲解
我们需要关注的是文件或目录的权限情况
l rwx rwx rwx
d r-x r-x r-x
# 首先第一个字母 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
[ d ] 表示目录
[ l ] 表示为链接文档(link file)
[ - ] 表示为文件
[ b ] 表示为装置文件里面的可供储存的接口设备(可随机存取装置)
[ c ] 表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
# 其次接下来的字符中,以三个为一组,且均为 [ rwx ] 的三个参数的组合
[ r ]代表可读(read)
[ w ]代表可写(write)
[ x ]代表可执行(execute)
[ - ]
# 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
此时问题来了那么这三组一样是有什么区分尼?
# 这里就涉及到刚才所描述的访问用户权限
# 所有者 所有者表示该文件的所有者
# 用户组 表示当前用户再同一组
# 其他用户 允许系统中的任何用户访问,系统内的其他所有用户就是 other 用户类
# 可以将这个权限进行类比,如我的篮球,
# 所有者表示的是我可以玩
# 用户组表示,我可以借给我同班同学玩
# 其他用户表示,我可以借给其他班的同学玩
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。
因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
[root@myLinux001 /]# ls -l
....
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
dr-xr-x---. 2 root root 196 Nov 11 07:48 root
...
drwx------. 3 perfect perfect 96 Nov 8 20:06 perfect
# 在以上实例中,perfect 文件是一个目录文件,属主和属组都为 perfect,属主有可读、可写、可执行的权限;与属主同组的用户无权限读写执行;其他用户也无权限读写执行
# 对于 root 用户来说,一般情况下,文件的权限对其不起作用。
常用组合
[1]查看文件详情:ls -l 或 ll
[2]增强对文件大小易读性,以人类可读的形式显示文件大小: ls -lh
[3]对文件或者目录进行从大到小的排序: ls -lhs
[4]查看当前目录下的所有文件或者目录,包括隐藏文件: ls -la
[5]只查看当前目录下的目录文件: ls -d .
[6]按照时间顺序查看,从上到倒下时间越来越近: ls -ltr
[7]查看文件在对应的inode信息:ls -li
作用:变换当前目录到dir。默认目录为home,可以使用绝对路径、或相对路径。
语法:cd [dir](路径)
# 跳到用户目录下
[root@myLinux001 home]# cd /home/perfect
[root@myLinux001 perfect]#
# 回到根目录
[root@myLinux001 perfect]# cd ~
[root@myLinux001 ~]#
# 跳到上次所在目录
[root@myLinux001 ~]# cd -
/home/perfect
[root@myLinux001 perfect]#
# 跳到父目录(也可以直接使用 cd ..)
[root@myLinux001 perfect]# cd ./..
[root@myLinux001 home]#
# 再次跳到上次所在目录
[root@myLinux001 home]# cd -
/home/perfect
[root@myLinux001 perfect]#
# 跳到当前目录的上两层
[root@myLinux001 perfect]# cd ../..
[root@myLinux001 /]#
# 把上个命令的最后参数作为dir
这里我们先将文件夹cd 到python2.7路径
[root@myLinux001 /]# cd /usr/include/python2.7/
[root@myLinux001 python2.7]#
# 这里使用cd ./..参数作为引子
[root@myLinux001 python2.7]# cd ./..
# 这里我们使用命令,重复最后一个命令参数,直到回到了根目录
[root@myLinux001t include]# cd !$
cd ./..
[root@myLinux001 usr]# cd ./..
[root@myLinux001 /]#
作用:可立刻得知目前所在的工作目录的绝对路径名称
语法:pwd [--help][--version]
参数说明:
--help 在线帮助。
--version 显示版本信息。
查看当前所在目录:
[root@myLinux001 /]# cd /home
[root@myLinux001 home]# pwd
/home
[root@myLinux001 home]#
作用:命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录
语法:mkdir [选项] 目录
命令功能:通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)
命令参数:
选项参数 | 完整参数 | 功能描述 |
---|---|---|
-m | --mode=模式 | 设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask |
-p | --parents | 可以是一个路径名称。 此时若路径中的某些目录尚不存在,加上此选项后, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; |
-v | --verbose --help --version | --verbose 每次创建新目录都显示信息 --help显示此帮助信息并退出 --version输出版本信息并退出 |
# 创建目录 正常使用无参数
[root@myLinux001 text.txt]# mkdir mydir
[root@myLinux001 text.txt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 9月 7 13:06 mydir
# 切换至mydir目录
[root@myLinux001 text.txt]# cd mydir/
# 参数-p 进行递归创建目录 使用参数 -p
[root@myLinux001 mydir]# mkdir -p text1/text2
# 切换至text2目录
[root@myLinux001 mydir]# cd text1/text2/
[root@myLinux001 text2]# pwd
/root/mydir/text1/text2
总结:# 使用参数 -p 可以创建多层路径文件目录
# 分别创建三个目录,并设置权限 使用参数 -m
[root@myLinux001 text2]# mkdir -m 777 exercise1
[root@myLinux001 text2]# mkdir -m 765 exercise2
[root@myLinux001 text2]# mkdir -m 654 exercise3
[root@myLinux001 text2]# ll
总用量 0
drwxrwxrwx. 2 root root 6 9月 7 13:22 exercise1
drwxrw-r-x. 2 root root 6 9月 7 13:23 exercise2
drw-r-xr--. 2 root root 6 9月 7 13:23 exercise3
总结:# 使用参数 -m 可以创建文件并设置文件的权限
注意(777,765,654 其中每一个数字,分别表示User、Group、及Other的权限。r=4,w=2,x=1)
# 创建一个目录,并设置权限 使用参数 -v -m
[root@myLinux001 text2]# mkdir -v -m 654 exercise4
mkdir: 已创建目录 "exercise4"
touch
作用:用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
ls -l 可以显示档案的时间记录。
语法:touch [-acfm] [-d<日期时间>] [-r<参考文件或目录>] [-t<日期时间>] [--help] [--version] [文件或目录…]
命令参数:
参数 | 参数描述 |
---|---|
-a | 只更新访问时间,不改变修改时间 |
-m | 改变修改时间记录 |
-c | 不创建不存在的文件 |
-f | 不使用,是为了与其他 unix 系统的相容性而保留。 |
-m | 只更新修改时间,不改变访问时间 |
-r file | 使用文件file的时间更新文件的时间 |
-t | 将时间修改为参数指定的日期,如:07081556代表7月8号15点56分 |
--no-create | 不会建立文件 |
--help | 列出指令格式 |
--version | 列出版本讯息 |
例子:
(1)使用指令"touch"创建"text1.txt"文件
[root@myLinux001 text2]# cd exercise1
[root@myLinux001 exercise1]# touch text1.txt
[root@myLinux001 exercise1]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 9月 7 13:44 text1.txt
# 当然touch可以一次创建多个文件,例如:touch text1.txt text2.txt text3.txt ...
[root@myLinux001 exercise1]# touch text2.txt text3.txt
[root@myLinux001 exercise1]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 9月 7 13:44 text1.txt
-rw-r--r--. 1 root root 0 9月 7 13:45 text2.txt
-rw-r--r--. 1 root root 0 9月 7 13:45 text3.txt
(2)使用指令"touch"修改文件"text1.txt"的时间属性为当前系统时间,发现如果文件存在,这里直接是修改时间了
[root@myLinux001 exercise1]# touch text1.txt
[root@myLinux001 exercise1]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 9月 7 13:46 text1.txt
# 发现时间是已经修改了
(3)强制避免使用touch命令创建新文件 使用参数 -c
有时,如果新文件不存在,则需要避免创建新文件。 在这种情况下,可以使用touch命令使用'-c'选项
[root@myLinux001 exercise1]# ls
text1.txt text2.txt text3.txt
[root@myLinux001 exercise1]# touch -c text4.txt
[root@myLinux001 exercise1]# ls
text1.txt text2.txt text3.txt
(4)更改文件的访问和修改时间 使用参数 -a
touch命令的另一个用途是更改文件的访问时间和修改时间
[root@myLinux001 exercise1]# stat text3.txt
文件:"text3.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:16626 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-09-07 14:04:07.539848285 +0800
最近更改:2020-09-07 14:04:07.539848285 +0800
最近改动:2020-09-07 14:04:07.539848285 +0800
创建时间:-
[root@localhost exercise1]# touch -a text3.txt
[root@localhost exercise1]# stat text3.txt
文件:"text3.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:16626 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-09-07 14:08:33.788865586 +0800
最近更改:2020-09-07 14:04:07.539848285 +0800
最近改动:2020-09-07 14:08:33.788865586 +0800
创建时间:-
我们看到先是使用stat查看文件详细信息 最近访问和最近更改时间
当我们使用命令使用参数-a 对文件 text3.txt 做了一些操作 touch -a text3.txt
再查看时间时,发现文件已经修改好了
(5)仅更改此文件的修改时间 使用参数 -m
[root@myLinux001 exercise1]# touch -m text3.txt
[root@myLinux001 exercise1]# stat text3.txt
文件:"text3.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:16626 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-09-07 14:08:33.788865586 +0800
最近更改:2020-09-07 14:15:59.782894567 +0800
最近改动:2020-09-07 14:15:59.782894567 +0800
创建时间:-
(6)将访问和修改时间从一个文件复制到另一个文件 使用参数 -r
[root@myLinux001 exercise1]# touch text3.txt -r text1.txt
[root@myLinux001 exercise1]# stat text1.txt
文件:"text1.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:16624 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-09-07 13:57:38.308822993 +0800
最近更改:2020-09-07 13:57:38.308822993 +0800
最近改动:2020-09-07 13:57:38.308822993 +0800
创建时间:-
[root@myLinux001 exercise1]# stat text3.txt
文件:"text3.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:16626 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-09-07 13:57:38.308822993 +0800
最近更改:2020-09-07 13:57:38.308822993 +0800
最近改动:2020-09-07 14:19:35.732908600 +0800
创建时间:-
# 输出显示text3.txt现在具有与text1.txt相同的访问和修改值
(7)使用指定的时间戳创建新文件 使用参数-t
[root@myLinux001 exercise1]# touch -t 2001011314.52 time.log
#20年1月11号3点14分52秒
[root@myLinux001 exercise1]# stat time.log
文件:"time.log"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:16627 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-01-01 13:14:52.000000000 +0800
最近更改:2020-01-01 13:14:52.000000000 +0800
最近改动:2020-09-07 14:26:23.916935124 +0800
创建时间:-
# 最近访问与最近更该时间为设定的时间 2020-01-01 13:14:52.000000000
(8)将文件的时间戳更改为其他时间 使用参数 -c
[root@myLinux001 exercise1]# touch -c -t 1801011314.52 time.log
[root@myLinux001 exercise1]# stat time.log
文件:"time.log"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:16627 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2018-01-01 13:14:52.000000000 +0800
最近更改:2018-01-01 13:14:52.000000000 +0800
最近改动:2020-09-07 14:30:45.188952101 +0800
创建时间:-
# 使用参数修改为指定的时间戳
作用:用于删除一个文件或者目录。
语法:rm [选项] 文件…
命令参数:
参数 | 参数描述 |
---|---|
-i | 删除前逐一询问确认 |
-f | 即使原档案属性设为唯读,亦直接删除,无需逐一确认 |
-r | 将目录及以下之档案亦逐一删除 (递归删除) |
(1)删除文件或者目录前提示 使用参数 -i
[root@myLinux001 exercise1]# ls
text1.txt text2.txt time.log
[root@myLinux001 exercise1]# rm -i text2.txt
rm:是否删除普通空文件 "text2.txt"?y
[root@myLinux001 exercise1]# ls
text1.txt time.log
# 这里提示是否删除,输入 y确认
(2)删除 test 子目录及子目录中所有档案删除,并且不用一一确认 -rf
我们先切换到上一级目录
[root@myLinux001 exercise1]# cd ../
[root@myLinux001 text2]# ls
exercise1 exercise2 exercise3 exercise4
[root@myLinux001 text2]# rm -rf exercise1
[root@myLinux001 text2]# ls
exercise2 exercise3 exercise4
[root@myLinux001 text2]#
作用:用于删除空的目录。从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。
语法:rmdir [-p] dirName
命令参数:
参数 | 参数描述 |
---|---|
-p | 当子目录被删除后使它也成为空目录的话,则顺便一并删除。 |
注意(不能删除非空目录)
(1)正常删除目录
[root@myLinux001 text2]# ls
exercise2 exercise3 exercise4
[root@myLinux001 text2]# rmdir exercise2
[root@myLinux001 text2]# ls
exercise3 exercise4
[root@myLinux001 text2]# rmdir exercise3
[root@myLinux001 text2]# ls
exercise4
# 这里删除空目录
(2)工作目录下的 text1 目录中,删除名为 text2 的子目录。若 text2 删除后,text1 目录成为空目录,则 text1 亦予删除,类推
[root@myLinux001 ~]# ls -R mydir/
mydir/:
text1
mydir/text1:
text2
mydir/text1/text2:
[root@myLinux001 ~]# rmdir -p mydir/text1/text2/
[root@myLinux001 ~]# ls
anaconda-ks.cfg
作用:用来为文件或目录改名、或将文件或目录移入其它位置。
语法:
mv [options] source dest
mv [options] source... directory
命令参数:
参数 | 参数描述 |
---|---|
-i | 若指定目录已有同名文件,则先询问是否覆盖旧文件; |
-f | 在 mv 操作要覆盖某已有的目标文件时不给任何指示 |
mv参数设置与运行结果
命令格式 | 运行结果 |
---|---|
mv 文件名 文件名 | 将源文件名改为目标文件名 |
mv 文件名 目录名 | 将文件移动到目标目录 |
mv 目录名 目录名 | 目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名 |
mv 目录名 文件名 | 出错 |
先给个测试环境
[root@myLinux001 ~]# ls -R mydir/
mydir/:
test1 test2
mydir/test1:
text1.log text1.txt text2.log
mydir/test2:
(1)将文件 text1.log 重命名为 text2.txt
[root@myLinux001 test1]# ls
text1.log text1.txt text2.log
[root@myLinux001 test1]# mv text1.log text2.txt
[root@myLinux001 test1]# ls
text1.txt text2.log text2.txt
(2)将文件 text1.txt text2.log text2.txt 移动到mydir的 test2 目录中
[root@myLinux001 test1]# mv text1.txt text2.log text2.txt ../test2
[root@myLinux001 test1]# ls
[root@myLinux001 test1]# cd ../test2
[root@myLinux001 test2]# ls
text1.txt text2.log text2.txt
(3)将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖 使用参数 -i 询问
[root@myLinux001 test2]# ls
text1.txt text2.log text2.txt
[root@myLinux001 test2]# mv -i text2.txt text1.txt
mv:是否覆盖"text1.txt"? y
[root@localhost test2]# ls
text1.txt text2.log
[root@myLinux001 test2]#
(4)移动当前文件夹下的所有文件到上一级目录
[root@myLinux001 test2]# mv * ../
[root@myLinux001 test2]# ls ../
test1 test2 text1.txt text2.log
作用:用于复制文件或目录。
语法:
cp [options] source dest
cp [options] source... directory
命令参数:
参数 | 参数功能描述 |
---|---|
-a | 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合 |
-d | 复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。 |
-f | 覆盖已经存在的目标文件而不给出提示。 |
-i | 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。 |
-p | 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。 |
-r | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 |
-l | 不复制文件,只是生成链接文件。 |
# 常用的一些有以下参数
-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样
[root@myLinux001 ~]# ls -R mydir/
mydir/:
test1 test2 text1.txt text2.log
mydir/test1:
mydir/test2:
# 目录文件环境
(1)复制 text1.txt 到 test1 目录下,保持原文件时间,如果原文件存在提示是否覆盖。使用参数 -ai
[root@myLinux001 ~]# cp -ai mydir/text1.txt mydir/test1
[root@myLinux001 ~]# ls mydir/test1
text1.txt
(2)为 text2.log 建议一个链接(快捷方式) 使用参数 -s
[root@myLinux001 ~]# cp -s mydir/text2.log link_text2
[root@myLinux001 ~]# ls
anaconda-ks.cfg link_text2 mydir
# 注意(只能于当前目录中创建相对的符号链接)
(3)将当前或者指定的目录下的所有文件复制到新目录
[root@myLinux001 ~]# cp -r mydir/ test
[root@myLinux001 ~]# ls -R test
test:
test1 test2 text1.txt text2.log
test/test1:
text1.txt
test/test2:
test1 test2
test/test2/test1:
text1.txt
test/test2/test2:
[root@myLinux001 ~]# ls -R mydir/
mydir/:
test1 test2 text1.txt text2.log
mydir/test1:
text1.txt
mydir/test2:
test1 test2
mydir/test2/test1:
text1.txt
mydir/test2/test2:
# 两个文件一模一样的内容
作用:用于连接文件并打印到标准输出设备上
语法:cat [-AbeEnstTuv] [--help] [--version] fileName
命令参数:
-n | --number | 由 1 开始对所有输出的行数编号 |
-b | --number-nonblank | 和 -n 相似,只不过对于空白行不编号 |
-s | --squeeze-blank | 当遇到有连续两行以上的空白行,就代换为一行的空白行 |
-v | --show-nonprinting | 使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外 |
-E | --show-ends | 在每行结束处显示 $ |
-T | --show-tabs | 将 TAB 字符显示为 ^I |
-A | --show-all | 等价于 -vET |
-e | 等价于"-vE"选项 | |
-t | 等价于"-vT"选项 |
参考环境,事先编辑好的文本
[root@myLinux001 ~]# vi mydir/text1.txt
# 编辑文本,使用vi打开文本
# 按i键进入编辑界面
# 输入对应的内容后
# 按ESC退出编辑模式
# 按住shift+;进入命令行界面
# 输入wq回车接口保存退出
(1)显示整个文件内容 使用 cat 正常进查看
[root@myLinux001 ~]# cat mydir/text1.txt
(2)把 text1.txt 的文档内容加上行号后输入 text2.log 这个文档里:
[root@myLinux001 mydir]# cat -n text1.txt > text2.log
[root@myLinux001 mydir]# cat text2.log
(3)把 text1.txt 和 text2.txt 的文档内容加上行号(空白行不加)之后将内容附加到 text3.txt 文档里
[root@myLinux001 mydir]# cat -b text1.txt text2.log >> text3.txt
[root@myLinux001 mydir]# cat text3.txt
1 # 编辑文本,使用vi打开文本
2 # 按i键进入编辑界面
3 # 输入对应的内容后
4 # 按ESC退出编辑模式
5 # 按住shift+;进入命令行界面
6 # 输入wq回车接口保存退出
7 1 # 编辑文本,使用vi打开文本
8 2 # 按i键进入编辑界面
9 3 # 输入对应的内容后
10 4 # 按ESC退出编辑模式
11 5 # 按住shift+;进入命令行界面
12 6 # 输入wq回车接口保存退出
(4)清空 /mydir/text1.txt 文档内容
[root@myLinux001 mydir]# cat /dev/null > text1.txt
[root@myLinux001 mydir]# cat text1.txt
[root@myLinux001 mydir]# ls
test1 test2 text1.txt text2.log text3.txt
作用:类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h
语法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
命令参数:
参数 | 参数功能描述 |
---|---|
-num | 一次显示的行数 |
-d | 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] , 如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声 |
-l | 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能 |
-f | 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) |
-p | 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 |
-c | 跟 -p 相似,不同的是先显示内容再清除其他旧资料 |
-s | 当遇到有连续两行以上的空白行,就代换为一行的空白行 |
-u | 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同) |
+/pattern | 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示 |
+num | 从第 num 行开始显示 |
fileNames | 需要显示内容的文档,可为复数个数 |
常用的操作命令
按键 | 按键功能描述 |
---|---|
Enter | 向下 n 行,需要定义。默认为 1 行 |
Ctrl+F | 向下滚动一屏 |
空格键 | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
V | 调用vi编辑器 |
!命令 | 调用Shell,并执行命令 |
q | 退出more |
(1)显示文件中从第3行起的内容
[root@myLinux001 mydir]# more +3 text3.txt
(2)在所列出文件目录详细信息,借助管道使每次显示 5 行
[root@myLinux001 mydir]# ls -l / | more -5
总用量 20
lrwxrwxrwx. 1 root root 7 8月 31 15:48 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 8月 31 15:58 boot
drwxr-xr-x. 20 root root 3240 9月 5 13:07 dev
drwxr-xr-x. 75 root root 8192 9月 7 10:30 etc
--More--
# 空格会显示下5行
# 回车会显示下1行
作用:less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
语法:less [参数] 文件
命令参数:
参数 | 参数功能描述 |
---|---|
-i | 忽略搜索时的大小写 |
-N | 显示每行的行号 |
-o | <文件名> 将less 输出的内容在指定文件中保存起来 |
-s | 显示连续空行为一行 |
/字符串: | 向下搜索“字符串”的功能 |
?字符串: | 向上搜索“字符串”的功能 |
n | 重复前一个搜索(与 / 或 ? 有关) |
N | 反向重复前一个搜索(与 / 或 ? 有关) |
-x <数字> | 将“tab”键显示为规定的数字空格 |
b | 向后翻一页 |
d | 向后翻半页 |
h | 显示帮助界面 |
Q | 退出less 命令 |
u | 向前滚动半页 |
y | 向前滚动一行 |
空格键 | 滚动一行 |
回车键 | 滚动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
(1)查看文件
[root@myLinux001 mydir]# less text3.txt
1 # 编辑文本,使用vi打开文本
2 # 按i键进入编辑界面
...省略...
# 进入后查看,Q键退出界面
(2)ps查看进程信息并通过less分页显示
[root@myLinux001 mydir]# ps | less
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 05:06 ? 00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 05:06 ? 00:00:00 [kthreadd]
...省略...
(3)查看命令历史使用记录并通过less分页显示
[root@myLinux001 test]# history | less
1 exit
2 reboot
3 shutdowm -r now
4 poweroff
5 cd
...省略...
(4)查看多个文件
[root@myLinux001 mydir]# less text3.txt
# 此时如果需要查看多个文件可以使用 可以输入shift+;进入命令行模式
# 使用 p 和 n 进行上下页面翻页查看
附加备注
1.全屏导航
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
2.单行导航
j - 向前移动一行
k - 向后移动一行
3.其它导航
G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令
4.其它有用的命令
v - 使用配置的编辑器编辑当前文件
h - 显示 less 的帮助文档
&pattern - 仅显示匹配模式的行,而不是整个文件
5.标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
ma - 使用 a 标记文本的当前位置
'a - 导航到标记 a 处
Linux 命令大全 Linux 命令大全
作用:用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容
语法:head [参数] [文件]
命令参数:
参数 | 参数描述 |
---|---|
-q | 隐藏文件名 |
-v | 显示文件名 |
-c<数目> | 显示的字节数 |
-n<行数> | 显示的行数 |
(1)显示 1.log 文件中前 20 行
[root@myLinux001 ~]# head 1.log -n 20
(2)显示 1.log 文件前 20 字节
[root@myLinux001 ~]# head -c 20 1.log
(3)显示 t.log最后 10 行
[root@myLinux001 ~]# tail -n -10 t.log
在 linux 要查找某个命令或者文件,但不知道放在哪里了,可以使用下面的一些命令来搜索
which 查看可执行文件的位置。
whereis 查看文件的位置。
locate 配合数据库查看文件位置。
find 实际搜寻硬盘查询文件名称。
作用:用于查找文件(which指令会在环境变量$PATH设置的目录里查找符合条件的文件。)
语法:which [文件...]
命令参数:
参数 | 参数描述 |
---|---|
-n<文件名长度> | 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名 |
-p<文件名长度> | 与-n参数相同,但此处的<文件名长度>包括了文件的路径 |
-w | 指定输出时栏位的宽度 |
-V | 显示版本信息 |
(1)查看 ls 命令是否存在,执行哪个
[root@myLinux001 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
(2)查看 which
[root@myLinux001 ~]# which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
/usr/bin/alias
/usr/bin/which
(3)查看cd
[root@myLinux001 ~]# which cd
/usr/bin/cd
(注意:显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)
(4)查看当前 PATH 配置
[root@myLinux001 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,
而find则是遍历硬盘查找文件
作用:用于查找文件
语法:whereis [-bfmsu][-B <目录>...]-M <目录>...][-S <目录>...][文件...]
命令参数:
参数 | 参数描述 |
---|---|
-b | 定位可执行文件 |
-B<目录> | 只在设置的目录下查找可执行文件 |
-f | 不显示文件名前的路径名称 |
-m | 定位帮助文件 |
-M<目录> | 只在设置的目录下查找说帮助文件 |
-s | 定位源代码文件 |
-S<目录> | 只在设置的目录下查找源代码文件 |
-u | 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件 |
(1)查找 locate 程序相关文件
[root@myLinux001 ~]# whereis bash
bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz
(2)查找 locate 的源码文件
[root@myLinux001 ~]# whereis -s locate
(3)查找 lcoate 的帮助文件
[root@myLinux001 ~]# whereis -m locate
需要注意这个命令在我们的最小mini系统里面是没有安装的
[root@myLinux001 ~]# yum install mlocate
...省略...
[root@myLinux001 ~]# updatedb
###updatedb更新的意思
作用:用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录
语法:locate [-d ][--help][--version][范本样式...]
命令参数:
参数 | 参数描述 |
---|---|
-b | 仅匹配路径名的基本名称 |
-c | 只输出找到的数量 |
-d | 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db |
-e | 仅打印当前现有文件的条目 |
-1 | 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。 这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料 |
-0 | 在输出上带有NUL的单独条目 |
-S | 不搜索条目,打印有关每个数据库的统计信息 |
-q | 安静模式,不会显示任何错误讯息 |
-P | 检查文件存在时不要遵循尾随的符号链接 |
-l | 将输出(或计数)限制为LIMIT个条目 |
-n | 至多显示 n个输出 |
-m | 被忽略,为了向后兼容 |
-r | REGEXP -- 使用基本正则表达式 |
--regex | 使用扩展正则表达式 |
-o | 指定资料库存的名称 |
-h | 显示帮助 |
-i | 忽略大小写 |
-V | 显示版本信息 |
常用参数:
参数 | 参数描述 |
---|---|
-l | num(要显示的行数) |
-f | 将特定的档案系统排除在外,如将proc排除在外 |
-r | 使用正则运算式做为寻找条件 |
(1)查找和 pwd 相关的所有文件(文件名中包含 pwd)
[root@myLinux001 ~]# locate pwd
/etc/.pwd.lock
/usr/bin/pwd
...省略...
(2)搜索 etc 目录下所有以 sh 开头的文件
[root@myLinux001 ~]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells
(3)查找 /etc 目录下,以 sh 结尾的文件
[root@myLinux001 ~]# locate -r '^/etc.*sh$'
/etc/ssh
...省略..
作用:用于在文件树中查找文件,并作出相应的处理
语法:
find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
命令参数:
参数 | 参数描述 |
---|---|
pathname | find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录 |
find命令将匹配的文件输出到标准输出 | |
-exec | find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格 |
-ok | 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行 |
命令选项:
选项 | 选项描述 |
---|---|
-name | 按照文件名查找文件 |
-perm | 按文件权限查找文件 |
-user | 按文件属主查找文件 |
-group | 按照文件所属的组来查找文件 |
-type | 查找某一类型的文件,诸如: b - 块设备文件 d - 目录 c - 字符设备文件 l - 符号链接文件 p - 管道文件 f - 普通文件 |
-size n :[c] | 查找文件长度为n块文件,带有c时表文件字节大小 |
-amin n | 查找系统中最后N分钟访问的文件 |
-atime n | 查找系统中最后n*24小时访问的文件 |
-cmin n | 查找系统中最后N分钟被改变文件状态的文件 |
-ctime n | 查找系统中最后n*24小时被改变文件状态的文件 |
-mmin n | 查找系统中最后N分钟被改变文件数据的文件 |
-mtime n | 查找系统中最后n*24小时被改变文件数据的文件 |
-maxdepth n | 最大查找目录深度 |
-prune | 选项来指出需要忽略的目录。在使用-prune选项时要当心, 因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略 |
-newer | 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项 |
例子:
(1)查找48小时内修改过的文件
[root@myLinux001 ~]# find -atime -2
.
./.bash_profile
...省略..
(2)在当前目录查找 以 .log 结尾的文件。 . 代表当前目录
[root@myLinux001 ~]# find ./ -name '*.log'
./mydir/text2.log
./test.log
(3)查找 /opt 目录下 权限为 777 的文件
[root@myLinux001 ~]# find /opt -perm 777
(4)查找大于 1K 的文件
[root@myLinux001 ~]# find -size +1000c
./anaconda-ks.cfg
./.bash_history
./.viminfo
(5)查找等于 1000 字符的文件
[root@myLinux001 ~]# find -size 1000c
注意:-exec 参数后面跟的是 command 命令,它的终止是以 ; 为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面find查找出来的文件名
(6)在当前目录中查找更改时间在10日以前的文件并删除它们(无提醒)
[root@myLinux001 ~]# find . -type f -mtime +10 -exec rm -f {} \;
(7)当前目录中查找所有文件名以.log结尾、更改时间在0日以上的文件,并删除它们
只不过在删除之前先给出提示。 按y键删除文件,按n键不删除
[root@myLinux001 ~]# find . -name '*.log' -mtime +0 -ok -exec rm {} \;
< -exec ... ./mydir/text2.log > ? n
(8)用 exec 选项执行 cp 命令
[root@myLinux001 ~]# find . -name '*.log' -exec cp {} test3 \;
-xargs find 命令把匹配到的文件传递给 xargs 命令,而 xargs 命令每次只获取一部分文件而不是全部,不像 -exec 选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
(9)查找当前目录下每个普通文件,然后使用 xargs 来判断文件类型
[root@myLinux001 ~]# find . -type f -print | xargs file
(10)查找当前目录下所有以 js 结尾的并且其中包含 'editor' 字符的普通文件
[root@myLinux001 ~]# find . -type f -name "*.js" -exec grep -lF 'ueditor' {} \;
[root@myLinux001 ~]# find -type f -name '*.js' | xargs grep -lF 'editor'
(11)利用 xargs 执行 mv 命令
[root@myLinux001 ~]# find . -name "*.log" | xargs -i mv {} test4
(12)用 grep 命令在当前目录下的所有普通文件中搜索 hostnames 这个词,并标出所在行:
[root@myLinux001 ~]# find . -name \*(转义) -type f -print | xargs grep -n 'hostnames'
(13)查找当前目录中以一个小写字母开头,最后是 4 到 9 加上 .log 结束的文件:
[root@myLinux001 ~]# find . -name '[a-z]*[4-9].log' -print
(14)在 test 目录查找不在 test4 子目录查找
[root@myLinux001 ~]# find test -path 'test/test4' -prune -o -print
(15)实例1:查找更改时间比文件 log2012.log新但比文件 log2017.log 旧的文件
[root@myLinux001 ~]# find -newer log2012.log ! -newer log2017.log
depth 选项可以使 find 命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。
实例:find 命令从文件系统的根目录开始,查找一个名为 CON.FILE 的文件。 它将首先匹配所有的文件然后再进入子目录中查找
[root@myLinux001 ~]# find / -name "CON.FILE" -depth -print
语法:
chmod [-cfvR] [--help] [--version] mode file...
常用参数:
参数 | 参数描述 |
---|---|
-c | 当发生改变时,报告处理信息 |
-R | 处理指定目录以及其子目录下所有文件 |
权限代号:
代号 | 代号权限 |
---|---|
r | 读权限,用数字4表示 |
w | 写权限,用数字2表示 |
x | 执行权限,用数字1表示 |
- | 删除权限,用数字0表示 |
s | 特殊权限 |
增加文件 test.log 所有用户可执行权限
[root@myLinux001 ~]# chmod u=rwx test.log
[root@myLinux001 ~]# ls -n test.log
-rwxr-xr-x. 1 0 0 36 9月 8 18:36 test.log
撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息
[root@myLinux001 ~]# chmod u=r test.log -c
mode of "test.log" changed from 0755 (rwxr-xr-x) to 0455 (r--r-xr-x)
[root@myLinux001 ~]# ls -n test.log
-r--r-xr-x. 1 0 0 36 9月 8 18:36 test.log
#主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
[root@myLinux001 ~]# chmod 751 test.log -c
或者
[root@localhost ~]# chmod u=rwx,g=rx,o=x t.log -c
#将mydir 目录及其子目录所有文件添加可读权限
[root@localhost ~]# chmod u+r,g+r,o+r -R text/ -c
chown 将指定文件的拥有者改为指定的用户或组,
用户可以是用户名或者用户 ID;
组可以是组名或者组 ID;文件是以空格分开的要改变权限的文件列表,支持通配符
注意:一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限
语法:
chown [-cfhvR] [--help] [--version] user[:group] file...
常用参数:
参数 | 参数描述 |
---|---|
user | 新的文件拥有者的使用者 ID |
group | 新的文件拥有者的使用者组(group) |
-c | 显示更改的部分的信息 |
-f | 忽略错误信息 |
-h | 修复符号链接 |
-v | 显示详细的处理信息 |
-R | 处理指定目录以及其子目录下的所有文件 |
--help | 显示辅助说明 |
--version | 显示版本 |
(1)改变拥有者和群组 并显示改变信息
[root@myLinux001 ~]# chown -c mail:mail test.log
changed ownership of "test.log" from root:root to mail:mail
-r--r-xr-x. 1 mail mail 36 9月 8 18:36 test.log
(2)改变文件群
[root@myLinux001 ~]# chown -c :mail test.sh
changed ownership of "test.sh" from root:root to :mail
(3)改变文件夹及子文件目录属主及属组为 mail
[root@myLinux001 ~]# chown -cR mail: mydir
changed ownership of "mydir/test1/text1.txt" from root:root to mail:mail
changed ownership of "mydir/test1" from root:root to mail:mail
...省略...
用来压缩和解压文件。tar 本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。
弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件
作用:用于备份文件(tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件)
语法:
tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F