服务器Linux的一些常用命令,收藏备用!

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【10月更文挑战第20天】

在Linux服务器的管理和维护过程中,掌握一些常用的命令是非常必要的。这些命令不仅可以帮助你更好地了解和控制系统,还能提高工作效率,减少错误发生的概率。本文将详细介绍一些在Linux服务器上常用的命令,覆盖从基本的文件操作到高级的系统管理,力求内容全面,帮助读者深入理解每一个命令的用法和原理。

一、文件与目录操作命令

1. ls —— 列出目录内容

ls 是最常用的命令之一,用于列出目录内容。它可以显示当前目录或指定目录下的文件和子目录。

ls
  • ls -l:长格式列出文件,显示详细信息如权限、链接数、所有者、文件大小和修改时间。
  • ls -a:显示隐藏文件,即那些以.开头的文件。
  • ls -h:与-l结合,显示人类可读的文件大小,如1K234M

2. cd —— 切换目录

cd 用于改变当前工作目录。

cd /path/to/directory
  • cd ~cd:返回用户的主目录。
  • cd -:返回上一个工作目录。
  • cd ..:返回上一级目录。

3. pwd —— 显示当前工作目录

pwd(print working directory)用于显示当前的工作目录路径。

pwd

4. mkdir —— 创建目录

mkdir 用于创建一个新的目录。

mkdir new_directory
  • mkdir -p /path/to/directory:递归创建目录。如果父目录不存在,mkdir 会自动创建。

5. rmdir —— 删除空目录

rmdir 只能删除空目录。如果目录不为空,可以使用 rm -r

rmdir directory_name

6. rm —— 删除文件或目录

rm 用于删除文件或目录。删除操作不可恢复,因此要小心使用。

rm file_name
  • rm -r directory_name:递归删除目录及其内容。
  • rm -f file_name:强制删除文件,无需确认提示。

7. cp —— 复制文件或目录

cp 命令用于复制文件或目录。

cp source_file destination_file
  • cp -r source_directory destination_directory:递归复制目录。

8. mv —— 移动或重命名文件或目录

mv 命令用于移动或重命名文件或目录。

mv old_name new_name
  • mv file_name /path/to/destination/:将文件移动到指定目录。

9. touch —— 创建空文件或更新文件时间戳

touch 通常用于创建一个新的空文件,或者更新现有文件的时间戳。

touch file_name

二、文件内容查看与编辑命令

1. cat —— 连接并显示文件内容

cat 是一个常用的命令,用于查看文件内容,尤其是小文件。

cat file_name
  • cat file1 file2 > merged_file:将多个文件合并成一个文件。
  • cat -n file_name:显示行号。

2. lessmore —— 分页查看文件内容

lessmore 用于分页查看文件内容。相比 moreless 更加功能丰富。

less file_name
  • less 中,可以使用上下箭头键滚动文件,按 q 退出。
  • more 命令则逐页显示内容,按空格键翻页。

3. headtail —— 查看文件的头部或尾部内容

headtail 命令分别用于查看文件的前几行或最后几行内容。

head -n 10 file_name
  • head -n 10:查看文件的前10行。
  • tail -n 10 file_name:查看文件的最后10行。
  • tail -f file_name:实时查看文件的更新内容,通常用于监控日志文件。

4. nanovim —— 文件编辑器

nanovim 是两个常用的文本编辑器。nano 是一个易于使用的编辑器,适合新手,而 vim 则功能强大,适合高级用户。

nano file_name
  • vim file_name:打开文件进行编辑。
  • nano 中,按 Ctrl+O 保存文件,Ctrl+X 退出编辑。
  • vim 中,按 i 进入插入模式,编辑完成后按 Esc,输入 :wq 保存并退出。

三、权限与用户管理命令

1. chmod —— 修改文件权限

chmod 命令用于更改文件或目录的权限。权限由读(r)、写(w)、执行(x)组成,分别用数字4、2、1表示。

chmod 755 file_name
  • chmod u+x file_name:给文件所有者增加执行权限。
  • chmod -R 755 directory_name:递归修改目录权限。

2. chown —— 修改文件所有者

chown 命令用于更改文件或目录的所有者和所属组。

chown owner_name file_name
  • chown owner_name:group_name file_name:同时修改所有者和所属组。
  • chown -R owner_name:group_name directory_name:递归更改目录及其内容的所有者。

3. passwd —— 修改用户密码

