Linux中有许多命令,下面介绍一些常用的命令。
命令的基本格式为:命令名 选项 【源操作对象】【目标操作对象】
一.对目录进行的操作指令
1.ls 列出目录下的文件
选项有:-a 查看所有文件,包括隐藏文件。注意:隐藏文件以‘.’开头。
-l 查看文件的具体信息。包括文件的所属者,权限和文件创建的时间,以及文件的大小。
-t 查看文件,并以时间进行排序。
-r 对当前文件排序逆序排列。
-S 按文件大小排列。
2. pwd 显示当前所在路径。注意:该路径从根目录开始,显示的是绝对路径。
3.mkdir 创建目录。使用方法:mkdir 要创建文件的名字。
选项: -p 从外往内创建目录。如: mkdir -p ./1/2/3 :在当前目录下先创建目录1,在1中创建目录2,在2中创建目录3.
4.rmdir 删除空目录。注意:只能删除空的目录。
选项: -p 从内往外递归删除空目录。如:rmdir -p aaa/bbb:先删除空目录3,然后删除空目录2,最后删除空目录1。
5.cd 改变当前所在的目录,进入指定目录。
选项: - 返回上次所在目录。
~ 返回当前用户的家目录。
.. 返回当前目录所在的上级目录。
6.rm 删除文件,默认删除普通文件。
选项: -f 忽略提示信息,强制删除。
-r 删除所有文件,包括目录型文件。
7.cp 拷贝文件到指定位置,默认只能拷贝普通文件。如:cp hello.c 1:拷贝jin.c文件到目录1下。
选项:-r 拷贝所有文件包含目录型文件。 如:cp -rf 1 2:拷贝文件1到目录2下。
-f 忽略提示信息。
8.mv 移动指定文件到指定位置。
选项: -f 忽略提示信息。
-i 增加提示信息。
二.对文件进行的操作
1.touch 若文件不存在,则创建;文件存在则刷新文件的时间属性。
选项:-r 以一个文件的时间属性刷新另一个文件的时间属性。 如:touch -r 1 jin.c:把文件jin.c的时间属性变为和文件1的时间 属性相同。
-t 以指定的时间属性刷新指定文件。如:touch -t 200010011212.30 1.txt:把1.txt的时间属性设置为2000年10月1日12 点12分30秒。
2.cat 打印文件内容显示到终端显示。
选项:-n 显示行号。
3.tac 按行逆序打印文件内容。
4.more 按页显示文件内容。
选项:空格 向上翻页
b 向下翻页
回车 按行向下走
q 退出
5.less 按页显示文件内容。与more的区别是less比more的选项更多。
选项:f/空格/pagedown 向下翻页
b/pageup 向上翻页
上 下 按行走
q 退出
/string 向下匹配string字符串
?string 向上匹配string字符串
6.head 显示文件的前n行内容,默认显示前10行。
选项:-n 指定行数。 如:head -n 3 1.txt :显示1.txt的前3行内容。
7.tail 显示文件的后n行内容,默认显示后10行。
选项:-n 指定行数。 如:tail -n 3 1.txt :显示1.txt的后3行内容。
-f 动态刷新显示文件末尾内容。常用于看日志。
三.对文件的压缩、解压、打包、解包等命令。
1.zip/unzip:按zip格式进行压缩/解压缩。 eg:zip bit.zip bit.txt//其中,bit.zip是压缩包的名称,bit.txt是要压缩的文件。
unzip bit.zip//解压为bit.txt
2.gzip/gunzip:按gzip格式进行压缩/解压缩。eg:gzip bit.txt//系统自动生成一个bit.txt.gz的压缩文件。
gunzip bit.txt.gz//系统进行解压,如果解压的文件和目录已有的文件相同,则系统自动删去其中一个。
3.bzip2/bunzip2:按bzip2格式进行压缩/解压缩。eg:bzip2 bit.txt//系统生成一个1.txt.bz2的压缩文件。
bunzip2 bit.txt.bz2//系统解压为一个bit.txt的文件
4. tar 文件打包(对一个目录或多个目录进行打包)
选项: -c 打包
-x 解包
-v 显示详细的打包/解包信息。
-f 指定包名,所以-f通常是最后一个选项。
-z 打包/解包同时以gzip格式压缩/解压缩。文件以'.tar.gz'为后缀。
-j 打包、解包同时以bzip2格式压缩/解压缩。文件以'tar.bz2'为后缀。
eg:tar -cvf test.tar hello.c test work.txt test.tar为最后生成的压缩包名,后面为要打包的文件,该命令并不会对hello.c test work.txt等文件进行压缩,只是把这些文件复制一份到test.tar中。
四.查找匹配命令
1. find 从指定路径下查找文件
选项: -name 按文件名查找 eg:find ./ -name "hello.c":从当前目录下按名字查找hello.c文件,如果找到,返回的是hello.c从当前文件下开始所在的路径。没有找到,什么也不做。
-type 按文件类型查找 eg:find ./ -type d:从当前目录下查找目录类型的文件,最后返回所有的目录的路径。
-size +/-n 按文件大小查找(+:大于n;-:小于n)
eg:find ./ -size +10k(-10k):查找大(小)于10k的文件。
2.grep 字符串内容匹配,在文件内容中匹配包含指定字符串的行。
-i:忽略大小写进行匹配,最后输出大小写所在的行,都输出。
-v:反向匹配,匹配的是不包含指定字符串所在的行。
-R:递归在指定目录下的所有文件中进行匹配
eg:grep "tian" 1.txt:在1.txt中匹配tian并输出所在的行。
grep -i "tain" 1.txt:输出所有Tain和tain所在的行。
grep -v "tain" 1.txt:最后输出的是1.txt中不包含"tain"所在的其余所有行。
grep -R "tain" ./:在当前目录下查找所有包含"tain"的文件
五.其它操作命令
1.su 切换用户,默认切换root用户。如:su h:切换到h用户。
2.cal:查看日历,默认打印当前月日历。
选项:-j 按一年中的第几天来显示日历。
-y 查看全年日历。
3. bc:计算器
4.date:显示当前系统时间
+%s 显示时间戳(1970-01-01 00:00:00到现在所经过的秒数)
+'%F %T %Y-%m-%d %H:%M:%S' 指定格式打印时间
-s 设置系统时间 eg:date -s“2018-10-07 15:59:20”
5.halt 关机(适用于Redhat)
6.shutdown -h now 关机(适用于Ubuton)
7.reboot 重启
六.Linux的权限管理
Linux操作系统是一个多任务,多用户操作系统。Linux对每一个文件都进行了权限的管理。
1.文件权限管理:
文件的管理是针对用户的权限,用户分三类:
u(user) 文件所有者:这个文件属于谁
g(group) 文件所属组:文件属于哪个用户组(组内成员的权限)
o(other) 其他用户:除了上边两类用户之外的用户。
用户应该对文件具备的权限也分三类:
r 可读权限:用户是否可以读取这个文件内容r
w 可写权限:用户是否可以修改这个文件内容w
x 可执行权限:用户是否可以执行这个文件x
权限是针对三类用户,每个用户权限分了3种。如:某文件的权限是rwxrw-r-x,则
所有者的权限是 rwx,所属组的权限为 rw- ,其他用户的权限是 r-x。
不同的权限对文件和目录的意义也不同。
文件: 目录:
r:可读 可浏览
w:可写 可创建/删除
x:可执行 可进入
2.修改文件的权限。
(1)chomd 修改文件权限
方法一:给指定的用户添加/删除指定权限。u/g/o/a +/- r/w/x
eg:chomd +x file:不指定用户时,默认为所有用户。
方法二:以八进制数字来修改。
eg:chomd 777 file
eg:chomd u+x bbb.txt:给用户增加可执行权限
chomd g-x file
(2)chown 修改文件所有者
对于在root用户下创建的文件,在user用户下,要想对文件实现写权限。
方法一:修改文件权限 在root用户下执行命令chmod a+w test.txt,再在smile用户下写。
方法二:修改文件所有者 在root用户下执行命令chown smile 2.txt,就可以在smile用户下对
文件2.txt写了。
(3)chgrp 修改文件所属组
eg:在root用户下,执行chgrp smile 3.txt,就可以在smile用户下对3.txt文件进行写。
七.几个重定向符号
1. >> 追加
2. > 清空
3.| 管道符 连接两个命令,将前边命令的输出结果交给后边命令进行处理。
eg: ls -l | grep hello:把包含hello的文件行都打印出来。把前面的结果交给后面处理。