linux命令

linux命令

  • 格式:命令名 选项(option) 参数(argument)[^可以有多个,通常使用空格分隔]

命令选项

  • 短选项(short options): 以-作为前缀,后跟一个字母或数字。通常用于提供简短的开关功能[^例:ls -l]。可以单独使用或组合。[^ls -l -a 可以合并为 ls -la]
  • 长选项(long options): 以--作为前缀,后跟一个单词或短语[^例:ls --all]
  • 布尔选项(boolean options): 用于打开或关闭某些功能。通常没有参数,使用时表示打开,不使用时表示关闭。[^ -l 即布尔选项,用于显示长格式列表]
  • 参数选项(argument options): 用于提供额外的参数值给命令。参数选项通常紧跟在选项后面,并提供一个值[^cp -r source destination 的 -r 就是参数选项,用于递归复制目录]

常用命令选项

  • -l用于显示详细信息或进行长格式列表显示
  • -als命令中使用,用于显示所有文件和目录,包括隐藏文件和目录
  • -r用于递归操作,即处理目录及其内容
  • -f用于强制操作,即不进行确认提示
  • -v用于显示详情的操作信息,即verbose模式
  • -i用于询问确认操作,即interactive模式
  • -h用于显示人类刻度的文件大小,以便理解
  • -p,在cp mv命令使用,用于保持文件的权限属性,即保持原文件的属性
  • -u,在cp mv命令使用,用于更新目标文件,即只复制或移动比目标文件更新的文件
  • -s,在ln命令中使用,用于创建符号链接(软链接)
  • -x,在find命令中使用,用于限制搜索范围在当前文件系统,即不跨越文件系统边界

符号

  • >: 输出重定向符号。用于将命令的标准输出重定向到指定文件,并将文件原先的内容覆盖。若文件不存在,则会创建一个新文件
  • >>: 追加重定向符号,用于将命令的标准输出追加到指定文件的末尾。若文件不存在则会创建一个新文件
  • <: 输出重定向符号,将文件的内容传递给命令

sort < input.txt > output.txt:将文件 input.txt 的内容作为输入传递给 sort 命令进行排序,并将排序结果输出到文件 output.txt

  • |: 管道符,用于将一个命令的输出作为另一个命令的输入。
  • ||: 逻辑运算符。通常用于控制命令的执行流程和错误处理,提供了一种条件执行命令的方式。如果第一个命令执行成功(即返回零的退出状态码),则不会执行第二个命令,而是继续执行后续的命令。
  • ;: 用于分隔多个命令,在一行上依次执行多个命令
  • &:
    • 在命令后添加&符号可将命令置于后台运行,即使命令执行完成后,终端仍可用于输入其他命令。对于长时间运行的命令或不需要等待命令完成的情况很有用。
    • 用于连接命令时,可以并行执行多个命令而无需等待前一个命令的完成
  • &&: 逻辑运算符。只有在第一个命令执行成功才会执行之后的服务。

命令

通用命令

  • 切换用户,使用root则切换为顶级用户
su root

$号表示普通用户,#表示顶级用户

  • 帮助文档
man ls

man 命令名
manual

  • bash内置命令的帮助信息
help cd
  • 清屏
clear

目录相关

  • 显示当前所在目录
pwd
  • 显示当前目录下所有内容
ls

即list
命令ll,即ls -l的一种简化形式

  • 创建文件夹
mkdir a

make directory

  • 删除文件夹
rmdir a
  • 删除文件或文件夹
rm a
  • 重命名或移动
mv a z

z为名称时, 将a命名为z
z为路径时, 将a移动到z路径下

  • 复制
cp b z

复制b到z文件夹
通过-r[^递归选项],可将b及其子文件复制到z

  • 切换到指定目录
cd hello/
  • 查找指定目录或文件
whereis filename

文件相关

操作文件

  • cat命令, 代表concatenate(连接). 用于显示文件的内容,并将其连接到标准输出
cat a
cat a>b
cat a>>b

上述命令分别为

  1. 获取a的内容
  2. 将a内容覆盖到b的内容上
  3. 将a的内容追加(复制)到b的内容后
  • echo, 即回声, 用于在终端输出文本或变量的值
echo "hello world"
echo $name
echo "hello">aaa.txt
echo a>>b
echo `date`

