Linux命令也叫做 shell命令
对于可执行文件,计算权限的方法:
777-掩码=权限
对于不可执行文件,计算权限的方法:
(777-掩码)%666
先将777-掩码的结果和666转换成十进制,相减的结果再转换成八进制,就得到文件的权限了
掩码运算方法
常见的shell命令行编译器
按键 | 功能 |
---|---|
Backspace,Delete,Ctrl+h | 删除字符 |
Ctrl+u,Ctrl+k | 删除光标前,后的所有字符 |
\ | 续航符,用于跨行输入长命令 |
Tab | 命令补齐 |
↑,↓ | 翻找命令历史记录 |
→,← | 前后移动光标 |
常见的shell命令运行控制键
控键 | 功能 |
---|---|
Enter,Ctrl,Ctrl+m | 提交命令运行 |
Ctrl+c | 终止命令的运行 |
Ctrl+s | 暂停屏幕输出,但期间打入的字符,退出状态时会出来,并且敲下回车还是会执行命令 |
Ctrl+q | 退出Ctrl+s的状态 |
对文件和目录的访问权限的作用
访问权限 | 字符表示 | 对文件的访问限制 | 对目录的访问限制 |
---|---|---|---|
读权限 | r | 可读取其内容 | 可列出其中的文件列表 |
写权限 | w | 可修改其内容 | 可在其中建立,删除文件,或改文件名 |
执行权限 | x | 可执行内容 | 可进入该目录,可访问该目录下的文件 |
无权限 | - | 不能做相应的操作 |
Linux系统支持的文件类型:
普通文件(-),目录文件(d),设备文件(c,b),符号链接(l),管道文件§
文件的权限范围划分及表示
权限范围 | 针对的用户 | 字符表示 |
---|---|---|
属主 | 文件的拥有者 | u |
组用户 | 文件的属组中的用户 | g |
其他人 | 除文件属主和组用户外的其他用户 | o |
所有人 | 以上三类用户的总和 | a |
创建文件的方法:
1.vi [文件]
2.cat > [文件]/cat >> [文件]
3.echo “内容” > [文件]
4.touch [文件]
基本命令
1.echo命令
echo命令用于在终端输出字符串或变量提取后的值
格式:echo [选项] [字符串|$变量]
选项:-n 输出字符串后光标不换行
注:如果字符串中含有空格符,用引号将字符串括起来,如果不括起来空格将被看作是多个字符串间的分隔符,echo依次输出这些字符串,中间用逗号隔开
2.date命令
date命令用于显示及设置系统的时间或日期
格式:date [选项] [+指定的格式]。
选项 | 功能 |
---|---|
-s | 设置时间和日期 |
-u | 使用格林尼治时间 |
eg:date “+%Y-%M-%d”
注:格式中有空格是,用引号括起来,没有时可以不括
3.reboot命令
reboot命令用于重启系统,在kali必须要root才行,在ubuntu上不用
格式:rebool
4.shutdown命令/poweroff命令
关机命令
5.who命令
显示已登录的用户
格式:who [选项] [ami]
选项 | 作用 |
---|---|
-H | 显示各列的标题 |
-q | 显示登陆的用户名和用户数 |
【参数】带有参数ami时,显示自己的登陆信息,中间不能有空格
不同的登录方式现实也是不一样的
控制台登陆:ttyn,n为控制台的逻辑编号
图形终端窗口:0.1,0是默认启动的图形控制台,运行的是桌面
伪终端窗口:pts/0,pts/1…
6.cal命令
显示月份和日期
格式:cal [[月份] 年份]
注:若不带参数,则显示当年当月的日历,若只带有一个参数,则该参数被认为是年份
7.man命令(联机手册)/info命令(超文本格式的联机文档)
格式:man 命令名
基本的通配符与匹配规则
通配符 | 匹配规则 | 列子 |
---|---|---|
? | 匹配任意的单个字符 | ju? |
* | 匹配任意个字符 | D* |
[ ] | 匹配方括号中列出的字符集合中的任意单个字符 | [DM]* |
[]中也可用-连接:[a-z]表示所有的小写字母,必须按升序排序;也可指定多个范围[A-Za-z]
排除:![!D]表示除D以外的所有
常用的目录操作命令
1.pwd命令
显示当前目录的绝对路径
格式:pwd
2.cd命令
改变当前目录的绝对位置
格式:cd [目录]
cd … 返回上级目录
注:不指定目录参数时,进入用户的主目录
3.ls命令
显示指定文件或指定目录中的所有文件的信息
格式:ls [选项] [文件或目录]…
选项 | 功能 |
---|---|
-a | 显示所有文件及目录,包括英汉目录,".“及”…"目录 |
-R | 递归显示下层子目录 |
-F | 显示文件类型描述符 |
-d | 显示目录的信息而非其内容 |
-u | 显示文件的最近访问时间,与-l连用 |
-c | 显示文件的最近变更时间,与-l连用 |
-t | 按文件修改顺序排序显示 |
-l | 按长格式显示文件详细信息 |
注:
1)参数为普通文件时,显示指定的文件的信息,参数是目录时,显示指定目录下的文件列表信息(除非有-d选项),未指定文件或目录时,显示当前目录中的文件列表信息
2)不带选项时,按字母顺序列出目录中所有非隐含文件的文件名
3)长格式显示时,每个文件占一行,格式:
文件类型与权限,连接数,属主名,文件大小,最近修改时间,文件名
4.mkdir命令
建立目录
格式:mkdir [选项] 目录…
选项 | 功能 |
---|---|
-m | 按指定的权限建立目录 |
-p | 递归建立目录,即若目录的父目录不存在,则一并建立其父目录 |
注:未指定目录权限是,默认权限为777-掩码
5.rmdir命令
删除目录
格式:rmdir [选项] 目录…
选项 | 功能 |
---|---|
-p | 递归删除目录,即当子目录删除后其父目录为空时,也一同删除 |
注:若目录不为空,则删除操作不能成功
常见的文件操作命令
1.cat命令
显示文件内容
新建文件:cat>>[文件]/cat>[文件]
格式:cat [选项] [文件]…
选项 | 功能 |
---|---|
-A | 显示所有字符,包括换行符,制表符及其他非打印字符 |
-n | 对输出的所有行进行编号并显示行号 |
-b | 和-n相似,但对于空白行不编号 |
-s | 将连续的空白行压缩为一个空白行 |
注:指定多个文件时,依次显示各个文件,未指定文件时,读标准输入(默认为键盘)并显示
2.more命令/less命令
分屏显示文件内容
格式:more [选项] [文件]…
选项 | 功能 |
---|---|
-p | 不滚屏,清屏 |
-s | 将连续的空白行压缩为一个空白行 |
+n | 由第n行开始显示 |
+/str | 由含有str字符串的地方开始显示 |
注:Enter 向下翻一行
Space 向下翻页
b 向上翻页
/string 查找字符串string
n 查找下一个字符串
q 退出
虽然两者的格式和用法相同,但与more命令相比,less命令具有更好的交互性。
3.cp命令
复制文件
格式:cp [选项] 源文件 目标文件 / cp [选项] 源文件… 目标目录
选项 | 功能 |
---|---|
-i | 交互模式,当目标文件存在时,提示是否覆盖,键入Y或者y覆盖,键入其他字符不覆盖 |
-r | 递归复制目录 |
-b | 未被覆盖的文件建立备份,备份文件的名称是原文件名后加"~" |
-f | 强制复制,即如果目标文件存在但打不开,则先删除它,然后再复制 |
-p | 保存文件原有的属性 |
-v | 显示操作结果 |
注:若只有两个参数,且参数2不是已存在的目录,则创建一个文件并复制过去;若参数2时已存在的目录,则将参数1指定的文件复制到该目录下,文件名不变。若多于两个参数,且最后一个参数是已存在的目录,则将前面参数指定的文件复制到该目录下,文件名不变;若多于两个参数,且最后一个参数不是已存在的目录则报错;;;要想将一个目录中的所有的文件复制到另一个目录,一定要使用-r
3.rm命令
删除文件
格式:rm [选项] 文件…
选项 | 功能 |
---|---|
-f | 忽视不存在的文件,不作提示 |
-i | 删除前提示用户确认 |
-r | 递归删除目录 |
-v | 显示操作结束 |
注:若参数是目录文件,需要-r选项,否则报错,用rm命令删除的文件是永久删除,无法恢复。
4.mv命令
移动文件,重命名文件
格式:mv [选项] 源文件 目标文件
mv [选项] 源文件… 目标目录
选项 | 功能 |
---|---|
-i | 覆盖前提示用户确认 |
-f | 不提示用户确认,直接覆盖 |
-b | 为被覆盖的文件建立备份。备份文件的名称是原文件名后加"~" |
-v | 显示操作结果 |
注:若只有两个参数,且参数2不是已存在的目录,则创建一个文件并复制过去;若参数2时已存在的目录,则将参数1指定的文件复制到该目录下,文件名不变。若多于两个参数,且最后一个参数是已存在的目录,则将前面参数指定的文件复制到该目录下,文件名不变;若多于两个参数,且最后一个参数不是已存在的目录则报错;;;也可以直接将一个目录移动到另一个目录下
5.wc命令
显示文件的字节数,字数和行数
格式:wc [选项] [文件]…
选项 | 功能 |
---|---|
-c | 只统计字节数 |
-l | 只统计行数 |
-m | 只统计字符数 |
-w | 只统计字数 |
注:未指定选项时,显示行数,字数,字节数(不是字符数);未指定文件时,读标准输入文件,即键盘输入的内容,ctrl+d结束,显示行数…
5.sort命令
对文本文件的各行按ASCII字符顺序由小到大排序并显示
格式:sort [选项] [文件]…
选项 | 功能 |
---|---|
-b | 忽略开始的空白 |
-d | 只考虑字母,数字和空格 |
-f | 忽略大小写 |
-kn | 指定从第n个字段开始的内容作为排序关键字(默认为第一个字段,一个空格代表字段的结束) |
-r | 逆序排序 |
注:未指定文件时,读标准输入文件,当比较到空格时,空格并不能比较,直接比较下一个
6.chmod命令
修改文件或目录的存取权限
格式:chmod [选项] [数字权限模式] 文件…
chmod [选项] [字符权限模式表达式]… 文件…
选项 | 功能 |
---|---|
-R | 递归的改变指定目录下的文件和子目录的权限 |
注:
1)字符权限模式表达式的格式是:<权限范围><操作><权限字符>
权限范围:u为属主,g为组用户,o为其他人,a为所有用户
操作:+为增加权限,-为取消权限,=为赋权限
权限字符:r表示读,w表示写,x表示执行(具体的前面已经写了)
eg:uo=rw表示给属主和组用户赋予读写权
2)多个表达式之间用逗号分隔,且不能用空格,eg:u=rw,g-r
3)只有文件的属主和root有权限修改文件的权限
若g= ,等号后面什么都没有则不赋予任何权限,即没有任何权限
7.touch命令
修改文件的修改时间和访问时间的时间标签为现在时间
格式:touch [选项] 文件…
选项 | 功能 |
---|---|
-a | 仅改变文件的访问时间 |
-m | 仅改变文件的修改时间 |
-c | 文件不存在时,不创建文件 |
-t STAMP | 使用STAMP指定的时间标签,而不是系统现在的时间 |
注:若制定的文件不存在,就建立一个新的空文件(除非使用-c选项)
8.umask命令
设置,显示文件创建时的权限掩码
格式:umask [选项] [掩码]
选项 | 功能 |
---|---|
-S | 以字符形式显示掩码对应的权限 |
注:若指定了掩码,则将该掩码作为新建文件的权限掩码;若未指定掩码,则显示现在的权限掩码