passwd 命令用于修改当前用户或其他用户的密码。

passwd
  • passwd user_name:为指定用户修改密码,必须有管理员权限。

4. useradduserdel —— 添加与删除用户

useradd 命令用于创建新用户,而 userdel 则用于删除用户。

useradd new_user
  • userdel user_name:删除用户。
  • useradd -m -s /bin/bash new_user:创建用户并为其分配主目录和默认Shell。

5. usermod —— 修改用户信息

usermod 命令用于修改现有用户的信息。

usermod -aG group_name user_name
  • usermod -l new_user_name old_user_name:更改用户名。
  • usermod -d /new/home/dir user_name:更改用户的主目录。

6. groups —— 显示用户所属的组

groups 命令用于显示指定用户所属的所有组。

groups user_name
  • 不带参数时,显示当前用户所属的组。

四、进程管理命令

1. ps —— 显示进程状态

ps 命令用于显示当前系统运行的进程状态。

ps aux
  • ps -ef:显示详细的进程信息。
  • ps aux | grep process_name:过滤并显示特定进程。

2. tophtop —— 实时显示进程状态

tophtop 命令用于实时显示系统中各个进程的运行状态,其中 htoptop 的增强版,提供了更加友好的用户界面。

top
  • top 中,可以按 k 杀死进程,按 q 退出。
  • htop 提供了彩色显示和更丰富的交互功能。

3. killkillall —— 终止进程

killkillall 命令用于终止进程。kill 根据进程ID(PID)终止进程,而 killall 则根据进程名终止所有匹配的进程。

kill PID
  • kill -9 PID:强制终止进程。
  • killall process_name:终止所有名为 process_name 的进程。

4. bgfg —— 后台与前台进程控制

bgfg 命令用于控制进程在后台或前台运行。

bg %1
  • fg %1:将后台作业调回前台。
  • jobs:列出所有后台作业。

5. nohup —— 持续运行命令

nohup 命令用于在退出终端后继续运行进程,通常与 & 符号结合使用,以将命令放入后台运行。

nohup command &
  • nohup 的输出默认保存在 nohup.out 文件中。
  • nohup& 结合使用可以使命令在后台运行并且不会因为终端关闭而被终止。

五、网络管理命令

1. ping —— 检查网络连通性

ping 命令用于测试主机与目标主机之间的连通性。它通过发送ICMP请求包,并接收返回的应答包,来判断网络连接状态。

ping example.com
  • ping -c 4 example.com:只发送4个请求包。
  • ping -i 0.5 example.com:设置发送请求包的时间间隔为0.5秒。

2. ifconfigip —— 网络接口配置

ifconfig 命令用于显示和配置网络接口,然而在现代系统中,更推荐使用功能更强大的 ip 命令。

ifconfig
  • ifconfig eth0 up:启用网卡 eth0
  • ip addr show:显示所有网络接口的IP地址信息。
  • ip link set eth0 up:启用网卡 eth0

3. netstatss —— 网络状态查看

netstat 命令用于显示网络连接、路由表、接口统计等信息,而 ss 命令是 netstat 的现代替代品,提供了类似功能,但速度更快。

netstat -tuln
  • netstat -anp:显示所有连接及对应进程。
  • ss -tuln:显示所有监听的TCP和UDP端口。

4. traceroute —— 路由追踪

traceroute 命令用于追踪数据包到达目标主机所经过的路由。它能够帮助识别网络中的瓶颈。

traceroute example.com
  • traceroute -n example.com:以数字形式显示路由节点的IP地址。
  • 在部分系统中,traceroute 可能被 tracepath 命令替代。

5. wgetcurl —— 文件下载与网络请求

wgetcurl 都是用于网络请求的命令行工具,常用于文件下载和与API进行交互。

wget http://example.com/file.zip
  • wget -c http://example.com/file.zip:断点续传下载文件。
  • curl -O http://example.com/file.zip:下载文件并保存为原始文件名。
  • curl -I http://example.com:获取HTTP头信息。

6. scprsync —— 文件远程传输

scp 命令用于通过SSH协议在本地与远程主机之间传输文件。rsync 命令则提供了更加高效的同步功能,支持增量传输。

scp local_file user@remote_host:/path/to/destination/
  • scp -r directory user@remote_host:/path/to/destination/:递归传输目录。
  • rsync -avz local_dir user@remote_host:/path/to/destination/:增量同步目录,并压缩传输数据。

