一、文件操作
1.目录切换—Cd命令使用
1) 使用 mkdir 命令创建 runoob 目录
[root@www ~]# mkdir runoob
2) 使用绝对路径切换到 runoob 目录
[root@www ~]# cd /root/runoob/
3) 使用相对路径切换到 runoob 目录
[root@www ~]# cd ./runoob/
4) 表示回到自己的家目录,亦即是 /root 这个目录
[root@www runoob]# cd ~
例如当前用户是aabb,运行上述命令后,切换目录到/home/aabb
5) 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..
2.文件创建、复制、删除、移动
1)通过vi创建文件
vi a.txt 创建文件
2)通过touch创建文件
touch /opt/test
opt目录下创建test,不会进入编辑模式
3)复制、删除、移动文件
cp a.txt b.txt 将a.txt 复制到当前目录中并改名b.txt
rm a.txt 删除文件a.txt
mv a test/将当前目录中的文件a移动到目录test
mv还可以用来修改文件名,例如:
mv file1 file2
3.目录创建复制、删除、移动
创建目录 mkdir
- -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
- -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
a) mkdir dir //创建单个目录
b) mkdir -p newdir1/newdir2/newdir3 //递归创建多级目录
移动目录
a) mv dir1 dir2 //dir1移动到dir2的目录下,结果:dir2/dir1
b) mv dir1/dir2 dir3 //dir2移动到dir3的目录下,结果:dir3/dir2
删除空的目录:rmdir ()
语法:
- rmdir [-p] 目录名称
选项与参数:
- -p :连同上一级『空的』目录也一起删除s
- 删除 runoob 目录
[root@www tmp]# rmdir runoob/
删除目录"rm [-fir] 文件或目录
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!
a) rm -r dir2 //删除目录
b) rm -rf [filename] //强制删除文件
c) rm -rf [dirname] //递归强制删除目录
### 4.文件查找
通过ls 查找
可以通过 ls | grep xxx 或 ls –r | grep xxx的方式查找文件。
ls命令参数如下:
- a) -a 显示包括隐藏文件在内的所有文件
- b) -l 显示详细信息(ls –l 命令等同于ll命令)
- c) -d 查看目录的属性
- d) -h 采用看K,M,GB等单位来显示文件大小
grep xxx查找:
grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找
grep命令
基本格式:find expression
[options]主要参数:
- -c:只输出匹配行的计数。
- -i:不区分大小写
- -h:查询多文件时不显示文件名。
- -l:查询多文件时只输出包含匹配字符的文件名。
- -n:显示匹配行及行号。
- -s:不显示不存在或无匹配文本的错误信息。
- -v:显示不包含匹配文本的所有行
a) grep test *file查找后缀有 file
字样的文件中包含 test 字符串的文件
b) grep test
test*查找前缀有“test”的文件包含“test”字符串的文件
通过find命令查找:find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
命令形式:find 目录 –name
名字匹配,可支持通配符,例如
a) find . -name aa
“."代表当前目录,查找名字是aa的
b) find /home –name aa
//在home目录下查找名字中带aa的文件
c) -iname
//根据文件名查找,但是不区分大小写
实例:
ls -r|grep a.txt //查找当前目录下的a.txt |是管道
|sed ‘/^\s*#/d’ 可以加通道 删除#开头的一行 一般为注释
|sed “/^$/d” 通道 删除空行
5.文件连接
连接分为软连接和硬连接。软链接就是ln –s 源文件目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件目标文件,没有参数-s,它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
a) ln -s /tmp/abc.txt
~/表示在home目录下创建与源文件同名的链接到/tmp/abc.txt符号连接
b) ln -s /tmp/abc.txt
~/abc在home目录下建立链接名字为abc的符号连接
c) ln /tmp/abc.txt
~/此命令表示在家目录下创建与源文件同名的硬链接
6.文件权限与属主
ll命令查看文件权限
- a) ls -lh 查询当前目录下文件夹/文件用户所属组及权限
- b) 前面十位字符,分成四段来看 d | rwx |rwx |rwx 第一段代表文件的类型,
- c) -为普通文件
- d) d为目录
- e) l为符号链
- f) b 块设备文件
- g) c 字符设备文件
- h) p 管道特殊文件
然后后面每三个字符分别代表,所有者,组用户,其他用户对此文件的权限,r为read,w为write,x为execut,读,写,执行,-代表无此权限。
紧接着的数字代表文件硬链接数或目录子目录数,如果是文件,这个数字代表有多少个链接指向它,没有自己增加链接则为1,如果是目录则是他包含的子文件或目录数,需要注意的是每个目录都会有两个子目录,".","…"分别指向他本身和父目录,所以这个数字会比我们正常看到的目录多2。然后是所属用户和所属用户组,接下来是文件大小、最后修改时间和文件名。
i) chown修改属主
chown [选项]用户或组文件
user : 新的档案拥有者的使用者 ID
group : 新的档案拥有者的使用者群体(group)
- -c : 若该档案拥有者确实已经更改,才显示其更改动作
- -f : 若该档案拥有者无法被更改也不要显示错误讯息
- -h : 只对于连结(link)进行变更,而非该 link 真正指向的档案
- -v : 显示拥有者变更的详细资料
- -R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
- –help : 显示辅助说明
- –version : 显示版本
例如:
chown root 某文件 // 把某文件的属主改成root
chown –R root 某路径 //
把某路径下所有文件的属主改成root
j) chmod修改权限
chmod [who][+ | – | =][mode]文件名¼
操作对象who可是下述字母中的任一个或者它们的组合:
- u 表示“用户(user)”,即文件或目录的所有者。
- g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
- o 表示“其他(others)用户”。
- a 表示“所有(all)用户”。它是系统默认值。
- 操作符号可以是:
-
- 添加某个权限。
- – 取消某个权限。
- = 赋予给定权限并取消其他所有权限(如果有的话)。
- r 可读。
- w 可写。
- x 可执行。
- X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
- s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
- t 保存程序的文本到交换设备上。
- u 与文件属主拥有一样的权限。
- g 与和文件属主同组的用户拥有一样的权限。
- o 与其他用户拥有一样的权限。
- -c : 若该档案权限确实已经更改,才显示其更改动作
- -f : 若该档案权限无法被更改也不要显示错误讯息
- -v : 显示权限变更的详细资料
- -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
实例:
chmod a+x sortsort的属性为:文件属主(u)增加执行权限,与文件属主同组用户(g)增加执行权限,其他用户(o)增加执行权限
##7.文件压缩与解压缩
1) zip命令
a) 解压:
unzip FileName.zip
b) 压缩:
zip FileName.zip DirName
2) 通过tar打包、解包
解包:
tar zxvf FileName.tar.gz (-C 目标目录)
其中z表示gzip压缩/解压,x表示解包,v表示显示细节,f表示强制覆盖既有重名文件。可以通过-C参数指明解包位置。如果是bz2压缩,把z换成j即可。
打包:
tar czvf FileName.tar DirName
如果待打包目录中有连接,需要在参数中再加上h,否则会把连接指向的原始文件打包进去的。