聊聊Linux命令背后,你不知道的小秘密

Posted Java架构栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊聊Linux命令背后,你不知道的小秘密相关的知识,希望对你有一定的参考价值。

关注我,每天给你分享Java干货知识

一提到Linux命令,大家会想到最常用的cd、ls、rm、vi、tar等命令。

那么大家知道这些命令是哪些英文单词的缩写吗?
其实每个命令,背后都有它的含义。

今天小千就跟大家聊聊命令背后的小秘密~

本文帮你解决这些平时没有注意到的细节,最终实现:知其然并知其所以然。

聊聊Linux命令背后,你不知道的小秘密
NO.1
基础知识

1、Linux主要特征 :

一切即文件(目录、硬盘等都是文件);


硬件都在/dev 目录,如硬盘、U盘为/dev/sd[a-d];/dev/sr0

2、Linux命令常用结构 :
Command [-option] [argument]

Command: 即是要运行的命令的本身,就是一个程序;

Option: 是选项(可选),选项是控制命令运行状态和行为的,可以多个选项一起;

Argument: 是参数(可选),是命令要操作对象如文件、路径、数据、目录等;

【提示:“-”后面的部分叫做选项,没有“-”的部分叫做参数。】

ctrl + c可以退出命令。

聊聊Linux命令背后,你不知道的小秘密

聊聊Linux命令背后,你不知道的小秘密
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

聊聊Linux命令背后,你不知道的小秘密


(二)、查看文件内容及文本处理的命令

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
表示显示包括关键词所在行

聊聊Linux命令背后,你不知道的小秘密


(三)、输出重定向的命令

1、覆盖或追加重定向信息

>表示输出重定向,也就是改变原来系统命令的默认执行方式。
>表示覆盖原文件内容,>>表示追加内容

例如:ls -l >file
表示将ls -l命令结果输出到file文件中,如果file不存在就创建,如果存在则覆盖原有内容。

2、覆盖或追加重定向 错误信息

例如:cat 文件名 2> file
当文件名不存在时,该命令会将错误信息输出保存至file文件中

2>之间没有空格
2>> file表示将错误信息追加到file文件中

聊聊Linux命令背后,你不知道的小秘密


(四)、查找文件的命令

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表示递归查找

聊聊Linux命令背后,你不知道的小秘密


(五)、文件权限的命令

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命令博大精深,若不细心挖掘,我们可能一直停留在基础上,经过小千一番深深挖掘,以上命令背后的小秘密大家都学会了吗?

 咨询  学习资料、课程介绍欢迎添加小千学姐 领取~微信ID:dasima2018或QQ:2850728014

以上是关于聊聊Linux命令背后,你不知道的小秘密的主要内容,如果未能解决你的问题,请参考以下文章

DISQL你不知道的小秘密之“disql pagesize”设置

聊聊Java String.intern 背后你不知道的知识

webstorm你不知道的秘密

[肯定不知道]PeopleSoft中PSADMIN你不知道的秘密

trycatchfinally详解,你不知道秘密

DCL单例模式你不知道的秘密