7. ftpsftp —— 文件传输协议

ftpsftp 命令用于通过FTP协议传输文件。sftp 是通过SSH的安全传输方式。

ftp remote_host
  • put local_file:上传文件到远程主机。
  • get remote_file:从远程主机下载文件。
  • sftp user@remote_host:启动安全文件传输会话。

六、磁盘与文件系统管理命令

1. df —— 查看磁盘空间使用情况

df 命令用于显示文件系统的磁盘空间使用情况。

df -h
  • df -h:以人类可读的格式显示磁盘空间使用情况。
  • df -T:显示文件系统类型。

2. du —— 查看目录或文件占用空间

du 命令用于显示目录或文件占用的磁盘空间。

du -sh directory_name
  • du -h --max-depth=1 /path/to/directory:显示目录下每个子目录占用的空间。
  • du -a:包括文件在内的详细显示。

3. fdiskparted —— 磁盘分区工具

fdiskparted 命令用于管理磁盘分区。fdisk 适用于MBR分区表,而 parted 则支持GPT和MBR两种分区表格式。

fdisk /dev/sda
  • fdisk -l:列出所有磁盘及其分区表。
  • parted /dev/sda:进入 parted 交互模式,进行磁盘分区操作。

4. mkfs —— 创建文件系统

mkfs 命令用于在分区上创建文件系统。

mkfs.ext4 /dev/sda1
  • mkfs -t ext4 /dev/sda1:指定文件系统类型为ext4。
  • mkfs.xfs /dev/sda1:创建XFS文件系统。

5. mountumount —— 挂载与卸载文件系统

mount 命令用于将文件系统挂载到指定的挂载点,而 umount 命令则用于卸载已挂载的文件系统。

mount /dev/sda1 /mnt
  • mount -a:挂载所有在/etc/fstab中定义的文件系统。
  • umount /mnt:卸载挂载在 /mnt 的文件系统。

6. fsck —— 文件系统检查

fsck 命令用于检查和修复文件系统中的错误。

fsck /dev/sda1
  • fsck -y /dev/sda1:自动修复发现的错误。
  • fsck -n /dev/sda1:只检测错误,不进行修复。

7. mountunmount —— NFS网络文件系统

在使用NFS(Network File System)时,可以使用 mount 命令将远程的NFS共享挂载到本地系统。

mount -t nfs remote_host:/path/to/share /mnt/nfs
  • umount /mnt/nfs:卸载NFS挂载点。

七、系统监控与优化命令

1. uptime —— 查看系统运行时间

uptime 命令用于显示系统的运行时间、当前时间、登录用户数以及系统的平均负载。

uptime
  • 输出格式:当前时间、系统运行时间、当前登录用户数、平均负载(分别是1分钟、5分钟、15分钟的平均值)。

2. free —— 查看内存使用情况

free 命令用于显示系统的内存和交换分区的使用情况。

free -h
  • free -h:以人类可读的格式显示内存使用情况。
  • free -m:以MB为单位显示内存使用情况。

3. vmstat —— 系统性能监控

vmstat 命令用于报告虚拟内存、进程、CPU活动等信息,是系统性能监控的重要工具。

vmstat 2 5
  • vmstat 后的两个参数分别表示采样间隔(2秒)和采样次数(5次)。
  • 输出信息包括内存使用、进程、CPU使用等重要指标。

4. iostat —— 磁盘I/O监控

iostat 命令用于监控系统的磁盘I/O使用情况,包括CPU使用情况和磁盘读写速率。

iostat -x 2 5
  • -x 参数提供了详细的扩展统计信息。
  • 后面的参数表示每隔2秒采样一次,共采样5次。

5. sar —— 系统活动报告

sar 命令是一个功能强大的系统活动监控工具,可以报告CPU、内存、磁盘、网络等多方面的系统活动信息。

sar -u 1 5
  • sar -u:报告CPU使用情况。
  • sar -r:报告内存使用情况。
sar -r 1 5
  • sar -n DEV:报告网络接口的流量数据。
  • sar -d:报告磁盘设备的I/O使用情况。

6. tophtop —— 实时系统监控

tophtop 命令提供了一个实时的系统监控界面,显示了系统进程、CPU、内存使用情况等重要信息。htoptop 的增强版,提供了更友好的界面和更多的功能。