上述命令分别为

  1. 在终端输出hello world
  2. 输出变量name的值
  3. 将hello覆写入名为aaa.txt的文件中[^linux中不存在文件后缀,所以此处的aaa.txt即该文件的名称]
  4. 将a文件的内容追加到b文件内容的末尾
  5. 输出当前时间
  • ln,用于在文件系统中建立文件或目录之间的链接关系
ln -s sourcefile targetfile

由此建立符号链接,创建的targetfile指向sourcefile,类似于快捷方式
-s, 即symbol,创建符号链接(软链接)
-f, 即force,强制操作,若目标文件已存在,则进行复告

  • touch filename, 用于更新文件的时间为当前系统时间

查看文件内容

less [option] filename
more [option] filename
head [option] filename
tail [option] filename
wc [option] filename
  • less&more都用于浏览文件内容,但less提供了更多的功能和选项。

less有如下选项,而more没有选项
-N显示行号
-i忽略大小写
-F, 文件较短时不使用分页器而是直接显示全部内容
less&more的快捷键是相同的
空格键:向下滚动一整页。
Enter 键:向下滚动一行。
B 键:向上滚动一整页。
G 键:跳转到文件的末尾。
q 键:退出

  • head, 用于显示文件内容的开头几行,默认显示10行

-n <行数>&--lines=<行数>, 可通过此选项自定义显示的行数

  • tail, 用于显示文件的末尾内容,可实时显示最新内容

-n <行数>&--lines=<行数>, 可通过此选项自定义显示的行数
-f&--follow:实时追踪文件的变化,并持续显示新增的内容。
-q&--quiet:禁止显示文件名

  • wc, 即"word count", 用于统计文件或标准输入中的字节数、字数和行数

不使用选项,直接使用则会分别输出 行数、字数及字节数
wc有如下几个选项
-l:仅统计行数。
-w:仅统计字数(以空格、制表符或换行符作为分隔符的连续字符序列)。
-c:仅统计字节数。
-m:仅统计字符数。
L:显示最长行的长度。

搜索文件或目录

  • which filename, 查找文件在系统的完整路径(命令也是一个文件,可进行搜索)
  • find path [option] [expression], 用于在指定路径下查找文件和目录。可使用通配符进行查找

常用选项如下
-name 文件名:按照文件名进行匹配搜索。
-type 文件类型:按照文件类型进行匹配搜索,如 f 表示普通文件,d 表示目录等。
-mtime +n/-n:按照文件的修改时间进行匹配搜索,+n 表示 n 天前之前,-n 表示 n 天以内。
-size +n/-n:按照文件的大小进行匹配搜索,+n 表示大于 n 字节,-n 表示小于 n 字节。
-exec 命令 {} \; :对搜索到的每个文件执行指定的命令。

  • locate [option] mode, 用于快速定位系统中符合指定模式的文件,比find命令更迅速

以下是locate的常用选项
-i:忽略模式的大小写。
-l:仅显示匹配到的文件名,而不显示完整路径。
-c:仅显示匹配到的文件数量,而不显示文件名。
-r:使用正则表达式作为模式。

  • grep [选项] 模式 [文件], 根据正则表达式或简单字符串进行搜索,并显示包含匹配的行

模式 表示要搜索的文本模式,可以是简单的字符串或正则表达式。文件 表示要搜索的文件,如果不指定文件,则默认从标准输入中读取数据
grep的常用选项
-i:忽略模式的大小写。
-v:仅显示不匹配模式的行。
-r & -R:递归地搜索目录及其子目录下的文件。
-l:仅显示包含匹配模式的文件名。
-n:显示匹配行的行号。
-c:仅显示匹配模式的行数。

权限相关

group组

  • linu文件系统中权限管理重要组成部分。每个文件和目录都有Owner、Group和Others的访问权限。通过将用户归属于特定的组,可以方便地对文件和目录进行权限管理。
  • 常用的group相关命令
groupadd group_name # 创建新的组
groupdel group_name # 删除现有的组
groupmod -n new_name old_name # 修改组名
groupmod -g new_gid group_name # 修改组的GID
groups # 显示当前用户所属的组
newgrp group_name # 允许用户在不注销的情况下切换到不同的组身份
usermod -g new_group user_name # 修改用户的主组
usermod -G group1,group2 user_name # 修改用户的附加组
id username # 显示指定用户的UID和所属组的GID
id # 显示当前用户的UID和所属组的GID
getent group # 获取所有组的信息
getent group group_name # 获取指定组的信息
getent passwd # 获取所有用户的信息
getent passwd user_name # 获取指定用户的信息

