Linux系统(二)之文件处理

文件处理

    • 一、目录文件操作
    • 二、删除 remove
    • 三、拷贝 copy
    • 四、剪切 move
    • 五、文件搜索 find
    • 六、创建脚本命令
    • 七、压缩与解压
    • 八、安装 wget 软件
    • 九、修改服务器路径下的中文

一、目录文件操作

  创建单层文件夹

    mkdir test

  创建多层文件夹

    mkdir -p abc/bbb

-p 先建立上层目录,确保能正确创建完整目录。

文本文件操作

除了前面的 vi 命令,经常使用的还有 cat 与 echo 命令。

cat 命令是 linux 下的一个文本输出命令,通常是用于观看某个文件的内容。

cat user.txt

echo 命令用于在 shell 中打印 shell 变量的值,或者直接输出指定的字符串。

[root@localhost ~]# echo $PATH
/root/jdk1.8.0_111/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# echo user
user
[root@localhost ~]# echo hello world > user.txt

注意:使用 echo 输出字符串到文件时,会覆盖文件内的原内容。

二、删除 remove

  在计算机操作中经常删除文件或目录,在 Linux 中使用 rm 命令。

用法如下:

rm -f 文件名:不提示直接强制删除

rm -f aa.txt

rm -r 目录名:删除目录

rm -r aa

rm -rf 文件或目录名:强制删除文件或目录

使用通配符删除,删除后缀名为 java 的文件

rm -rf *.java

注意:命令行删除是没有回收站,删除就没有了,请谨慎使用。

三、拷贝 copy

  拷贝也叫复制,拷贝分为文件拷贝和目录拷贝,文件拷贝如下:

拷贝到 /root 下不修改文件名

cp abc.txt /root/

拷贝时会修改文件名,将原来的文件名变为 abc

cp abc.txt /root/abc

拷贝目录:

将 root 目录拷贝到 /home/ 下,拷贝完成后目录结构 /home/root/

cp -rf /root/ /home/

-rf:与删除语法相同,f:表示当出现提醒时(如文件存在覆盖提醒)全部强制。r:表示递归(目录下可能还有多层目录,全部使用递归拷贝)

四、剪切 move

  使用移动文件的方式改名,mv 原名 新名

mv abc.txt aaa.tex

正常移动文件使用如下命令

mv abc.txt /root/aa/

正常移动文件夹 mv 将要移动的文件夹 目标位置

mv abc/ /root/

需要注意绝对路径和相对路径问题。

移动文件夹并改名,把 bbb 文件夹移动到 root 下并改名为 aaaa

mv bbb/ /root/aaaa

五、文件搜索 find

  文件搜索一般可以根据文件名,类型,时间等搜索。使用文件名如下:

find 路径 -name 文件名

find /root/ -name abc.txt

当然,在搜索时也可以使用通配符 * ? [],注意使用通配符时文件名需要加单引号。

 * 匹配任意内容

 ?匹配一个字符

 [] 匹配任意一个中括号内的字符

find /root/ -name '*a*'

查询文件名中包含 a 字符的

find /root/ -name '?a*'

查询文件名第二个字母为 a 的文件

find /root/ -name '*[batc]sh*'

查询文件名包含 batcsh bash tcsh ash csh bsh tsh 字符串的文件(该命令会自动使用排列组合匹配对应的文件名)

find /home -type f

查询 /home 目录下的所有文件

六、创建脚本命令

  在使用 Linux 过程中,经常会用到一些重复性比较多的命令。有时为了减少命令的重复输入,我们通常把常用命令存入一个文本文件,并赋予它运行的权限,从而在需要使用时只需要运行即可。
  vi bat.sh 并把需要的命令放到里面

mkdir -p demo
cd demo
echo hello > a.txt
cat a.txt
cd ..

  赋予该文件可执行的权限

	chmod 777 bat.sh

  读、写、运行三项权限可以用数字表示,就是 r=4,w=2,x=1,777 就是 rwxrwxrwx,意思是该登录用户(可以用命令 id 查看)、所在的组和其他用户都有最高权限。
  使用命令执行所写脚本

	./bat.sh

七、压缩与解压

  tar:打包和解压指令,主要针对文件类型为 .tar.gz 的文件。

	tar -zxvf jdk-7u67-linux-x64.tar.gz

-c:产生 .tar 打包文件

-v:显示详细信息

-f:指定压缩后的文件名

-z:打包同时压缩

-x:解压.tar文件

压缩:tar -zcvf 压缩后文件名 要压缩的文件或目录

tar -zcvf jdk.tar.gz jdk1.8/

解压:tar -zxvf 要解压的文件

tar -zxvf jdk.tar.gz

解压到指定目录:tar -zxvf 要解压的文件 -C 指定目录,指定解压到的目录要存在。

tar -zxvf aa.tar.gz -C /home/

八、安装 wget 软件

  yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOs 中的 Shell 前端软件包管理器。

  基于 RPM 包管理 ,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

  yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum 常用命令

①列出所有可更新的软件清单命令:yum check-update
②更新所有软件命令:yum update
③仅安装指定的软件命令:yum install
④仅更新指定的软件命令:yum update
⑤列出所有可安裝的软件清单命令:yum list
⑥删除软件包命令:yum remove
⑦查找软件包命令:yum search

yum install wget -y

-y 表示所有的安装过程中全部选是。

安装完成后就可以使用 wget 下载网络资源。

wget http://img.mp.itc.cn/upload/20170112/e9781ccf2df84c959298d985414dc132_th.jpg

九、修改服务器路径下的中文

  centos7 的默认字符编码不是 UTF-8,所以很多时候我们上传的文件或目录带中文时会有乱码问题,安装 convmv 可以修改被请求的文件路径或者文件名的字符集。

使用 yum 安装 convmv

命令:

yum install convmv  -y

修改目录的字符编码

convmv -f GB2312 -t UTF-8 -r --notest /root/**

以上表示 /root/ 下的所有文件的文件名由 GB2312 转换为 UTF-8

1、-f ENCODING 指定目前文件名的编码,如-f gbk

2、-t ENCODING 指定将要转换成的编码,如-f utf-8

3、-r 递归转换目录下所有文件名

4、–list 列出所有支持的编码

5、–notest 默认是只打印转换后的效果,加这个选项才真正执行转换操作。

注意:在将来的项目部署过程中,尽可能不要使用中文目录或中文文件名。

章节练习:

1.安装一个全新的 centos7 取名为 homework2,并配置远程连接。

2.创建一个脚本完成如下操作:截取脚本内容和运行后效果图。

在 homework2 主机下创建 /root/homework/test01 目录
在 /root/homework/test01 下面创建 test1.txt 文件内容为 "I love studying Linux." 
使用 cat 查看文件内容。
返回 root 的家目录。

3.使用 yum 安装 convmv 和 wget。

4.下载如下地址的内容,解压后解决中文文件名乱码问题。下载时如果提示证书有问题可以在后面增加参数 --no-check-certificate。

http://58.42.239.163:8888/demo.tar.gz

你可能感兴趣的:(Linux,linux)