一、开启、关闭、重启和查看某个服务
我们可以通过如下命令 开启、关闭、重启、查看某个服务。
sudo systemctl start | stop | restart | status 服务名
如果我们可以通过查看 /usr/lib/systemd/system
目录下的文件列表来查看有哪些服务,该目录下每个文件都对应一个服务。
ls /usr/lib/systemd/system
我们还可以使用 systemctl 命令 查看服务开机启动状态。
systemctl list-unit-files
同样,我们可以使用 systemctl 开启或关掉指定服务的自动启动。
systemctl enable | disable 服务名
二、关机重启命令
Linux 系统中为了提高磁盘的读写效率,对磁盘采取了“预读迟写”操作方式。当用户保存文件时,Linux 核心并不会立即将保存数据写入物理磁盘汇总,而是将数据保存在缓冲区汇中,等缓冲区满时在写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者出现其它严重问题,则将导致数据丢失。因此,早期的 Linux 系统在关机重启前,我们需要使用 sync
指令 立即将缓冲区数据写入到磁盘中。
现代的 Linux 系统设计的足够智能,能够在执行关机或重启命令时自动处理必要的清理和同步操作。因此,对于大多数情况,直接使用关闭或重启命令即可,而无需手动执行 sync
。
我们可以使用 halt
命令 关闭系统,但此时的系统不会断电。如果我们想要 在关闭系统的同时并断电,可以使用 poweroff
命令。我们还可以使用 reboot
命令重启系统。我们还可以通过 shutdown -h 时间
命令来实现 定时关机,shutdown -r 时间
命令实现 定时重启。
三、修改主机名
我们可以通过 hostnametl
命令 修改主机名。
sudo hostnamectl --static set-hostname 主机名
终端命令提示符 @
之后 :
之前的部分为 当前的主机名。上述命令更给主机名后,我们可以通过 hostname
命令查看修改后的主机名,但终端中命令提示符的更新需要重启系统。
四、APT软件包管理
APT(Advanced Packaging Tools)是 Debian 及其派生 Linux 的软件包管理器,可以自动下载、配置、安装二进制或者源代码格式的软件包。
sudo apt [选项] 命令
五、帮助命令
我们可以通过 man
命令查看命令的帮助文档。
man 命令
同样,我们还可以使用 help
命令来查看命令的详情信息。
help 命令
六、文件目录的查看和切换
我们可以使用 pwd
命令 查看当前所在的目录。
pwd
我们还可以使用 cd
命令 切换目录。
cd [要切换的路径]
其中,要切换的路径可以是绝对路径,也可以是相对路径。
命令 | 功能 |
---|---|
cd | 用户的家目录 |
cd 绝对路径 | 切换路径,绝对路径是以根路径/ 开始 |
cd 相对路径 | 切换路径,相对路径是以当前目录开始 |
cd ~ | 用户的家目录 |
cd - | 回到上一次所在的目录 |
cd .. | 回到当前目录的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷方式路径 |
如果我们要 查看指定目录下的文件,可以使用 ls
命令进行查看。
ls [选项][指定的目录]
在使用 ls
命令时,我们还可以使用选项来使用不同的显示效果。
命令 | 功能 |
---|---|
ls | 列出当前路径下的文件 |
ls -a | 列出全部的文件,包含隐藏文件(开头为. 的文件) |
ls -l | 长数据串列出,包含文件的属性与权限等信息(可以使用ll 替代 ls -l ) |
如果我们想要查看命令的更多用法,可以使用
man 命令
或命令 --help
进行查看。
七、目录和文件的创建、复制、移动和删除
我们可以使用 mkdir
命令 创建目录。
mkdir [选项] 要创建的目录
命令 | 功能 |
---|---|
mkdir 要创建的目录 | 创建目录 |
mkdir -p 要创建的多层目录 | 创建多层目录 |
我们还可以使用 touch
命令 创建一个空文件。
touch 文件名
在创建完目录或文件之后,我们可以使用 cp
命令 复制目录或文件。
cp [选项] 源文件 目标文件目录
命令 | 功能 |
---|---|
cp 源文件 目标文件路径 | 将源文件复制到目标文件路径处 |
cp -r 源文件夹 目标文件路径 | 递归复制整个源文件夹到目标文件路径处 |
我们还可以使用 mv
命令移动文件或目录。
mv 源文件 目标文件路径
命令 | 功能 |
---|---|
mv 源文件 目标文件 | 重命名文件(同级目录下重命名文件) |
mv 源文件 目标文件路径 | 移动文件到目标文件路径 |
我们还可以使用 rm
命令删除文件或目录。
rm [选项] 文件
命令 | 功能 |
---|---|
rm 文件 | 删除文件 |
rm -r 目录 | 递归删除目录中的所有内容 |
rm -f 文件 | 强制执行删除操作,而不提示用于进行确认 |
rm -v 文件 | 显示指令的详细执行过程 |
八、查看文件内容
我们可以使用 cat
命令 查看文件 的内容。
cat [选项] 文件
命令 | 功能 |
---|---|
cat 文件 | 查看文件内容 |
cat -n 文件 | 查看文件内容,显示所有行的行号 |
cat
命令一般用于查看行数比较少的文件,如果文件的行数比较多,推荐使用 more
命令进行 查看文件。
more 文件
操作 | 功能 |
---|---|
Space(空格键) | 向下翻一页 |
Enter(回车键) | 向下翻一行 |
q | 向下滚动一屏 |
Ctrl + F | 向下滚动一屏 |
Ctrl + B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
同样,我们也可以使用 less
命令进行 查看文件。
less 文件
操作 | 功能 |
---|---|
Space(空格键) | 向下翻一页 |
PageUp | 向上翻一行 |
PageDown | 向下翻一行 |
/字串 | 向下搜索子串功能;n:向下查找;N:向上查找 |
?子串 | 向上搜索子串功能;n:向上查找;N:向下查找 |
q | 离开 less 这个程序 |
我们还可以使用 head
命令 输出文件头部内容,默认情况下显示文件前 10 行的内容。
head [选项] 文件
命令 | 功能 |
---|---|
head 文件 | 输出文件头部 10 行内容 |
head -n 行数 文件 | 输出文件头部 n 行内容 |
我们还可以使用 tail
命令 输出文件尾部内容,默认情况下显示文件后 10 行的内容。
tail [选项] 文件
命令 | 功能 |
---|---|
tail 文件 | 输出文件尾部 10 行内容 |
tail -n 行数 文件 | 输出文件尾部 n 行内容 |
tail -f 文件 | 输出文件最新追加的内容,监视文件变化 |
九、输出重定向
我们可以使用 echo
命令输出内容到控制台或重定向指定文件中。
echo [选项] [输出内容]
命令 | 功能 |
---|---|
echo 输出内容 | 输出内容到控制台 |
echo -e "输出内容" | 转义输出内容到控制台 |
echo 输出内容 > 文件 | 输出内容到文件中(覆盖写入) |
echo 输出内容 >> 文件 | 输出内容追加到文件中(追加写入) |
十、软链接
软链接 也称为 符号链接,类似于 Window 系统的快捷方式。我们可以通过如下命令 创建软链接。
ln [-s] 源文件或目录 软链接名
如果我们要 删除软链接,可以使用如下命令:
rm [-rf] 软链接名
十一、系统定时任务
首先,我们需要先查看 cron
服务是否启动,如果 cron
服务没有开启,我们需要开启该服务。
systemctl status cron
sudo systemctl start cron
开启 cron
服务后,我们可以使用 crontab
命令 创建系统定时任务。
crontab 选项
其中,选项的可选值如下:
-e
:编辑 crontab 定时任务。-l
:查询 crontab 任务。-r
:删除当前用户所有的 contab 任务。
我们执行 crontab -e
命令后,系统会提示我们选择编辑器。
此时,我们可以按 Ctrl X
先退出,然后可以通过 DEITOR
环境变量在执行 crontab 时选择编辑器。
EDITOR=vim crontab -e
然后,我们可以在最后添加定时任务。其中,m
表示 一小时当中的第几分钟,范围为 0 ~ 59。-h
表示 一天当中的第几小时,范围为 0 ~ 23。dom
表示 一个月当中的第几天,范围为 1 ~ 31。mon
表示 一年当中的第几月,范围为 1 ~ 12。dow
表示 一周当中的星期几,范围 0 ~ 7(0 和 7 都代表星期日)。
我们还可以填入一些特殊符号代表一些特别的含义。
*
:代表 任何时间。比如第一个 * 就代表一小时中每分钟都执行一次的意思。,
:代表 不连续的时间。比如0 8,12,16 * * *
命令就代表在每天的 8:00,12:00,16:00 都执行一次命令。-
:代表 连续的时间范围。比如0 5 * * 1-6
命令就代表周一到周六的 5:00 执行命令。