很多人可能在电视或电影中看到过类似的场景,黑客面对一个黑色的屏幕,上面飘着密密麻麻的字符,梆梆一顿敲,就完成了窃取资料的任务。
Linux 刚出世时没有什么图形界面,所有的操作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩(相信大部分人都有一个黑客梦,我也不例外)
近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。可以说不会命令行,就不算会 Linux。
Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。Linux 发行版本最少的命令也有 200 多个,这里就只分享比较重要和使用频率最多的命令。
Linux命令格式:
command [-options] [parameter1] …
中文翻译过来就是:
命令 [-选项(可以是多个)] [参数(可以是多个)]
说明:
command: 命令名,相应功能的英文单词或单词的缩写 [-options] :选项,可用来对命令进行控制,也可以省略,[]代表可选 parameter1 … :传给命令的参数:可以是零个一个或多个
<1>–help
一般是linux命令自带的帮助信息
如:ls --help
<2>man(有问题找男人,manual)
man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明
该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。
例:man ls ; man 2 printf
man中各个section意义如下:
1.Standard commands(标准命令)
2.System calls(系统调用,如open,write)
3.Library functions(库函数,如printf,fopen)
4.Special devices(设备文件的说明,/dev下各种设备)
5.File formats(文件格式,如passwd)
6.Games and toys(游戏和娱乐)
7.Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)
8.Administrative Commands(管理员命令,如ifconfig)
man是按照手册的章节号的顺序进行搜索的。
功能键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出man命令 |
h | 列出所有功能键 |
/word | 搜索word字符串 |
注意:实际上,我们不用指定第几个章节也用查看,如,man ls
在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令
1.查看文件信息:ls
ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。另外Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“…”代表上一级目录,还有之前漏讲的以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。
语法说明:
命令 | 说明 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 以列表方式显示文件的详细信息 |
-d | 可以查看当前目录的属性 |
总结:ls -l 就等价于 ll 个人还是比较喜欢ll的,ll可以和上面的命令进行组合(例如:ll -d可以以列表方式显示当前目录的属性 )
与DOS下的文件操作类似,在Unix/Linux系统中,也同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。在这引用一张图给大家看看。
2.切换工作目录:cd
在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感
语法说明:
命令 | 说明 |
---|---|
cd / | 进入用户的主目录 |
cd test | 进入当前目录下的test目录 【这个是相对目录】 |
cd /root/test | 进入root目录下的test目录 【这个是绝对目录】 |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 切换到当前目录 |
cd … | 切换到上级目录 |
cd - | 可进入上次所在的目录 |
cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。
注意:如果路径是从根路径开始的,则路径的前面需要加上 “ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 “ / ”。
3.清屏:clear
clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。
4,显示当前路径:pwd
使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。
语法说明:
5.创建目录:mkdir
通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。
需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。
语法说明:
范例:
mkdir test 在当前目录下创建一个test的目录
mkdir /root/test 在root目录下创建一个test目录
mkdir /root/test1/test2/test3 创建目录 这里会报错,因为test1,test2目录不存在 解决办法是 mkdir -p /root/test1/test2/test3
mkdir /root/test4 /root/test4 同时创建两个目录
mkdir test6 test7 在当前目录下创建两个目录
mkdir 'pargam files’创建一个有空格的目录【不推荐使用】
6.创建文件:touch
通过touch命令可以创建一个新空文件
语法说明:
7.拷贝文件:cp
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。
常用选项说明:
选项 | 说明 |
---|---|
-a | 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性 |
-n | 已经存在的目标文件而不提示 |
-i | 交互式复制,在覆盖目标文件之前将给出提示要求用户确认 |
-r | 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
-v | 显示拷贝进度 |
语法说明:
命令名称:cp
命令英文原意:copy
命令所在路径:/bin/cp
执行权限:所有用户
R 复制目录
功能描述:复制文件或目录 ,默认的cp只能复制文件,不能是目录 如果是目录要使用-r
语法:cp -R [源文件或目录] [目的目录]
案例:
cp -r /root/mywork /root/helloworld 把mywork复制到helloworld里面
cp -rvif /root/install.log /root/helloworld 把install.log文件复制到helloworld里面 并显示进度
总结:cp 默认可能拷贝文件,所以可以省略-R,-r可以拷贝目录。
8.动文件:mv
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。
常用选项说明:
选项 | 含义 |
---|---|
-f | 禁止交互式操作,如有覆盖也不会给出提示 |
-v | 显示移动进度 |
语法说明:
9.删除目录:rmdir
可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败.
10.删除文件:rm
可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。
常用参数及含义如下表所示:
命令 | 说明 |
---|---|
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹时必须加此参数 |
-v | 显示删除进度 |
语法说明:
11.查看或合并文件:cat
cat 命令用于连接文件并打印到标准输出设备上。
常用参数及含义如下表所示:
命令 | 说明 |
---|---|
-n | 显示文件里数据的行号 |
12.分屏显示:more
查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
语法说明:
13.查看文件前几行:head
语法说明:
14.查看文件后几行:tail
语法说明:
15.建立链接文件:ln
Linux链接文件类似于Windows下的快捷方式。
链接文件分为软链接和硬链接。
软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
硬链接:硬链接只能链接普通文件,不能链接目录,会同步更新。
使用格式:
ln 源文件 链接文件
ln -s 源文件 链接文件
如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
语法说明:
ln a.txt a2.txt 创建一个a.txt的硬链接a2.txt,下图可以看见他们的大小是一样的.
ln -s b.txt b2.txt 创建一个b.txt的软链接b2.txt,如果是软链接我们可以看见会有一个箭头指向源文件.
16.输出重定向命令
Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
个人理解:其实简单来说这个就是将你查询的结果放在了一个文件里面
注意: >输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。
17.命令搜索命令:which
作用:显示系统命令所有目录
语法说明:
命令名称:which
命令所在路径:/usr/bin/which
执行权限:所有用户
语法:which [命令名称]
功能描述:显示系统命令所在目录
范例: which ls 可以查看命令所在的目录
18.文件搜索命令:find
作用:查找文件
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
常用用法:
命令 | 说明 |
---|---|
find test.sh | 查找当前目录下所有名为test.sh的文件 |
find *.sh | 查找当前目录下所有后缀为.sh的文件 |
find [a-z]* | 查找当前目录下所有以字母开头的文件 |
find /tmp -size 2M | 查找在/tmp 目录下等于2M的文件 |
find /tmp -size +2M | 查找在/tmp 目录下大于2M的文件 |
find /tmp -size -2M | 查找在/tmp 目录下小于2M的文件 |
find -size +4k -size -5M | 查找当前目录下大于4k,小于5M的文件 |
find -perm 777 | 查找当前目录下权限为 777 的文件或目录 |
19,文件搜索命令:grep
搜索文件里面的内容的命令。
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式为:
grep [-选项] ‘搜索内容串’文件名
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep ‘a ’ a.txt。
常用选项说明:
选项 | 含义 |
---|---|
-v | 显示不包含匹配文本的所有行(相当于求反) |
-n | 显示匹配行及行号 |
-i | 忽略大小写 |
grep搜索内容串可以是正则表达式。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
grep常用正则表达式:
命令 | 含义 |
---|---|
^a | 行首,搜寻以 a 开头的行;grep -n ‘^a’ a.txt |
ke$ | 行尾,搜寻以 ke 结束的行;grep -n ‘ke$’ a.txt |
[Ss]igna[Ll] | 匹配 [ ] 里中一系列字符中的一个;搜寻匹配单词signal、signaL、Signal、SignaL的行;grep -n ‘[Ss]igna[Ll]’ a.txt |
. | (点)匹配一个非换行符的字符;匹配 e 和 e 之间有任意一个字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;grep -n ‘e.e’ a.txt |
语法说明:
20.归档管理:tar
计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
tar使用格式 tar [参数] 打包文件名 文件
tar命令很特殊,其参数前面可以使用“-”,也可以不使用。
常用参数:
命令 | 说明 |
---|---|
-c | 生成档案文件,创建打包文件 |
-v | 列出归档解档的详细过程,显示进度 |
-f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
-t | 列出档案中包含的文件 |
-x | 解开档案文件 |
-z | 打包的同时压缩 |
注意:除了f需要放在参数的最后,其它参数的顺序任意。
21.网络命令
//下载文件
语法: wget http://地址
不要使用它去下载里面有jar包的文件,因为很可能jar下载不全,我这里使用的是Xftp传输的.
因为在CentOS7中默认没有wget 所有可以使用Yum install
下载文件并安装
语法: Yum install 软件包名