top
  • top -o %CPU:按CPU使用率排序显示进程。
  • htop:启动 htop 界面,可使用方向键、F键进行操作。
  • F5:在 htop 中切换树形视图,显示进程的父子关系。

7. atop —— 高级系统监控工具

atop 命令是一个高级的系统和进程监控工具,可以持续记录系统的资源使用情况,包括CPU、内存、磁盘、网络等。

atop
  • atop -r:读取之前的记录文件进行分析。
  • atop -c:显示每个进程的详细资源使用情况。

8. glances —— 轻量级系统监控

glances 命令是一个跨平台的系统监控工具,支持显示CPU、内存、磁盘、网络等多种资源使用情况,并提供简洁的界面。

glances
  • glances -t 2:设置刷新间隔为2秒。
  • glances -s:启动为服务器模式,可以通过网络访问。

9. nmon —— 系统性能监控

nmon 命令是一个综合的系统性能监控工具,支持监控CPU、内存、网络、磁盘等多种系统资源。

nmon
  • c:显示CPU使用情况。
  • m:显示内存使用情况。
  • d:显示磁盘I/O情况。
  • q:退出 nmon 界面。

10. iotop —— 磁盘I/O监控

iotop 命令用于实时显示进程的磁盘I/O使用情况,类似于 top 命令。

iotop
  • iotop -o:只显示正在执行I/O操作的进程。
  • iotop -P:按进程显示总I/O使用情况。

11. strace —— 系统调用跟踪

strace 命令用于跟踪进程的系统调用,是调试和分析程序行为的重要工具。

strace -p PID
  • strace -c ls:统计 ls 命令执行期间的系统调用次数和时间。
  • strace -e open ls:只跟踪 ls 命令中与 open 系统调用相关的操作。

12. dstat —— 综合系统资源监控

dstat 命令集成了 vmstatiostatnetstat 等命令的功能,能够实时显示CPU、磁盘、网络、内存等多方面的资源使用情况。

dstat
  • dstat -cdngy:显示CPU、磁盘、网络、页面交换和系统负载的统计信息。
  • dstat --top-cpu:显示占用CPU最多的进程。

13. tcpdump —— 网络流量抓取

tcpdump 命令用于抓取和分析网络数据包,是网络故障排除和安全分析的重要工具。

tcpdump -i eth0
  • tcpdump -i eth0 port 80:抓取接口 eth0 上的HTTP流量。
  • tcpdump -w file.pcap:将抓取的数据包保存到文件 file.pcap 中,以供之后分析。

14. iftop —— 实时网络流量监控

iftop 命令用于实时显示网络接口的流量情况,类似于 top 命令,但专注于网络流量。

iftop -i eth0
  • iftop -n:以数字形式显示IP地址。
  • iftop -P:显示端口信息。

15. vnstat —— 网络流量统计

vnstat 命令用于记录和显示网络接口的流量统计信息,可以长时间监控网络流量,并生成报告。

vnstat -i eth0
  • vnstat -h:显示人类可读的流量统计信息。
  • vnstat -d:显示每日的流量统计。

八、日志管理命令

1. tailhead —— 查看文件内容

tailhead 命令用于查看文件的开头或结尾部分内容,常用于日志文件的查看。

tail -f /var/log/syslog
  • tail -n 20 /var/log/syslog:查看文件的最后20行。
  • head -n 20 /var/log/syslog:查看文件的前20行。

2. lessmore —— 分页查看文件内容

lessmore 命令用于分页查看文件内容。less 提供了更丰富的功能,支持向前和向后翻页。

less /var/log/syslog
  • less 界面中,按 G 跳到文件末尾,按 g 跳到文件开头。
  • moreless 的简化版,只支持向前翻页。

3. grep —— 文本搜索

grep 命令用于在文件中搜索匹配的文本行,常用于从日志文件中提取关键信息。

grep "error" /var/log/syslog
  • grep -i "error" /var/log/syslog:忽略大小写进行搜索。
  • grep -r "error" /var/log/:递归搜索目录中的所有文件。

4. logger —— 向系统日志发送消息

logger 命令用于向系统日志发送自定义消息,常用于脚本或程序的调试。

logger "This is a test message"
  • logger -p local0.notice "Custom message":指定日志级别发送消息。
  • logger -t myscript "Script started":指定日志标签发送消息。

5. logrotate —— 日志轮换

logrotate 是一个日志管理工具,用于自动轮换、压缩、删除和邮件通知日志文件。配置文件通常位于 /etc/logrotate.conf

