创建单层文件夹
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 输出字符串到文件时,会覆盖文件内的原内容。
在计算机操作中经常删除文件或目录,在 Linux 中使用 rm 命令。
用法如下:
rm -f 文件名:不提示直接强制删除
rm -f aa.txt
rm -r 目录名:删除目录
rm -r aa
rm -rf 文件或目录名:强制删除文件或目录
使用通配符删除,删除后缀名为 java 的文件
rm -rf *.java
注意:命令行删除是没有回收站,删除就没有了,请谨慎使用。
拷贝也叫复制,拷贝分为文件拷贝和目录拷贝,文件拷贝如下:
拷贝到 /root 下不修改文件名
cp abc.txt /root/
拷贝时会修改文件名,将原来的文件名变为 abc
cp abc.txt /root/abc
拷贝目录:
将 root 目录拷贝到 /home/ 下,拷贝完成后目录结构 /home/root/
cp -rf /root/ /home/
-rf:与删除语法相同,f:表示当出现提醒时(如文件存在覆盖提醒)全部强制。r:表示递归(目录下可能还有多层目录,全部使用递归拷贝)
使用移动文件的方式改名,mv 原名 新名
mv abc.txt aaa.tex
正常移动文件使用如下命令
mv abc.txt /root/aa/
正常移动文件夹 mv 将要移动的文件夹 目标位置
mv abc/ /root/
需要注意绝对路径和相对路径问题。
移动文件夹并改名,把 bbb 文件夹移动到 root 下并改名为 aaaa
mv bbb/ /root/aaaa
文件搜索一般可以根据文件名,类型,时间等搜索。使用文件名如下:
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/
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