用户相关

useradd username # 创建新用户
userdel username # 删除现有用户
passwd username # 设置用户密码
usermod -l new_username old_username  # 修改用户名
usermod -u new_uid username  # 修改用户的UID
su username  # 切换到指定用户身份(需要输入密码)
su - username  # 切换到指定用户身份,并加载其环境变量和配置文件
sudo command  # 以超级用户权限执行指定的命令
whoami # 显示当前登录用户的用户名
w # 显示当前系统上活动用户的信息,包括登录时间、登录终端等
finger username # 显示用户的详细信息,如用户的全名、登录时间、登录终端等
chown new_owner file_or_directory # 修改文件或目录的所有者
chmod permission file_or_directory # 修改文件或目录的权限
chomod 777 file_or_directory # 给予所有用户对文件或目录的完全权限

permission权限

  • permission用于控制文件或目录对用户的访问权限属性

r&数字4,读权限
w&数字2,写权限
x&数字1,执行权限
-rw-r--r--表示文件所有者可读写,所属组和其他用户只可读取。用数字表示为644.
drwxr-xr-x表示目录所有者可读、写、执行(对目录而言,执行表示可以进入该目录),所属组和其他用户可读、执行。数字表示为755.

由此可见,权限的表示由10个字符组成,第一个字符表示文件或目录,后面9个字符由连贯的rwxrwxrwx组成,没有的权限使用-表示

  • 命令中,权限表达式由 用户 加减符号 权限组成
chmod u-rwx,g+rw,o+r file

其中u代表用户层,g代表组层,o代表其他用户
加减符号代表增加移除权限
rwx代表对应的读写执行权限
可以用数字表示设置的权限
数字中0、3、5、6、7分别代表权限对应数字相加之和,故这五个数字分别为 无权限、写执行、读执行、读写、读写执行

将用户添加到sudoers文件中

  1. 切换到root用户

  2. 输入命令sudo visudo打开并编辑sudoers文件

  3. 找到类似行并仿照写入新的用户
    在这里插入图片描述

  4. 之后添加的用户即可使用sudo命令
    ## 服务相关

  • 启动停止服务
systemctl start <service-name>
systemctl stop <service-name>
  • 重启服务
systemctl restart <service-name>
  • 重新加载服务的配置文件
systemctl reload <service-name>
  • 查看服务的状态
systemctl status <service-name>
  • 将服务设置为开机自启或禁用开机自启
systemctl enable <service-name>
systemctl disable <service-name>
  • 查看服务日志
journalctl -u <service-name>

防火墙相关常用命令

systemctl start firewalld # 启用防火墙
systemctl stop firewalld # 停止防火墙
firewall-cmd --add-port=port_number/tcp --permanent # 允许特定端口的进入连接
firewall-cmd --remove-port=port_number/tcp --permanent # 禁止特定端口的进入连接
firewall-cmd --reload # 重新加载防火墙配置文件,修改规则后需要使用该命令进行更新
firewall-cmd --list-all # 显示当前防火墙规则

tree命令程序

  • 需要先通过yum install tree命令进行该程序安装
  • tree 是一个在命令行界面下用于以树状结构显示目录和文件的工具。
  • 语法
tree [选项] [目录]

tree命令常用选项

  • -a, 显示所有文件和目录
  • -L, Level, 限制显示的层级深度

tree -L 2 /path/to/directory

  • -d, 只显示目录
  • -f, 显示完整路径
  • -i, 不显示树状图符号
  • -P, pattern, 只显示符合指定模式的文件和目录
    显示当前防火墙规则
## tree命令程序
* 需要先通过`yum install tree`命令进行该程序安装
* tree 是一个在命令行界面下用于以树状结构显示目录和文件的工具。
* 语法
```bash
tree [选项] [目录]

tree命令常用选项

  • -a, 显示所有文件和目录
  • -L, Level, 限制显示的层级深度

tree -L 2 /path/to/directory

  • -d, 只显示目录
  • -f, 显示完整路径
  • -i, 不显示树状图符号
  • -P, pattern, 只显示符合指定模式的文件和目录

tree -P "*.txt" /path/to/directory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值