logrotate /etc/logrotate.conf
  • logrotate -f /etc/logrotate.conf:强制执行日志轮换。
  • 日志轮换配置可以控制日志文件的保存时间、压缩方式、存档数量等。

九、用户与权限管理命令

1. useradduserdel —— 添加与删除用户

useradd 命令用于在系统中创建新用户,而 userdel 则用于删除用户。

useradd newuser
  • useradd -m newuser:为新用户创建主目录。
  • userdel -r olduser:删除用户并移除其主目录。

2. passwd —— 修改用户密码

passwd 命令用于修改用户的登录密码。管理员可以使用此命令为其他用户设置密码。

passwd username
  • passwd:不带参数执行时,为当前用户修改密码。
  • passwd -d username:删除用户的密码,允许无密码登录。

3. usermod —— 修改用户信息

usermod 命令用于修改用户的账户信息,如用户组、登录shell、主目录等。

usermod -aG sudo username
  • usermod -l newname oldname:修改用户名。
  • usermod -d /new/home/dir username:更改用户的主目录。

4. groupaddgroupdel —— 添加与删除用户组

groupadd 命令用于创建新的用户组,groupdel 命令则用于删除用户组。

groupadd newgroup
  • groupdel oldgroup:删除用户组。
  • gpasswd -a username newgroup:将用户添加到用户组。

5. chownchmod —— 文件权限管理

chown 命令用于改变文件或目录的所有者和用户组,chmod 命令用于修改文件或目录的权限。

chown user:group filename
  • chown root:staff /path/to/file:将文件的所有者更改为 root,组更改为 staff
  • chown -R user:group /path/to/directory:递归更改目录及其所有子文件和子目录的所有者和组。
chmod 755 filename
  • chmod u+x filename:为文件所有者添加执行权限。
  • chmod -R 755 /path/to/directory:递归修改目录及其内容的权限。

6. chgrp —— 修改文件组

chgrp 命令用于更改文件或目录的用户组,与 chown 相似,但专注于修改组而非所有者。

chgrp staff filename
  • chgrp -R staff /path/to/directory:递归更改目录及其内容的用户组。

7. umask —— 设置默认权限掩码

umask 命令用于设置新建文件和目录的默认权限掩码,从而控制新文件的默认权限。

umask 022
  • umask 077:新建文件的默认权限为 600,目录的默认权限为 700
  • 通过在 ~/.bashrc 中添加 umask 设置,可以持久化配置。

8. sudosu —— 提升权限

sudo 命令用于以超级用户(或其他用户)权限执行命令,而 su 命令则用于切换到其他用户。

sudo command
  • sudo -i:以超级用户身份打开一个交互式shell。
  • sudo -u username command:以指定用户身份执行命令。
su -
  • su username:切换到指定用户。
  • exit:退出当前用户,返回原来的shell。

9. idwhoami —— 查看用户信息

id 命令用于显示当前用户的UID、GID及所属组信息,而 whoami 命令则用于显示当前登录的用户名。

id
  • id username:显示指定用户的UID、GID及所属组信息。
  • whoami:显示当前用户的用户名。

10. lastlastlog —— 查看用户登录记录

last 命令用于显示系统最近的用户登录记录,而 lastlog 命令则用于显示所有用户的最近登录时间。

last
  • last -n 10:显示最近10次登录记录。
  • lastlog:显示所有用户的最近登录时间。
  • lastlog -u username:显示指定用户的最近登录时间。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
17 3
|
3天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
15 2
|
3天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
17 3
|
6天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
30 6
|
7天前
|
安全 算法 Linux
Linux 服务器还有漏洞?建议使用 OpenVAS 日常检查!
在数字化时代,Linux 服务器的安全至关重要。OpenVAS 是一款优秀的开源漏洞扫描工具,可以帮助及时发现并修复服务器中的安全隐患。本文将介绍 OpenVAS 的主要功能、使用方法及应对漏洞的措施,帮助用户加强服务器安全管理,确保企业数字化安全。
22 7
|
7天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
20 7
|
6天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
11 2
|
3天前
|
网络协议 安全 Linux
Linux 上设置自己的公共时间服务器
Linux 上设置自己的公共时间服务器
12 0
|
弹性计算 Linux
[转]ECS之初体验(Linux)
服务商: 阿里云 操作系统:Linux 64位 Ubantu 20.04 64位
115 0
|
5天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。