前言
思维导图:
在这里我参考的是《Linux系统管理基础项目教程(CentOS7.2)微课版》
其中内容只是基础的第一部分——Linux系统常用命令
文章目录
1. linux系统常用命令
Linux操作系统是一个强大的开源操作系统,其命令行界面(CLI)通过shell(如bash、zsh等)提供了丰富的命令集来执行各种任务。
Linux操作系统的命令格式一般为:
命令 [参数] [选项] [文件名]
1.1 目录管理
1.1.1 pwd(present working directory)
- 显示当前工作目录。
[root@localhost redhat]# pwd
/home/redhat
1.1.2 cd
- 改变当前工作目录。例如 cd /home/进入到 /home/ 目录。
[root@localhost home]# cd /home/
[root@localhost home]#
1.1.3 ls
- 列出当前目录下的文件和子目录。可选参数 -l 以长格式列出, -a 包括隐藏文件。
[root@localhost home]# ls
redhat
1.1.4 mkdir
- 创建新目录。例如 mkdir newdir 创建名为 newdir 的新目录。
[root@localhost home]# mkdir newdir
[root@localhost home]# ls
newdir redhat
1.1.5 rmdir
- 删除空目录。例如 rmdir newdir 删除名为 newdir 的空目录。
[root@localhost home]# rmdir newdir
[root@localhost home]# ls
redhat
1.2 文件管理
1.2.1 touch
- 创建新文件或更新已有文件的访问和修改时间戳。
创建文件:
[root@localhost home]# touch newfile.txt
更新文件时间戳:
[root@localhost home]#touch existingfile.log
1.2.2 cp
- 复制文件或目录。例如:
复制单个文件
[root@localhost home]# cp source.txt destination.txt
这将会把名为 source.txt 的文件复制到同一目录下,新文件名为destination.txt
将复制的文件粘贴到路径下的文件夹
cp source.txt /path/to/destination/directory/
这样会将 source.txt 文件复制到指定的目录下,保持原有的文件名
1.2.3 mv
- 移动或重命名文件或目录。例如 :
重命名文件:
[root@localhost home]#mv old_filename new_filename
移动文件:
[root@localhost home]#mv file.txt /path/to/another/directory/
1.2.4 rm
- 删除文件或目录。需谨慎使用,rm -rf dir 可以递归强制删除目录(慎用)。
强制删除文件,无提示
rm -f file.txt
交互式删除文件
rm - i file.txt
1.2.5 cat
- 连接并显示文件内容。例如 cat file.txt 输出 file.txt 的内容。
显示文件内容:
[root@localhost home]# cat file.txt
合并多个文件:
[root@localhost home]# cat file1.txt file2.txt > combined.txt
此命令将 file1.txt 和 file2.txt 文件的内容合并,并将结果输出到新的文件 combined.txt
创建文件:
[root@localhost home]# cat > newfile.txt
运行此命令后,你可以开始在终端中输入内容,当输入完成后按 Ctrl+D 结束输入,这些内容会被写入到 newfile.txt 文件中
追加内容到末尾:
[root@localhost home]# echo “Some text” >> existingfile.txt虽然这不是cat命令的直接用法,但这里使用了 echo 和 >> 符号来追加内容到文件末尾,这类似于 cat 命令的追加操作,即 cat some_text.txt >> existingfile.txt
1.2.6 tac
- 与 cat 类似,但按行逆序输出文件内容。
在Linux操作系统中,tac 命令用于反向(颠倒顺序)地逐行显示文件内容,即从文件的尾部开始向前显示每一行。它与 cat 命令的功能相反,cat 是从头到尾连续显示文件内容
1.2.7 more 和 less
- 分页查看文件内容,less 更加灵活,支持前后翻页。
空格键(Space)或回车键(Enter):向下翻动一页内容。
b 键:向上翻动一页内容(在more中不常用,因为默认情况下more仅支持向下翻页)。
q 键:退出 more。
/搜索词:向下搜索匹配的字符串。
?搜索词:向上搜索匹配的字符串(more本身不支持此功能,但一些实现可能添加了该功能)。
空格键(Space)或回车键(Enter):向下滚动一行或一页内容。
PgDn 或 j 键:向下滚动一行或一页。
PgUp 或 k 键:向上滚动一行或一页。
b 键:向上翻页。
G 键:跳转到文件尾部。
g 键:跳转到文件头部。
/搜索词:向下搜索匹配的字符串,按n继续找到下一个匹配项,按N反向查找上一个匹配项。
?搜索词:向上搜索匹配的字符串。
q 键:退出 less。
1.2.8 head 和 tail
- 分别显示文件开头和结尾的部分行,默认显示前10行和后10行,可通过参数指定行数。
head readme.md 会显示文件 readme.md 开头的若干行内容, -n [行数]:指定显示文件的前几行,默认为10行
[root@localhost home]# head -n 5 readme.md
显示 README.md 文件的前5行
tail指定行数显示:
[root@localhost home]# tail -n 10 logfile.log
1.3 查找与搜索
1.3.1 find
- 在指定目录下查找满足条件的文件。
按文件名查找:
[root@localhost home]# find /path/to/search -name “filename”
按文件类型查找
查找当前目录及其子目录下的所有普通文件
[root@localhost home]# find . -type f查找当前目录及其子目录下的所有目录
[root@localhost home]# find . -type d
按文件大小查找
#查找大于10MB的文件
[root@localhost home]# find . -size +10M
#查找小于10MB的文件
[root@localhost home]# find . -size -10M
1.3.2 grep
- 在文件中搜索匹配的文本模式。
1.4 压缩与解压
1.4.1 tar
- 不压缩的归档文件:
tar -cvf archive_name.tar directory_or_file(s)
- c 表示创建一个新的归档文件。
- v 选项是可选的,用于输出详细信息,显示正在处理哪些文件。
- f 指定归档文件的名字。
示例:将目录 mydir 打包成 mydir.tar:
tar -cvf mydir.tar mydir
- 压缩归档文件:
使用 gzip 压缩:
tar -czvf archive_name.tar.gz directory_or_file(s)
使用 bzip2 压缩:
tar -cjvf archive_name.tar.bz2 directory_or_file(s)
使用 xz 压缩:
tar -cJvf archive_name.tar.xz directory_or_file(s)
1.5 系统管理
1.5.1 man
man 参数 命令或者配置文件
例如,查看cp的用法:
[root@localhost home]# man cp
1.5.2 shutdown
在Linux系统中,shutdown
命令是一个非常重要的系统管理工具,它允许系统管理员计划性地关闭或重启计算机系统。以下是shutdown
命令的一些基本使用方法及其参数说明:
shutdown [选项] [时间] [警告信息]
选项说明:
-t 秒
:设置关机或重启前的延迟时间,单位为秒。-r
:重新启动系统。在指定的时间后,系统将会先关闭所有服务然后重启。-h
:关闭系统并停止电源,即关机。这是最常用的关机选项。-k
:并不真正执行关机或重启操作,而是发送一个警告消息给所有在线用户。-c
:取消先前已经计划的关机或重启操作。-f
:在重启时不进行文件系统的检查(fsck)。-F
:在重启时强制进行文件系统的检查(fsck)。-n
:不调用init或systemd进行关机操作,而是由shutdown自身尝试进行关机。-Wall
或-w
:向所有已登录的用户发送警告消息。
时间参数:
- 可以指定具体的分钟数,如
shutdown -h +5 "System will shut down in 5 minutes"
表示5分钟后关机,并附带一条警告信息。 - 可以指定具体的时间,如
shutdown -h 23:30
表示在23点30分时关机。 - 使用 “+m” 形式指定分钟数,则是相对于当前时间的延后关机或重启。
警告信息:
在时间参数后面可以跟上一句消息,这将在关机或重启前显示给所有用户,作为提醒信息。
例如:
- 即刻关机:
sudo shutdown -h now
- 10分钟后关机,并发送一条提示消息:
sudo shutdown -h +10 "System maintenance scheduled"
- 取消预定的关机或重启:
sudo shutdown -c
- 计划在凌晨3点重启系统:
sudo shutdown -r 03:00
1.5.3 reboot
在Linux操作系统中,reboot
命令用于重新启动(重启)计算机。这个命令使得系统执行一系列必要的操作来安全地关闭系统进程,同步文件系统,然后重新初始化硬件以启动新的操作系统实例。
以下是 reboot
命令的一些基本使用方法和选项:
基本用法:
sudo reboot
使用上述命令时,系统管理员权限(通常通过 sudo
命令获取)是必需的,因为它涉及到对系统核心级别的控制。
选项:
-
-n
或--no-sync
: 不等待文件系统和其他资源同步就重启。这是一个非标准选项,可能会导致数据丢失。 -
-w
或--warm
: 执行模拟重启(仅发出信号,实际不重启)。系统会执行所有正常的重启前清理工作,但不会真的重启。 -
-f
或--force
:强制重启,即使系统处于多用户模式或者某些系统资源未能正常关闭也强制重启。 -
-d
:类似于-n
,跳过sync步骤,而且在重启时不记录wtmp文件,即此次重启操作不会被记录在系统日志中。 -
-i
:在重启之前发送SIGINT信号给init程序,这样可以让init尝试关闭所有的服务和守护进程。 -
-t 秒数
:延迟指定的秒数后才进行重启。
例如,如果你想在30秒后强制重启系统,可以使用:
sudo reboot -f -t 30
请注意,使用 -f
或其他可能导致数据不一致或无法正常关闭服务的选项应当谨慎,因为这可能增加数据损坏的风险。在大多数情况下,除非遇到特殊情况,否则推荐使用默认的、更为安全的方式重启系统。
1.5.4 su
在Linux系统中,su
(意为“switch user”,即切换用户)命令主要用于切换当前登录用户的权限至其他用户,通常用于在不同用户身份间切换,特别是从普通用户切换到超级用户(root)或反之。
以下是su
命令的基本使用方法及其选项:
su [选项] [用户名]
-
基本用法:
- 不带任何选项和用户名运行
su
,默认情况下会尝试切换到超级用户(root):
运行后会提示输入目标用户的密码(在这种情况下是root用户的密码)。su
- 不带任何选项和用户名运行
-
切换到指定用户:
- 若要切换到名为
username
的普通用户,可以这样操作:
同样,将会要求输入su username
username
用户的密码。
- 若要切换到名为
-
选项说明:
-
-l
或--login
:模拟完整的登录shell,不仅切换用户,还会加载目标用户的环境变量(如PATH、HOME等)和启动文件(如.bash_profile
或.bashrc
)。su -l username
-
-c command
或--command=command
:以指定用户身份执行单一命令,执行完毕后自动回到原始用户身份,不需要登录shell。su -c 'whoami' username
-
-m
,-p
或--preserve-environment
:切换用户时保留当前环境变量,而不是加载新用户的环境设置。 -
-s
,--shell
:指定要使用的shell程序。 -
-f
或--fast
:适用于csh或tcsh shells,忽略用户的个人初始化文件。
-
1.6 进程管理
1.6.1 ps
ps命令用于显示当前系统中进程的状态。基本用法如下:
ps [选项]
- 常见选项包括:
-aux
或-ef
:显示所有用户的详细进程信息,包括守护进程(daemon)。-u [用户名]
:显示指定用户的进程。-c
:仅显示命令名和命令行参数。-p [进程ID]
:仅显示指定进程ID的进程信息。
示例:
# 显示所有活动进程
ps aux
# 查看特定用户(比如:user1)的进程
ps -u user1
# 查看特定进程ID(比如:12345)的进程信息
ps -p 12345
1.6.2 kill
kill命令用于向指定进程发送信号,从而终止或控制进程的行为。基本用法如下:
kill [-信号] [进程ID]
- 常见信号包括:
-1
(SIGHUP):重新加载配置文件,很多服务进程会重启自身。-2
(SIGINT):类似于按Ctrl+C
,中断进程。-9
(SIGKILL):强制终止进程,不可阻塞,最为严厉的结束信号,一般情况应避免直接使用。-15
(SIGTERM):正常、温和地请求进程终止,这是首选的结束进程的方式,给进程机会清理资源。
示例:
# 发送SIGTERM信号结束进程ID为12345的进程
kill 12345
# 强制结束进程ID为67890的进程
kill -9 67890
为了找出要终止的进程ID,通常先用ps
命令配合grep
等工具筛选出所需进程,例如:
# 查找名为myprogram的进程并获取其PID
ps -ef | grep myprogram
# 根据输出找到对应的进程ID,然后用kill命令结束该进程
kill -15 <进程ID>
另外,kill命令还可以配合jobs或pgrep命令来结束作业控制下的后台进程或按名称查找进程。例如:
# 终止后台作业中的第一个进程
kill %1
# 根据进程名结束进程
pgrep -f "myprogram" | xargs kill -15
在使用这些命令时,务必小心操作,尤其是kill -9
,因为它会导致进程立即终止,没有机会进行资源清理或保存数据。