声明
本文主要介绍linux基本命令的使用,如果有什么需要改进的地方还请大佬不吝赐教💐
🥦作者简介:大家好,我是青衿😉
🍄博客首页:石马农青衿
🌸每日一句:努力一点,优秀一点
1. 基础知识
1.1 文件系统结构
● bin (binaries)存放二进制可执行文件
● sbin (super user binaries)存放二进制可执行文件,只有root才能访问
● etc (etcetera)存放系统配置文件
● usr (unix shared resources)用于存放共享的系统资源
● home 存放用户文件的根目录
● root 超级用户目录
● dev (devices)用于存放设备文件
● lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
● mnt (mount)系统管理员安装临时文件系统的安装点
● boot 存放用于系统引导时使用的各种文件
● tmp (temporary)用于存放各种临时文件
● var (variable)用于存放运行时需要改变数据的文件
2. 基础命令——目录
2.1 切换目录(cd)
1. cd / //切换到根目录
2. cd /bin //切换到根目录下的bin目录
3. cd ../ //切换到上一级目录 或者使用命令:cd ..
4. cd ~ //切换到home目录
5. cd - //切换到上次访问的目录
6. cd xx(文件夹名) //切换到本目录下的名为xx的文件目录,如果目录不存在报错
7. cd /xxx/xx/x //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全
8. cd *123 //模糊匹配,切换到目标文件夹,例如cd dafsfdgfgf123 等价于 cd *123`
2.2 查看目录(ls)
1. ls //查看当前目录下的所有目录和文件
2. ls -a //查看当前目录下的所有目录和文件(包括隐藏的文件)
3. ls -l //列表查看当前目录下的所有目录和文件(列表查看,更多信息),与"ll"效果一样
4. ls /bin //查看指定目录下的所有目录和文件
5. ls -lR test/|grep "^-" |wc -l //统计出test文件夹中文件的个数`
2.3 创建目录(mkdir)
1. mkdir -p file //当前目录创建file文件夹,若存在则不创建
2. mkdir /home/file{1..3} //指定目录创建文件夹file1、file2、file3
3. mkdir -m 777 file //创建权限为777的目录`
2.4 删除目录与文件(rm)
1. rm 文件名/文件夹名 //删除当前目录的的文件(询问)
2. rm -f 文件名/文件夹名 //删除当前目录的的文件(不询问)
3. rm -rf */文件夹名 //删除当前目录所有文件夹或某个文件夹、包括其内子文件夹和文件`
2.5 修改目录(mv)
1. mv 当前目录名 新目录名 //修改目录名,同样适用与文件操作=rename命令
2. mv -r /usr/tmp/tool /opt //递归剪切目录中所有文件和文件夹
3. mv test1.txt test2.txt file1/ //移动test1、2到文件夹file1
4. -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
5. -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
6. -u :若目标文件已经存在,且 source 比较新,才会更新(update)`
2.6 拷贝目录(cp)
1. cp [选项] 源文件 目标文件
2. -a:相当于 -d、-p、-r 选项的集合;
3. -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
4. -i:询问,如果目标文件已经存在,则会询问是否覆盖;
5. -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
6. -s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
7. -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
8. -r:递归复制,用于复制目录;
9. -u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。
10. cp –r test/ newtest //将当前目录 test/ 下的所有文件复制到新目录 newtest下
11. ls |head -n 100 |xargs -n1 -P 1 -i cp {} /home //将当前目录下100文件复制到home目录`
2.7 搜索目录(find)
1. find /bin -name 'a*' //查找/bin目录下的所有以a开头的文件或者目录
2. find . -type f //将当前目录及其子目录中的所有文件列出
3. find . -name "*.c" //将当前目录及其子目录下所有文件后缀为 .c 的文件列出来`
3. 基础命令——文件操作
3.1 创建文件(touch)
1. touch a.txt //创建文件(文件不存在),若文件存在,将文件时间属性修改为当前系统时间
2. : > a.txt //将文件置空 等价于直接 xxx > a.txt`
3.2 编辑文件(vi、vim)
1. vi 文件名 //打开需要编辑的文件
2. --进入后,操作界面有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
3. 命令模式
4. -刚进入文件就是命令模式,通过方向键控制光标位置,
5. -使用命令"dd"删除当前整行
6. -使用命令"/字段"进行查找
7. -按"i"在光标所在字符前开始插入
8. -按"a"在光标所在字符后开始插入
9. -按"o"在光标所在行的下面另起一新行插入
10. -按":"进入底行模式
11. 插入模式
12. -此时可以对文件内容进行编辑,左下角会显示 "-- 插入 --""
13. -按"ESC"进入底行模式
14. 底行模式
15. -退出编辑: :q
16. -强制退出: :q!
17. -保存并退出: :wq
18. -撤销前面操作 :u
19. -撤销:u操作 control+r
20. ## 操作步骤示例 ##
21. 1.保存文件:按"ESC" -> 输入":" -> 输入"wq",回车 //保存并退出编辑
22. 2.取消操作:按"ESC" -> 输入":" -> 输入"q!",回车 //撤销本次修改并退出编辑
23. ## 补充 ##
24. vim +10 filename.txt //打开文件并跳到第10行
25. vim -R /etc/passwd //以只读模式打开文件`
3.3 查看文件(cat、less、more、head、tail)
1. cat、less、more、head、tail
2. cat -n a.txt //查看文本文件内容,且附加行号
3. cat -s a.txt > b.txt //合并文本文件中的重复空行,并输出到另一个文本文件
4. cat a.txt b.txt > c.txt //合并多个文件到一个文件
5. cat test.txt |less //less常用于查看大文件,逐页查看
6. cat test.txt |tail -n +500 |head -n 500 > list.txt //获取原文档500-1000行数据
7. head *.txt && tail *.txt //分别显示所有txt文本的前10行及其后10行文本数据
3.4 排序去重(sort、uniq)
1. sort -t ' ' -k 2 -u test.txt //将文本每行按照空格切分,以第二列去重并排序
2. sort -t ' ' -k 2 test.txt |uniq -u //将文本每行按照空格切分,在按照第二列排序后,在去重
3. sort a.txt b.txt | uniq -d //获得两文件的交集
4. sort a.txt b.txt | uniq //获得两文件的并集
5. sort a.txt b.txt b.txt | uniq -u //获得两文件的差集(a-b)
4. 基础命令——打包与解压
4.1 压缩说明
1. .zip、.rar //windows系统中压缩文件的扩展名
2. .tar //Linux中打包文件的扩展名
3. .gz //Linux中压缩文件的扩展名
4. .tar.gz //Linux中打包并压缩文件的扩展名
5. .7z //其他压缩方式`
4.2 ZIP打包解压
1. NTFS:无限制;FAT32:4GB;FAT:2GB //zip压缩文件大小限制,根据文件系统格式
2. yum -y install zip unzip //在linux中安装zip 、unzip
3. zip -P 密码 -r A.zip file1/* //按照原来目录,加密压缩文件夹
4. cat test.txt | xargs zip -P 123 test.zip //按照路径压缩文件
5. unzip /root/jieya aaa.zip //解压zip压缩文件
6. unzip -O GBK file.zip //原来在windows上的zip文件, 在CentOS上使用unzip直接解压会显示乱码,因为windows简体中文版的操作系统一般上用的是GBK编码, 所以会导致这个问题
4.3 基础命令tar打包解压
1. tar -zxvf 文件名.tar.gz //解压tar.gz包
2. tar -zcvf 文件名.tar.gz 待压缩的文件名 //打包tar.gz
3. tar -xvJf 文件名.tar.xz //解压tar.xz