一提到Linux命令,大家会想到最常用的cd、ls、rm、vi、tar等命令。那么大家知道这些命令是哪些英文单词的缩写吗?其实每个命令,背后都有它的含义。今天威哥就跟大家聊聊命令背后的小秘密~
本文帮你解决这些平时没有注意到的细节,最终实现:知其然并知其所以然。
NO.1 基础知识
1、Linux主要特征 :
一切即文件(目录、硬盘等都是文件);
硬件都在/dev 目录,如硬盘、U盘为/dev/sd[a-d];/dev/sr0
2、Linux命令常用结构 :
Command [-option] [argument]
Command:即是要运行的命令的本身,就是一个程序;
Option:是选项(可选),选项是控制命令运行状态和行为的,可以多个选项一起;
Argument:是参数(可选),是命令要操作对象如文件、路径、数据、目录等;
【提示:“-”后面的部分叫做选项,没有“-”的部分叫做参数。】
ctrl c可以退出命令。
NO.2 Linux常用命令
1、man
当我们以为这是man(男人)的时候,其实这是manual的缩写,意思是说明书、小册子的意思。
查看每个命令的用法和全称
例如:man ls ,该命令的意思是:查看ls命令的详细用法
(一)、文件及目录的常用命令
1、cd
cd是change directory的缩写,切换工作目录
cd ~,切换到用户主目录
cd ..,切到上一级目录
cd -,切到上一次所在的目录
cd /,切到系统根目录
cd /usr,切到usr目录
2、ls
ls是list的缩写,列出当前目录下的文件及文件夹列表信息
ls -a,all列出当前目录下所有文件,包括以“.”开头的隐藏文件
ls -l,long listing format,缩写成ll,列出明细列表信息
ls -l *.db,列出以.db结尾的文件的详细信息,*为通配符代表任意多个字符
3、ll
ll是long listing format的缩写,列出当前位置文件及文件夹的明细列表,包括隐藏文件。
4、pwd
pwd是print working directory的缩写,打印当前工作目录
5、file
语法:file 文件或目录
显示文件的类型(directory、data、text、zip、shell等)
6、mkdir
mkdir是make directory的缩写,创建目录
mkdir -p ./dir1/dir2,-p选项表示父目录,当父目录不存在时,同时创建父目录,也就是递归创建目录。
7、touch
例如:touch a.txt,创建文件a.txt
8、rm
rm是remove的缩写,删除文件
rm -r 目录或文件,recursion递归删除,删除目录及目录下所有文件,非空也可以删除
rm -f 目录或文件,强制删除
rm -rf * ,强制删除当前目录下所有文件
9、rmdir
rmdir是remove directory的缩写,删除空目录
10、mv
mv是move的缩写,可以用来剪切文件目录或者将文件改名
语法:mv 源文件 目标文件或目录
mv dir1 dir2,移动一个文件到指定目录(目标文件存在即移动源文件到指定目录)
mv dir1 dir2,重命名一个文件或者目录(目标文件不存在就是更改文件名)
mv /a/a.txt /b/b.txt :移动a目录下的a.txt到b目录下,并改名为b.txt
mv /b/b.txt /b/c :移动b目录下的b.txt到b目录下的c目录下
11、cp
cp是copy的缩写,复制文件
cp -a,选项a表示文件的属性也复制、目录下所有文件都复制
cp -i,选项i表示覆盖前询问
例如:cp -ai ./dir1 ./dir2
(二)、查看文件内容及文本处理的命令
1、cat
cat是concatenate的缩写,原意是连接和打印文件。
cat的作用是显示文件内容,不可以进行修改。
2、vi
vi是visual的缩写,(单词原意是可视的),创建并打开编辑文件
:wq,write、quit,写文件后退出
:wq!,强制性退出
3、vim
vim是visual improved的缩写,vim就是vi命令的提升改进版。作用就是编辑查看文件。
4、head
head是“头”的意思。
该命令是显示文件头n行内容
语法结构:head [-n] 文件名
-n指定显示多少行
例如:head -n 10 file.txt
5、tail
tail是“尾巴”的意思。
该命令是显示文件末尾几行内容
语法结构:tail [-nf] 文件名
-n指定显示多少行,没有-n默认10行
-f用于实时追踪文件的所有更新
常用于查阅正在改变的日志文件
例如:tail -f -n 3 file.log
表示开始显示最后3行,并在文件更新时实时追加显示
6、sed
sed是个人名赛德。sed 是一种Linux在线编辑器,或许该编辑器的作者叫做塞德,所以命令就是sed。
例如:sed -n '10,$p' file.txt
表示显示第10行到最后一行;
$表示最后一行;
例如:sed -n '/搜索的关键词/p' file.txt
表示显示包括关键词所在行
(三)、输出重定向的命令
1、覆盖或追加重定向信息
>表示输出重定向,也就是改变原来系统命令的默认执行方式。
>表示覆盖原文件内容,>>表示追加内容
例如:ls -l >file
表示将ls -l命令结果输出到file文件中,如果file不存在就创建,如果存在则覆盖原有内容。
2、覆盖或追加重定向错误信息
例如:cat 文件名 2> file
当文件名不存在时,该命令会将错误信息输出保存至file文件中
2>之间没有空格
2>> file表示将错误信息追加到file文件中
(四)、查找文件的命令
1、find
find的意思是查找,找到的意思。
1)、按照修改时间查找
find ./ -mtime -1
表示查找当前目录下最近1天内(也就是1*24小时)修改过的文件
2)、按照尺寸查找
find ./ -size -1M
查找当前目录下小于1M的文件
3)、按照文件类型查找
find ./ -type f
find ./ -type d
查找当前目录下的文件或目录(f为普通文件,d为目录)
4)、按照文件名称查找
find . -name '*.txt'
查找当前目录下的文件或目录(f为普通文件,d为目录)
5)、查找到文件后执行操作
find . -mtime 2 -exec rm {} ;
-exec 命令 {} 表示对查出文件操作
6)、按照文件名和文件内容查找
find ./ -name '*.txt'|grep -i 'Josh' ./ -r
2、grep
Grep是个人名,格雷普。
grep是UNIX工具程序,该程序可以实现文件内的字符串查找。
1)、查找指定目录或子目录下包含特定字符串的文件
grep -i 'steven' ./ -r -n
表示在当前目录及子目录下查找文件内容包含“steven”的文件
-i表示不区分大小写;
-r表示递归查找
(五)、文件权限的命令
1、chmod
chmod是一个合成词,是change和modify的合并。
百度chmod,能查到是:更改文件属性;修改文件权限;改变文件存取方式。
chmod是修改文件权限、改变文件存取方式的意思。
r(read)对应4,w(write)对应2,x(execute)执行对应1;
语法:chmod [{ugoa}{ -=}{rwx}][文件或目录]
u(user拥有者)、g(group所属组)、o(other其他人)
a(表示ugo)
使用 " " 设置权限,使用 "-" 用于取消权限
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改)
例如:
1)、设置dir1目录为读写执行权限
chmod a rwx dir1
chmod ugo rwx dir1
chmod 777 dir1
以上三个命令的含义相同,都是对于所有身份的用户设置dir1目录的权限,增加读写操作权限。
2)、对test.txt的权限为:user去掉写权限,group加上执行权限,other权限等于只读
chmod u-w,g x,o=r test.txt
2、sudo
以root的身份执行命令(输入用户自己的密码,而su为输入要切换用户的密码,普通用户需设置/etc/sudoers才可用sudo)
(六)、压缩、解压缩和打包备份的命令
1、tar
tar是tape archive的缩写,tape是磁带、录音的意思,archive是把…存档的意思。
tape archive的意思就是:把文件打包到磁带中存档。打包就是将多个文件包成一个大文件。
选项有:zxvf、zcvf、jxvf、jcvf
-z:字母z表示处理tar.gz文件;
-x:字母x来自单词extract,extract是提取、提炼的意思。-x表示解压缩;
-v:字母v来自单词verbose。verbose是冗长的;啰嗦的意思。-v选项就是显示信息为详细模式的意思;
-c:字母c来自单词compress,compress压缩的意思。-c表示压缩文件;
-j:字母j表示处理bzip2格式(后缀为tar.bz2)的文件;
-f:字母f就是file的意思。
-zxvf:含义就是对tar.gz文件进行解压缩,显示信息为详细模式。
-zcvf:含义就是对tar.gz文件进行压缩,显示信息为详细模式。
-jxvf:含义就是对bzip2文件进行解压缩,显示信息为详细模式。
-jcvf:含义就是对bzip2文件进行压缩,显示信息为详细模式。
-C选项后面跟一个参数,该参数是指定解压或压缩到某个目录的意思。
1)、tar -zxvf file.tar.gz -C ./test
解压tar.gz到当前目录下的test子目录中
2)、tar -zcvf /dir2/file.tar.gz ./dir1/
压缩tar.gz(把当前目录下的dir1目录及子目录下所有文件压缩到dir2目录下,文件名为file.tar.gz。
当使用tar -zxvf file.tar.gz解压出来时,就带有目录dir1)
3)、tar -jxvf file.tar.bz2
解压tar.bz2到当前目录下
4)、tar -jcvf file.tar.bz2 ./dir1/
压缩tar.bz2(把当前目录下的dir1目录及子目录下所有文件压缩到当前目录下,文件名为file.tar.gz2)
2、zip
压缩zip文件。
1)、zip -r file.zip ./dir1/
压缩zip(把当前目录下的dir1目录及子目录下所有文件压缩到当前目录下,文件名为file.zip
3、unzip
解压zip文件。
1)、unzip file.zip
解压zip文件到当前目录中
2)、unzip -o mdmtest.war -d /opt/mdm
推荐使用unzip解压war包
-o来自单词overwrite,覆盖的意思。-o覆盖原有文件;
-d来自单词directory,-d指定文件解压后存储的目录。
4、gzip
压缩和解压gzip文件。
1)、gzip file1
压缩file1文件为gzip格式。(不能保留源文件)
2)、gzip -9 file1
最大程度压缩file1文件为gzip格式。
3)、gzip -d file1.gz
解压缩file1.gz文件.
5、bzip2
压缩和解压bzip2文件。
1)、bzip2 -k file1
-k表示保留源文件
压缩file1文件为bzip2格式。(bzip2比gzip压缩性能高)
2)、bzip2 -d -k file1.bz2
解压file1.bz2文件,保留源文件。
Linux命令博大精深,若不细心挖掘,我们可能一直停留在基础上,经过威哥一番深深挖掘,以上命令背后的小秘密大家都学会了吗?