【Linux】常用指令、热键与权限管理

一、常用指令

(1)ls

功能:列出指定目录下的所有子目录与文件

用法:ls + (选项) + (目录或文件名)

常用选项:

  • -a:列出目录下的所有文件,包括隐藏文件
  • -l:列出文件的详细信息(如创建时间,文件大小等)
  • -r:对目录反向排序
  • -t:按照时间排序
  • -F:在每个文件名后添加一个字符用来说明该文件的类型
  • -s:在文件名前输出该文件的大小
  • -R:列出所有文件与所有子目录下的文件
  • -1:将所有文件排成一列

例如:ls - l

(2)pwd

功能:输出用户当前所在的目录

用法:pwd

常用选项:无

例如:

(3)cd

功能:切换工作目录(类比windows双击进入文件夹或输入路径切换至指定目录)

用法:cd + 目录名

例如:

(4)touch

功能:常用于新建一个文件,也可用于更改文档或目录的日期时间

用法:touch + (选项) + 文件名

例如:

(5)mkdir

功能:在当前目录下创建一个目录

用法:mkdir + (选项) + 文件名

常用选项:

  • -p:后接一个路径,用于一次建立多个目录

例如:

(6)rmdir

功能:删除目录

语法:rmdir + (选项) + 目录名

常用选项:

  • -p:当子目录被删除后如果父目录变为空目录,则一并删除

例如:

(7)rm

功能:删除文件或目录

语法:rm + (选项) + 文件名/目录名

常用选项:

  • -f:强制删除
  • -i:删除前需要逐一确认
  • -r:递归删除目录及其中所有文件

例如:

(8)man

功能:Linux联机手册

用法:man + (选项) + 命令

常用选项:

  • -k:根据关键字搜索手册
  • num:只在第num章中找
  • -a:若指定命令出现在多个章节,则全部显示

例如:man mkdir

(9)cp

功能:复制文件或目录

用法:cp + (选项) + 文件/目录 + 目标文件/目录

常用选项:

  • -f:强行复制文件或目录
  • -i:覆盖文件前先询问用户
  • -R:递归复制指定目录与其中的所有内容

(10)mv

功能:将文件/目录重命名或将文件移动至某目录

用法:mv + (选项) + 文件/目录 + 目标文件/目录

常用选项:

  • -f:若目标文件存在,则强制覆盖
  • -i:若目标文件存在,则询问是否覆盖

(11)cat

功能:查看目标文件的内容,适用于小文本

用法:cat + (选项) + (文件)

常用选项:

  • -b:对非空行前面加上行编号
  • -n:对输出的所有行进行编号
  • -s:将多行空行变为一行

例如:

(12)more

功能:类似cat,适用于较大文本,会以一页一页的形式显示,方便逐页阅读,按空白键(space)就往下一页显示,按b键就会往回一页显示,按q退出阅读,而且还有查找字符串的功能

用法:more + (选项)+ 文件

常用选项:

  • -num:一次显示的行数
  • +num:从第num行开始显示
  • -s:将连续空行变为一行

(13)less

功能:类似more,但是功能更加强大

用法:less + (选项)+ 文件

常用选项:

  • -i:忽略搜索时的大小写
  • -N:显示每行行号
  • -e:文件显示结束后自动退出
  • -m:显示类似more命令的百分比
  • -s:将连续空行变为一行

常用命令:

  • q:退出less
  • / + 字符串:向下搜索字符串
  • ?+字符串:向上搜索字符串
  • b:向上翻一页
  • d:向下翻半页
  • 空格键:滚动一页
  • 回车键:滚动一行
  • pageup:向上翻一页
  • pagedown:向下翻一页

(14)head

功能:显示文件开头部分的内容

用法:head + (选项)+ (文件)

常用选项:

  • -n + 行数:指定显示的行数

(15)tail

功能:类似head,显示文件结尾部分的内容

用法:tail + (选项) + (文件)

常用选项:

  • -f:循环读取
  • -n + 行数:指定显示的行数

(16)date

功能:显示时间

用法:date + (选项)+ (格式)

常用选项:

  • -s:根据字符串设置系统时间

格式:

  • %H:小时
  • %M:分钟
  • %S:秒
  • %X:相当于输入%H:%H:%S
  • %d:日
  • %m:月份
  • %Y:完整四位数年份
  • %F:相当于输入%Y-%m-%d

