从这篇文章开始,我将记录总结一下我学习Linux的过程,方便今后查找以及复习。若文章中有错误,请大家及时指出。
一.常用命令:
命令格式:
命令名称 【命令参数】【操作对象】
Linux基本命令分为:
1.目录相关命令。
2.普通文件命令。
3.压缩/解压缩命令。
4.系统时间命令。
5.匹配查找命令。
6.其他命令。
-
目录相关命令:
ls: 列出当前目录下的文件列表信息。
-a:显示隐藏文件(注:Linux中的隐藏文件通常以 . 开头)
-l:显示目录文件下的详细信息。
-r:对目录反向排序。
-R:递归列出目录下的所有文件。
-s:打印出文件的大小。
-t:按照时间前后对目录进行排序pwd:显示当前所在路径。(显示为:绝对路径)
绝对路径:以根目录作为起始路径,成为绝对路径。
相对路径:以当前目录作为起始路径,成为相对路径。
mkdir:创建目录(文件夹)
-p:逐级创建多层目录。(递归创建目录)rmdir:删除空目录(文件夹)
-p:逐级删除多层目录。(递归删除目录)rm:删除普通文件
-r:递归删除目录以及目录下的所有文件
-f:忽略提示信息,直接进行操作。
-i:显示提示信息,删除前逐一进行确定。cp:拷贝一个文件到指定目录中去,如果这个指定目录不存在,相当于改名备份。
-r:递归复制目录以及目录下的所有文件
-f:忽略提示信息,直接进行操作。mv:移动一个目录/文件到指定位置(eg:mv [选项] [源文件] [目标文件])(注:如果目标文件不存在,则相当于备份改名)
-i:显示提示信息。cd:进入指定目录。
~:当前用户的家目录。
-:上一次活动的路径。 -
普通文件命令
file:辨识文件类型。
stat:显示文件详细信息。eg:stat filenametouch:刷新文件属性,如果文件不存在创建新的文件。(命令格式:touch [选项] [依赖文件] [目标文件])
-c:不创建任何文件。
-d:使用指定时间来刷新文件的时间属性。(字符串形式:“1999-11-22 07:08:56”)
-r:使用指定文档的时间属性刷新另一个文件的时间属性。
-t:使用指定的时间日期来刷新文件的时间属性。(格式如下:[[CC]YY]MMDDhhmm[.SS]
这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则linux中touch命令参数将把年数CCYY限定在1969–2068之内.MM为月数,DD为天将把年数CCYY限定在1969–2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0–61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时间.由于系统的限制,早于1970年1月1日的时间是错误的)cat:打印文件内容信息
-n:在内容前面显示行号。tac:按照行逆序显示文件内容
more:分页显示文件内容。(注:不能向上翻页)
空格:向下翻页。
回车:向下滚动一行。less:分页显示文件内容(注:可以向上翻页)
空格:向下翻页。
b:向上翻页。
/string:向下匹配字符串string.
?string:向上匹配字符串string.
n:匹配下一个。(next)head:显示文件内容前 10 行内容。
-n指定显示文件前 n 行内容(n:表示具体的数字)。tail:显示文件内容后 10 行内容。
-n指定显示文件后 n 行内容(n:表示具体的数字)。
-f:一直刷新文件末尾的内容 。 -
压缩与解压缩命令
zip/unzip:zip 格式的压缩与解压缩。
-r: 递归对目录及目录下所以文件进行操作。
eg:zip 123.zip 123.(压缩)
eg:unzip 123.zip.(解压缩)gzip/gunzip:gzip 格式的压缩与解压缩。
eg:gzip 123(其后可以跟上多个文件)
eg:gunzip 123.gz(其后可以跟上多个文件)bzp2/bunzip2:bzip2 格式的压缩与解压缩。
eg:bzip2 123(其后可以放置多个文件)
eg:bunzip2 123.bz2(同样)
最常用的最重要的:
tar:
-c:打包。
-x:解包。
-z:打/解包同时进行bzip2格式的压缩与解压缩。
-j :打/解包同时进行gzip格式的压缩与解压缩。
-v:显示详细的打/解包信息。(view)
-f :用于指定文件名(通常放到最后)(file)
eg:tar -czvf c.tar.gz 123.c 456.c 789.c(将文件123.c 456.c 789.c打包并且压缩到c.tar.gz).
eg:tar -xzvf c.tar.gz (将文件c.tar.gz解包并且解压缩).
-
系统时间命令
date:查看系统当前时间。
+:以指定格式进行显示。
-s: 设置系统时间。(注:必须为 root 下才可以修改)cal:查看日历。
-y :显示一整年的日历。
-j :以天数显示日历。
-3:显示最近三个月的日历。 -
匹配查找命令
grep:文件内容的匹配查找。eg:grep [选项] [字符串] [文件]
-i:忽略大小写。(ignore)
-v:反向匹配,匹配不包含指定字符串的行。(invert)
-R:递归匹配目录下的所有文件的内容。(recursive递归)find:在指定目录下查找文件。(注:+/-:表示大于/小于)
-name:按照文件名进行查找。
-type :按照文件类型进行查找。
-size:按照文件大小进行查找。+/-n 单位:【c b w k M G】
-mtime -atime -ctime:通过时间来进行查找。(单位为:天)+/-n
-mmin -amin -cmin:通过时间来进行查找。(单位为:分钟)+/-n
-exec:连接一个命令,对查找到的文件进行操作。(execute)
eg:find ./ -mmin -1 -exec rm -rf ‘{}’ \; -
其他命令
man:命令手册(不会的指令,模糊的指令直接 man 它)。
| :管道符,连接两个命令,将前面的命令的处理结果交给后面的进行处理。
bc:计算器。
su:切换用户
>:修改数据流向。
tab:自动补全功能。
CTRL+c:终止当前操作。
reboot:重启。
halt:关机。
shutdown -h now:立即关机。
idd:查看可执行程序的依赖项。
uname:用来获取电脑和操作系统的相关信息。
-r:显示版本信息。
-a:输出详细信息。
以上为我们常用的基本命令,后期我会继续更新新的关于其他方面的命令
二.权限理解:
在我们日常生活中,也有很多的事情与权限相关。比如:当我们想进去某些公司,学校可能需要登记信息才能允许进入,但是,他们的相关人员,则不需要就可以直接进入,这就是因为他们有相关权限,而外来人员没有相关权限,其实这个和我们的计算机里的权限是相似的。我们来一起看看Linux中文件的相关权限。
说起权限我们就不得不说一下Linux中用户分类:
Linux中的用户分类:
1.超级用户(root):在Linux中做任何事情不受限制。
2.普通用户:只能做被允许的事情。
我们先用ls -l 看一下文件相关权限在哪里表示着,如下图:
文件权限对用户的分类:
文件所有者 文件所属组 其他用户
u g o
文件权限对操作的分类:
可读 可写 可执行(当为文件时)
可浏览 可创建/可删除 可进入(当为目录时)
r w x
如果文件权限对文件操作都有那么表示为:rwx ,如果缺少哪一个权限就用 - 表示,比如,缺少可执行权限时为:rw- 。
字符表示:rwx rwx rwx.
为了方便表示,大佬们用二进制来进行了表示
位图表示:111 111 111
大佬觉得还是很麻烦,就又改进了表示方法,用八进制表示
八进制数字进行表示:7 7 7
注:当一个文件被创建出来的时候,它的给定权限为 7 7 7,
我们来看一看是不是呐?
我们可以看到它的权限为 6 6 4, 而不是 7 7 7,这其实不是我们所说的是错的,而是权限在给予的时候有一定的规则。
先来看几个权限相关的命令:
umask:查看/设置文件的创建权限掩码。(注:普通用户掩码为 0002, 超级用户(root)掩码为 0022)
实际权限 = 给定权限 & (~umask);
这就能解释为什么刚才创建文件权限为 6 6 4,首先,给定权限为 7 7 7 ,~umask 为 7 7 5 他们两个 & 后为 7 7 5,由于,它本身就是文本文件,不是可执行程序,因此,每个在减去 0 0 1 ,故为 6 6 4。
在我们实际工作中,如果我们想修改某些文件的权限就要使用如下指令:
chmod:修改文件权限。(注:有两种修改方式)(格式:chmod [选项] [劝限] 文件名)
-R:递归修改目录下所有文件的权限。
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
1.chmod 777 filename (通过八进制数字权限修改)
2.chmod o - x filename(通过用户的权限修改)
3.chmod o + x filename
chown:修改文件所有者。(格式:chown [选项] [用户名] [文件名])
eg:chown uername filename
chgrp:修改文件所有组。
eg:chgrp grpname filename
最后再说一个:
粘滞位:(设置:chmod +t 文件名)
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除