- 显示日期指令date
- 显示日历指令cal
只有cal的时候,显示当时日期的日历
当cal后面带了一个年份参数,显示全年的日历
cal后面有两个参数,第一个是月份,第二个是年份,那么显示那一年那一月的日历
- 简单好用的计算器bc
bc的除法只显示整数部分
如果想要除法可以显示小数部分,那么需要执行scale=number
-
数据同步写入磁盘sync。这个命令用于把存在内存中尚未更新的数据写入磁盘,所以这个命令在关机和重启之前执行。
-
关机命令shutdown
参数 | 含义 |
---|---|
-t | -t 后面加一个数字,表示几秒之后关机 |
-k | 表示不要真的关机,只是发送警告讯息 |
-r | 在将系统的服务停掉之后就重新启动 |
-h | 将系统的服务停掉之后就立即关机 |
-n | 不经过init程序,直接以shutdown的功能来关机 |
-f | 关机并开机之后,强制略过fsck的磁盘检查 |
-F | 系统重新启动之后,强制进行fsck的磁盘检查 |
-c | 取消已经在进行的shutdown内容 |
shutdown指令一定要加入时间参数!!
- 改变文件所属群组chgrp
参数 | 含义 |
---|---|
-R | 如果-R 后面是一个目录名字,那么递归改变这个目录里面的文件所属的群组 |
-v | 显示详细的处理信息 |
-f | 不显示错误信息 |
-c | 当发生改变时输出调试信息 |
命令格式:chgrp [参数] 群组名 文件名/目录名
这里有一个问题,在普通用户模式不能更改文件权限到bin群组,必须是超级用户才有权限。
改变了文件的群组之后可以用命令查看
- 改变文件拥有者chown
参数 | 含义 |
---|---|
-R | 如果-R 后面是一个目录名字,那么递归改变这个目录里面的文件所属的群组 |
-v | 显示详细的处理信息 |
-f | 不显示错误信息 |
-c | 当发生改变时输出调试信息 |
命令格式:chown [参数] 文件新拥有者的ID:文件新群组的的ID 文件名/目录名
只有改变文件的所属用户,不对文件的群组进行规定。但是改变文件需要超级用户权限。
-
增加用户并且给用户添加密码
命令格式:useradd 用户名 //增加一个用户必须在超级用户的权限下
passwd 用户名 //修改用户名
userdel -r 用户名 //删除用户的同时也删除用户在系统文件中的记录
-
档案与目录显示ls
参数 | 含义 |
---|---|
-a | 列出全部的档案,包括隐藏档案和.和…两个档案常用 |
-A | 列出全部的档案,包括隐藏档案但是不包括.和…两个档案常用 |
-d | 仅列出目录本身,而不是列出目录内的档案数据常用 |
-l | 长数据串行列出,包含档案的属性与权限等数据常用 |
-f | |
-F | |
-h | |
-i | |
-n | |
-r |
ls不带参数时,直接显示目录下的文件和档案,蓝色的是目录,白色的是文件,绿色的是可运行文件,红色的是压缩文件。
ls 带a参数的时候,现实目录下面的所有隐藏文件,包括.和…两个目录
ls带A参数可以显示隐藏文件夹,但是不包括.和…两个文件夹。
无论在哪个文件夹,ls带d参数显示的都是一样的结果
ls带l参数可以显示这个目录下面的文件的目录的文件权限以及拥有者和所属群组等信息,但是不包括隐藏文件和目录。
但是ls带l参数和d参数可以显示当前目录的详细信息
我们解析一下结果的前10个字符
第一个字符
参数 | 含义 |
---|---|
d | 目录 |
- | 文件 |
l | 链接文件 |
b | 装置文件里面的可供存储的接口设备 |
c | 装置文件里面的串行接口设备,例如键盘和鼠标 |
接下来的字符是三个一组,且都是rwx为一组,r表示读,w表示写,x表示执行,如果没有这一个权限就会显示-
第一组rwx表示的是文件拥有者的权限。
第二组rwx表示文件所属的群组的权限。
第三组rwx表示其他用户的权限。
- 改变文件的权限chmod
权限改变有两种方法,分别可以使用数字或者符号来进行权限的变更。
根据上面的权限显示,rwx分别表示三种权限。那么如果有这个权限用1表示,没有这个权限用0表示,那么rwx可以表示成从000到111这8种表示,再把000到111转换成为二进制。也就是如果rwx三种权限都有就是7,如果三种权限都没有就是0。
那么三组rwx的组合就是000到777。根据这种数字方法可以修改文件的权限。
举例子:
初始文件权限
我们用数字方法修改apple这个文件的权限。
第二种方法是用字符的方法改变文件权限。
语法格式:chmod [u/g/o/a] [+/-/=] [r/w/x] 文件/目录名
u表示文件拥有者
g表示文件所属权限
o便是其他用户
a表示所有权限
+表示加上这一权限,
-表示除去这一权限
=表示设定为这一权限
初始文件权限:
我们用字符的方式修改文件权限
-
查看目前所在的目录
-
变换目录cd
变换目录有两种根据绝对路径和相对路径。同时还有一些特殊符号。
-
建立目录和删除目录
建立目录mkdir
参数 | 含义 |
---|---|
-m | 直接配置文件和目录的权限,不用考虑umask |
-p | 直接帮你把需要的上层目录递归的建立起来,包含上层目录 |
举例子:
删除空目录是rmdir
- 复制档案或目录cp
参数 | 含义 |
---|---|
-a | 此选项通常在复制目录时使用,它保留链接,文件属性,并复制目录下所有内容 |
-d | 复制时保留链接,相当于Windows的快捷方式 |
-f | 覆盖已存在的同名文件而不给出提示 |
-i | 当已经存在同名文件时,给出提示,要求用户是否覆盖,如果覆盖请按Y |
-p | 除了复制文件的内容外,还把修改时间和访问权限也复制到新文件中 |
-r | 若给出的源文件是一个目录文件,那么在复制时递归复制子目录和文件 |
-l | 不复制文件,只是生成链接文件 |
16.移动档案或者目录或者改名mv
命令语法:mv [源文件名字1…源文件名字n] 目标文件名字
参数 | 含义 |
---|---|
-f | 强制的意思,在目标文档已经存在的情况下,不再询问,直接覆盖 |
-i | 若目标文档已经存在则询问是否覆盖 |
-u | 若目标文档已经存在,并且目标文档的更新时间比较新,就进行更新 |
-
取得路径的文件名basename和路径名dirname
一般用于shell编程
-
显示文件内容cat
参数 | 含义 |
---|---|
-b | 列出行号,仅针对非空白行列出行号 |
-n | 打印出行号,空白行也显示行号 |
-v | 列出一下看不出来的空白字符 |
-E | 将结尾的断行符$显示出来 |
-
从最后一行开始显示文件内容tac
-
显示文档内容的时候,显示行号nl
参数 | 含义 |
---|---|
-b a | 不论是否为空行,同样列出行号 |
-b t | 如果有空行,空的那行不显示行号(默认值) |
-n ln | 行号在屏幕最左边显示 |
-n rn | 行号在字段最右方显示,并且不显示0 |
-n rz | 行号在字段最右方显示,并且显示0补齐行号 |
-w | 规定行号所占用的位数 |
- 一页一页显示文件内容more
操作 | 含义 |
---|---|
空格 | 代表向下翻一页 |
Enter | 代表向下翻一行 |
/字符串 | 代表在这个显示内容当中,向下搜寻字符串的关键字 |
:f | 立刻显示文件名和目前显示的行数 |
q | 立刻离开more |
b | 往回翻页,只对文件有效,对管道无效 |
- 与more相类似,但是更好用less
操作 | 含义 |
---|---|
空格 | 代表向下翻一页 |
[pagedown] | 代表向下翻一页 |
[pageup] | 代表向上翻一页 |
/字符串 | 代表在这个显示内容当中,向下搜寻字符串的关键字 |
?字符串 | 代表在这个显示内容当中,向上搜寻字符串的关键字 |
n | 重复前一个搜寻,与/和?有关 |
N | 反向重复前一个搜寻,与/和?有关 |
q | 离开less这个程序 |
-
显示头几行head
命令语法:head -n 数字 文件名字
默认是10行
-
显示尾几行tail
命令语法:tail -n 数字 文件名字
默认是10行
-
已某种方式读取文件内容od
参数 | 含义 |
---|---|
-t a | 默认字符来输出 |
-t c | 用ASCII来显示 |
-t d[数字] | 代表向上翻一页 |
-t d[数字] | 利用十进制来输出数据,每个整数占用数字位数 |
-t d[数字] | 利用浮点数来输出数据,每个整数占用数字位数 |
-t o[数字] | 利用八进制来输出数据,每个整数占用数字位数 |
-t x[数字] | 利用十六进制来输出数据,每个整数占用数字位数 |
- 显示inode内容stat命令
stat以文字格式来显示inode内容
- 科普Linux里面的文件有三个时间:atime(access time 访问时间),ctime(change time 状态修改时间),mtime(modify time 修改时间)。
- atime(access time)显示的是文件中的数据最后被访问的时间。比如系统的进程直接使用或者通过命令间接使用(执行一些可以执行的文件或脚本)。
- mtime(modify time)显示的是文件内容被修改的最后时间,比如用vi编辑时就会改变。
- ctime(change time)显示的是文件的权限,拥有者,所属的组链接数发生改变的时间。
- 修改文档时间或者创建文档touch
参数 | 含义 |
---|---|
-a | 仅修订access time |
-c | 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。 |
-d | 可以规定修订文件的时间而不用当前的时间,也可以使用 --date=时间 |
-m | 仅修改mtime |
-t | 后面接想要修改的日期而不用当前的日期,格式为[YYMMDDhhmm] |
举例子:
加上-a参数之后发现最近访问时间(access time)改变了,但是最近更改时间(modify time)没有改变
关于-c参数
-
档案预设权限umask
umask可以用来设置权限掩码,权限掩码由3个八进制的数字所组成。
对于文件,将666减去权限掩码就是创建文件时的默认权限。
对于目录,将777减去权限掩码就是创建文件时的默认权限。
-
配置文档隐藏属性chattr
这个命令可以改变存放在ext2文件系统上的文件或目录属性,这种属性共有以下8种模式
模式 | 含义 |
---|---|
a | 让文件或目录仅供附加用途,也就是这个文档或者目录只可以增加,不能删除或者修改 |
b | 不更新文件或目录的最后存取时间 |
c | 将文件或目录压缩之后存放 |
d | 将文件或目录排除在倾倒操作之外 |
i | 不得任意更动文件或目录,不能被删除,改名,设置连接也无法写入或添加数据 |
s | 保密性删除文件或目录,如果文件被删除,它将完全从这个硬盘空间中删除 |
S | 即时更新文件或目录 |
u | 预防意外删除,如果文件被删除了,数据实际内容其实还存在在磁盘 |
命令语法:chattr [-RV] [-v<版本编号>] [+/-/=属性] [文件名/目录名]
- 显示文档和目录的隐藏属性lsattr
参数 | 含义 |
---|---|
-a | 将隐藏的文件属性也显示出来 |
-d | 如果接的是目录,仅列出目录本身,不包括目录内的文件 |
-R | 连同子目录的数据一起显示 |
- 观察文件类型file
参数 | 含义 |
---|---|
-b | 列出辨识结果时,不显示文件名称。 |
-c | 详细显示指令执行过程,便于排错或分析程序执行的情形 |
-f<名称文件> | 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。 |
-L | 直接显示符号连接所指向的文件的类别。 |
-z | 尝试去解读压缩文件的内容。 |
-v | 显示版本信息。 |
- 查找文件which
which指令会在环境变量$PATH设置的目录里查找符合条件的文件
参数 | 含义 |
---|---|
-n<文件名长度> | 指定文件名长度,指定的长度必须大于等于所有文件中最长的文件名 |
-p<文件名长度> | 与-n参数相同,但这里的文件名包括文件的路径 |
-w | 指定输出时栏位的宽度 |
-V | 显示版本信息 |
- 寻找特定文档whereis
该指令会在特定目录中查找符合条件的文件。这些文件应该属于原始代码,二进制文件或者帮助文件。
参数 | 含义 |
---|---|
-b | 只查找二进制文件 |
-B<目录> | 只在设置的目录下查找二进制文件 |
-f | 不显示文件名前的路径名称 |
-m | 只查找说明文件 |
-M<目录> | 只在设置的目录下查找说明文件 |
-s | 只查找原始代码文件 |
-S<目录> | 只在特定的目录下查找原始代码文件 |
-u | 查找不包含指定类型的文件 |
whereis和locate命令的效率要大于find,因为LInux系统会将系统内的所有文件都记录在一个数据库文件里面,所以使用whereis可以找到被删除的文件,并且可能找不到刚建立的文件
- 寻找特定案locate
locate命令用于查找符合条件的文档。他会去保存文档和目录名称的数据库内,查找合乎样本范式条件的文档或者目录。
命令语法:locate 文件名字
locate命令使用起来比较快,因为由已创建的数据库/var/lib/mlocate/里面的数据所查找到的。因为数据库的默认创建是每天执行一次(根据不同的系统而不同),所以新建文件之后,用locate可能查找不到,但是可以手动更新数据库,直接输入updatedb可以更新数据库
- 寻找特定的档案find
Linux的find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为想查找的目录名。如果使用命令时不加任何参数,那么find命令会在当前目录和子目录下查找。
find根据下面规则判断 路径 和 命令 ,在命令列表中,第一个-之前的是路径,之后的是命令,如果路径是空,则默认为当前目录
命令 | 含义 |
---|---|
-mount | 只检查和指定目录在同一文件系统中的文件,避免列出在其他文件系统的文件 |
-xdev | 只检查和指定目录在同一文件系统中的文件,避免列出在其他文件系统的文件 |
-amin n | 在过去的n分钟内被读取过 |
-anewer file | 比文件file更晚被读取的文件 |
-atime n | 在过去n天内被读取过的文件 |
-cmin n | 在过去n分钟内被修改过的文件 |
-cnewer file | 比文件file更新的文件 |
-ctime n | 在过去n天内被修改过的文件 |
-empty | 空的文件 |
-ipath p | 忽略大小写,路径名称符合p的文件 |
-path p | 不忽略大小写,路径名称符合p的文件 |
-name name | 文件名称符合name的文件 |
-iname name | 忽略大小写,文件名称符合name的文件 |
-size | 文件大小是n单位,b代表512位元组的区块,c代表字元数, |
c | 字节装置文件 |
f | 一般文件 |
d | 目录 |
b | 区块装置文件 |
p | 具名贮列 |
s | socket |
- 压缩文件gzip和读取压缩文件zcat
参数 | 含义 |
---|---|
-l | 列出压缩文件的相关信息 |
-q | 不显示警告信息 |
-r | 递归处理,将指定目录下的所有文件及子目录一并处理 |
-f | 强行压缩文件 |
-d | 解开压缩文件 |
-c | 把压缩后的文件输出到标准输出去,不更改原始文件 |
-v | 显示执行结果 |
zcat是查看压缩文件,并不是解压缩
- 压缩文件bzip2和读取压缩文件bzcat
参数 | 含义 |
---|---|
-c | 将压缩与解压缩的文件输出到标准输出 |
-d | 解压 |
-f | 解压出来的时候,如果有同名文件,不会覆盖,必须使用这个参数才会覆盖 |
-k | bzip2压缩和解压之后原来的文件会被删除,如果想要保留原有文件,就要用这个参数 |
-z | 强制执行压缩 |
-v | 显示压缩的详细信息 |
查看压缩文件的内容
- 压缩文件和读取压缩文件tar
参数 | 含义 |
---|---|
-v | 显示指令执行过程 |
-f | 指定备份文件 |
-z | 通过gzip指令处理文件 |
-c | 创建新的备份文件 |
-t | 列出备份文件的内容 |
-x | 从备份文件中还原内容 |
压缩的命令:tar -czvf 压缩后文件名 [想要压缩的文件列表]
- pwd 显示当前所在目录