例如:

时间戳

Unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

当前时间转时间戳:date +%s

时间戳转时间:date -d@时间戳

例如:

(17)cal

功能:查看日历

用法:cal + (选项) + (月份) + (年份)

常用选项:

  • -y:显示当前年份的完整日历
  • -j:显示在当年的第几天
  • -3:显示前一个月、当前月和下一个月的日历

(18)find

功能:在目录中查找文件

Linux下find命令的功能十分强大,提供给我们很多查找条件与选项

Linux find 命令 | 菜鸟教程 (runoob.com)https://www.runoob.com/linux/linux-comm-find.html

用法:find + (路径...) + (匹配条件) + (动作)

(19)grep

功能:在文件中搜索字符串并打印

用法:grep + (选项)+ 目标字符串 + 文件...

常用选项:

  • -i:忽略大小写区分
  • -n:在前面输出行号
  • -v:反向选择,即输出所有不包含目标字符串的内容

(20)zip

功能:将目录或文件压缩成zip格式

用法:zip + 压缩文件名.zip + 目录/文件

常用选项:

  • -r:递归处理,将指定目录下的所有文件和子目录一并处理
  • -d:从压缩文件内删除指定的文件
  • -D:压缩文件内不建立目录名称

例如:

unzip:Linux unzip命令 | 菜鸟教程 (runoob.com)

(21)bc

功能:进行浮点运算

用法:bc + (选项) + (参数)

常用选项:

  • -i:强制进入交互式模式
  • -l:定义使用的标准数学库

参数:指定包含计算任务的文件

例如:

(22)uname

功能:获取电脑和操作系统的相关信息

用法:uname + (选项)

常用选项:

  • -a:显示全部的信息,包括内核名称、主机名、操作系统版本、处理器类型和硬件架构等
  • -m:显示处理器类型
  • -n:显示主机名
  • -r :显示内核版本号
  • -s:显示操作系统名称
  • -v:显示操作系统的版本
  • --help:显示帮助

例如:

(23)echo

功能:将传递的参数打印到标准输出中

用法:echo + (选项) + (参数)

例如:

(24)>、>>、<(重定向)

功能:>将内容重定向至目标文件(覆盖);>>将内容追加至目标文件;<将从标准输入改为从指定地方输入

例如:

(25)|(管道)

本质:一个操作方式为文件的内存缓冲区

功能:将 | 前后两个进程的输入输出用一个管道相连,以便达到进程间通信的目的

用法:使用 | 连接两个命令

例如:我们想打印出某文件的第6-10行

在这条命令中,我们先将cat输出的内容通过管道输入给head命令,再将head输出的内容通过管道输入给tail命令

(26)which

功能:用于查找命令所在路径

用法:which + 命令

例如:

(27)拓展命令

  • 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、exit、last...
  • 文件处理指令:file、dd、diff、ln...
  • 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab...
  • 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、mail、finger...
  • 系统安全权限相关命令:passwd、su、sudo、umask、chgrp、chmod、chown、who...
  • 其他命令:tar、gunzip、unarj、mtools、unendcode...

二、常用热键

  • tab:补全命令或路径
  • ctrl+a:光标回到行首
  • ctrl+e:光标回到行尾
  • ctrl+c:终止终端正在进行的所有任务并开启新的命令行
  • ctrl+r:搜索命令行使用过的历史命令记录
  • ctrl+l:清空屏幕所有的内容
  • ctrl+k:剪切(删除)光标处到行尾的所有字符
  • ctrl+k:剪切(删除)光标处到行尾的所有字符
  • ctrl+y:粘贴 ctrl+k、ctrl+u、ctrl+w删除的字符
  • ctrl+d:退出当前shell命令行,如果是切换过来的用户,则执行这个命令回退到原用户
  • ctrl+z:暂停在终端运行的任务,使用"fg"命令可以使暂停恢复

三、权限管理

3.1 Linux中的权限

Linux下有两种用户:超级用户(root)和普通用户

超级用户权限非常大,基本可以在Linux系统下做任何事,不受限制

普通用户就是我们用adduser创建出来的用户,会受到权限的约束,只能做有限的事情

我们可以用su命令从普通用户切换到root用户,也可以通过sudo命令暂时的将权限提升至root级别

3.2 文件类型与文件权限

像这样,第1位的字符代表了文件的类型,文件类型一共有如下几种:

  • d:目录文件
  • -:普通文件
  • l:软链接(类似windows的快捷方式)
  • b:块设备文件
  • p:管道文件
  • c:字符设备文件
  • s:套接口文件

第1位后面的9位字符代表了文件的基本权限,其中r代表可读,w代表可写,x代表可执行

9位字符分为三组:文件所有者权限、所属组权限和其他用户权限

如果一个用户不属于文件的所有者和所属组,那么就按照其他用户赋予权限

其中每组的3个字符分别为:读、写、执行

如果对应位置的字符是-,则说明不具有该权限

权限位后面分别是:连接数、文件所有者、文件所属组、文件大小、文件最近修改日期和文件名

3.3 文件权限值的表示方法

字符串表示方法:

|-----|---------|-----|-------|
| r-- | 只可读 | -w- | 只可写 |
| --x | 只可执行 | rw- | 可读可写 |
| -wx | 可写可执行 | r-x | 可读可执行 |
| rwx | 可读可写可执行 | --- | 无权限 |

我们将有对应权限规定为1,没有对应权限规定为0,就出现了二进制表示:

|-----|-----|
| r-- | 100 |
| -w- | 010 |
| --x | 001 |
| rw- | 110 |
| r-x | 101 |
| -wx | 011 |
| rwx | 111 |
| --- | 000 |

因为最多只有8种情况,我们还可以用八进制来表示:

|-----|---|
| r-- | 4 |
| -w- | 2 |
| --x | 1 |
| rw- | 6 |
| r-x | 5 |
| -wx | 3 |
| rwx | 7 |
| --- | 0 |

3.4 文件访问权限的设置方法

(1)chmod

功能:设置文件的访问权限

用法:chmod + (参数) + 权限 + 文件名

常用参数:

  • +:增加对应权限
  • -:取消对应权限
  • =:赋予指定权限
  • u:文件所有者
  • g:所属组
  • o:其他用户
  • a:所有用户

例如:

还可以用3位八进制数字代替权限符号

例如:

(2)chown

功能:修改文件所有者

用法:chown + (参数) + 用户名 + 文件名

例如:

(3)chgrp

功能:修改文件所属组

用法:chgrp + (参数) + 用户组名 + 文件名

例如:

3.5 目录的权限

目录也是一种文件,其权限的构成和普通文件相同

区别在于,对应权限可以做的事情不同

  • 可读:允许用ls等命令查看目录中的文件内容,反之则不允许
  • 可写:允许在目录中创建和删除文件,反之则不允许
  • 可执行:允许通过cd命令进入目录,反之则不允许

不过在具体使用中我们会发现,当多个用户共享一个目录时,只要用户拥有对目录的写入权限,则可以随意的删除目录中的文件,不管该用户是否具有被删除文件的写入权限,这似乎并不合理

为了解决这个问题,Linux引入了粘滞位

粘滞位(t)与其他用户的可执行权限(x)共用同一个位置,当一个目录被设置为粘滞位(chmod +t),则该目录下的文件只能被root用户、目录所有者和文件所有者删除,其他用户即使拥有目录的写入权限也无法删除别人的文件

例如:

完.

相关推荐
眠修40 分钟前
Kuberrnetes 服务发布
linux·运维·服务器
即将头秃的程序媛4 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
fangeqin4 小时前
ubuntu源码安装python3.13遇到Could not build the ssl module!解决方法
linux·python·ubuntu·openssl
爱奥尼欧5 小时前
【Linux 系统】基础IO——Linux中对文件的理解
linux·服务器·microsoft
超喜欢下雨天5 小时前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
tan77º6 小时前
【Linux网络编程】网络基础
linux·服务器·网络
笑衬人心。7 小时前
Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
linux·mysql·ubuntu
chanalbert8 小时前
CentOS系统新手指导手册
linux·运维·centos
星宸追风9 小时前
Ubuntu更换Home目录所在硬盘的过程
linux·运维·ubuntu
热爱生活的猴子9 小时前
Poetry 在 Linux 和 Windows 系统中的安装步骤
linux·运维·windows