Linux基本指令

2024-02-16

Linux是一个功能强大的操作系统,它提供了一系列丰富的命令供用户使用。以下是一些常用的Linux基本指令:

  1. ls:列出目录内容。

    • ls:列出当前目录的内容。

    • ls -l:以长格式显示文件和目录信息。

    • ls -a:显示所有文件和目录,包括隐藏文件。

    • ls -h:以人类可读的格式(例如,K,M,G)显示文件大小。


  2. cd:改变当前工作目录。

    • cd [目录]:切换到指定目录。

    • cd ~:切换到当前用户的主目录。

    • cd -:切换到上一个目录。


  3. pwd:打印当前工作目录。

    • pwd:直接执行即可显示当前目录。


  4. cp:复制文件或目录。

    • cp [源文件或目录] [目标文件或目录]:复制文件或目录到指定位置。

    • cp -r [源目录] [目标目录]:递归复制整个目录。


  5. mv:移动文件或目录,或重命名。

    • mv [源文件或目录] [目标文件或目录]:移动文件或目录到指定位置,或重命名。


  6. rm:删除文件或目录。

    • rm [文件]:删除文件。

    • rm -r [目录]:递归删除目录及其内容。

    • rm -f [文件]:强制删除文件,不提示。


  7. touch:创建空文件或更新文件时间戳。

    • touch [文件名]:创建新文件或更新现有文件的时间戳。


  8. cat:连接并显示文件内容。

    • cat [文件]:显示文件内容。

    • cat [文件1] [文件2] > [新文件]:合并文件内容。


  9. more:分页显示文件内容。

    • more [文件]:分页查看文件内容。


  10. less:分页显示文件内容,可向前和向后翻页。

    • less [文件]:使用less查看文件内容,支持前后翻页搜索等。


  11. head:显示文件开头部分。

    • head [文件]:默认显示文件前10行。

    • head -n [行数] [文件]:显示指定行数的文件内容。


  12. tail:显示文件末尾部分。

    • tail [文件]:默认显示文件最后10行。

    • tail -n [行数] [文件]:显示指定行数的文件内容。

    • tail -f [文件]:实时查看文件更新内容。


  13. mkdir:创建新目录。

    • mkdir [目录名]:创建新目录。

    • mkdir -p [目录路径]:递归创建目录路径中的所有不存在的目录。


  14. rmdir:删除空目录。

    • rmdir [目录名]:删除空目录。


  15. chmod:改变文件或目录的权限。

    • chmod [权限] [文件或目录]:设置文件或目录的权限。例如,chmod 755 file设置文件所有者可读可写可执行,组用户和其他用户可读可执行。


  16. chown:改变文件或目录的所有者和所属组。

    • chown [用户]:[组] [文件或目录]:改变文件或目录的所有者和所属组。


  17. find:在目录树中查找文件或目录。

    • find [路径] -name [文件名]:按文件名查找文件。

    • find [路径] -type [文件类型]:按文件类型查找文件,如f表示普通文件,d表示目录。


  18. grep:在文件中搜索匹配的行。

    • grep [模式] [文件]:在文件中搜索包含指定模式的行。


  19. tar:归档工具,用于创建和提取归档文件。

    • tar -czvf [归档文件名.tar.gz] [文件或目录]:创建gzip压缩的tar归档文件。

    • tar -xzvf [归档文件名.tar.gz]:提取gzip压缩的tar归档文件。


  20. gzip:压缩或解压缩文件。

    • gzip [文件]:压缩文件,生成.gz后缀的压缩文件。

    • gunzip [压缩文件.gz]:解压缩.gz后缀的压缩文件。

  1. df:显示磁盘空间使用情况。

    • df:显示所有已挂载文件系统的磁盘空间使用情况。

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


  2. du:估算文件或目录的磁盘使用情况。

    • du [文件或目录]:显示指定文件或目录的磁盘使用情况。

    • du -sh [文件或目录]:以人类可读的格式显示总计的磁盘使用情况。


  3. ln:创建硬链接或符号链接。

    • ln [源文件或目录] [链接名]:创建硬链接。

    • ln -s [源文件或目录] [链接名]:创建符号链接(软链接)。


  4. ps:显示进程状态。

    • ps:显示当前用户的进程。

    • ps -ef:显示所有用户的进程,并显示完整的命令行。

    • ps -aux:显示所有进程的详细信息。


  5. kill:终止进程。

    • kill [进程ID]:发送TERM信号终止进程。

    • kill -9 [进程ID]:发送KILL信号强制终止进程。


  6. top:动态显示进程活动及系统负载。

    • top:直接执行即可动态查看进程和系统状态。


  7. netstat:显示网络连接、路由表、接口统计等。

    • netstat -a:显示所有活动的网络连接和监听的端口。

    • netstat -rn:显示路由表。


  8. ping:测试网络连接。

    • ping [主机名或IP地址]:发送ICMP ECHO_REQUEST包到指定主机。


  9. ifconfig(已被ip命令替代,但在某些旧系统中仍可用):配置和显示网络接口信息。

    • ifconfig:显示所有网络接口的信息。

    • ifconfig [接口名] up/down:激活或禁用网络接口。


  10. ip:显示和操作路由、网络设备、策略路由和隧道。

    • ip addr:显示网络接口的地址信息。

    • ip route:显示路由表。

    • ip link:显示网络接口的状态信息。


  11. ssh:安全地登录到远程机器。

    • ssh [用户名]@[主机名或IP地址]:使用SSH协议登录到远程机器。


  12. scp:在本地和远程机器之间安全地复制文件。

    • scp [源文件] [用户名]@[主机名或IP地址]:[目标路径]:将文件复制到远程机器。

    • scp [用户名]@[主机名或IP地址]:[源文件] [目标路径]:从远程机器复制文件到本地。


  13. wget:从网络上下载文件。

    • wget [URL]:下载指定URL的文件。


  14. curl:传输数据,支持多种协议。

    • curl [URL]:获取指定URL的内容。

    • curl -O [URL]:将URL的内容保存到本地文件,文件名从URL中获取。


  15. man:显示手册页。

    • man [命令名]:查看指定命令的手册页。


  16. nano:一个简单的文本编辑器。

    • nano [文件名]:使用nano编辑指定文件。


  17. vi/vim:一个功能强大的文本编辑器。

    • vi [文件名]或vim [文件名]:使用vi/vim编辑指定文件。


  18. apt-get(Debian和Ubuntu等发行版的包管理工具):安装、更新和卸载软件包。

    • apt-get update:更新软件包列表。

    • apt-get install [软件包名]:安装软件包。

    • apt-get remove [软件包名]:卸载软件包。

    • 注意:在某些新版本的系统中,推荐使用apt命令替代apt-get。


  19. yum(CentOS和RedHat等发行版的包管理工具):安装、更新和卸载软件包。

    • yum update:更新系统软件包。

    • yum install [软件包名]:安装软件包。

    • yum remove [软件包名]:卸载软件包。

    • 注意:在新版本的CentOS和RedHat中,yum已被dnf替代。


  20. reboot:重新启动系统。

    • reboot:直接执行即可重新启动系统。

  1. shutdown:关闭或重新启动系统。

    • shutdown -h now:立即关闭系统。

    • shutdown -r now:立即重新启动系统。

    • shutdown +5 "System will shutdown after 5 minutes":在5分钟后关闭系统,并发送警告消息。


  2. history:显示命令历史记录。

    • history:显示当前会话的命令历史记录。

    • history -c:清除当前会话的命令历史记录。


  3. alias:创建命令别名。

    • alias short='long-command':为长命令创建别名。

    • unalias short:删除别名。


  4. echo:显示字符串或变量。

    • echo "Hello, World!":显示文本字符串。

    • echo $PATH:显示PATH环境变量的值。


  5. date:显示或设置系统日期和时间。

    • date:显示当前系统日期和时间。

    • date +"%Y-%m-%d %H:%M:%S":以指定格式显示日期和时间。


  6. cal:显示日历。

    • cal:显示当前月份的日历。

    • cal [月份] [年份]:显示指定月份的日历。


  7. uptime:显示系统运行时间。

    • uptime:显示系统已运行时间、用户数和负载平均值。


  8. who:显示当前登录的用户。

    • who:显示当前登录的所有用户的信息。

    • whoami:显示当前用户的用户名。


  9. free:显示内存使用情况。

    • free:显示内存的总量、已用、空闲等信息。

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


  10. vmstat:显示虚拟内存统计信息。

    • vmstat:显示虚拟内存、进程、CPU活动等信息。


  11. iostat:显示磁盘I/O统计信息(需要安装sysstat包)。

    • iostat:显示磁盘I/O统计信息,包括传输速度、IOPS等。


  12. mpstat:显示多处理器统计信息(需要安装sysstat包)。

    • mpstat:显示每个CPU的利用率和状态信息。


  13. pidstat:显示进程统计信息(需要安装sysstat包)。

    • pidstat:显示进程的CPU、内存、I/O等统计信息。


  14. strace:跟踪系统调用和信号。

    • strace [命令]:跟踪指定命令的系统调用和信号。


  15. lsof:列出打开的文件。

    • lsof:列出当前系统打开的所有文件。

    • lsof -p [进程ID]:列出指定进程打开的文件。


  16. fgbg:控制前台和后台进程。

    • fg [作业号]:将后台作业带到前台继续运行。

    • bg [作业号]:将停止的作业在后台恢复运行。

    • 使用Ctrl+Z可以将前台作业停止并放到后台。

    • 使用jobs命令可以查看当前会话中的作业列表。


  17. dd:转换和复制文件。

    • dd if=/dev/zero of=testfile bs=1k count=1000:创建一个大小为1MB的空文件(填充0)。注意:谨慎使用dd命令,因为它可以很容易地覆盖数据。在执行任何写操作之前,请确保您知道自己在做什么,并始终备份重要数据。


  18. fdiskparted:磁盘分区工具。

    • fdisk -l:列出所有磁盘分区表。注意:对磁盘分区的修改可能会导致数据丢失。在执行任何分区操作之前,请务必备份重要数据。

    • parted /dev/sda print:使用parted查看/dev/sda的分区表。同样地,请谨慎操作以避免数据丢失。

    • 这些工具通常用于创建、删除、修改和管理磁盘分区。它们提供了丰富的选项和功能来满足各种磁盘管理需求。然而,由于它们的强大功能,错误的使用可能会导致严重的数据丢失或系统损坏。因此,在使用这些工具之前,请务必仔细阅读相关文档并了解每个选项的含义和潜在风险。此外,始终在修改磁盘分区之前备份重要数据是一个明智的做法。

    • 注意:这里提供的只是fdisk和parted的基本用法示例。实际上,这两个工具都提供了许多其他选项和功能来满足更复杂的磁盘管理需求。要获取更详细的信息和用法示例,请使用man fdisk和man parted命令查看手册页或查阅相关的在线文档和教程。

    • 另外需要注意的是,在某些情况下,可能需要使用root或具有适当权限的用户来执行磁盘分区操作。确保您具有必要的权限来执行这些操作,并始终谨慎行事以避免意外损坏系统或丢失数据。

  1. tar:打包和解包文件。

    • tar -cvf archive.tar files_or_directories:创建一个tar归档文件。

    • tar -xvf archive.tar:从tar归档文件中提取文件。

    • tar -czvf archive.tar.gz files_or_directories:创建一个gzip压缩的tar归档文件。

    • tar -xzvf archive.tar.gz:从gzip压缩的tar归档文件中提取文件。


  2. gzipgunzip:压缩和解压缩文件(使用gzip格式)。

    • gzip file:压缩文件,替换为.gz后缀的压缩文件。

    • gunzip file.gz:解压缩文件,删除.gz后缀并恢复原始文件。


  3. bzip2bunzip2:压缩和解压缩文件(使用bzip2格式)。

    • bzip2 file:压缩文件,替换为.bz2后缀的压缩文件。

    • bunzip2 file.bz2:解压缩文件,删除.bz2后缀并恢复原始文件。


  4. zipunzip:创建和解压zip归档文件。

    • zip archive.zip files_or_directories:创建一个zip归档文件。

    • unzip archive.zip:从zip归档文件中提取文件。


  5. locate:快速查找文件。

    • locate file_name:在整个文件系统中查找文件(需要定期更新数据库)。


  6. find:在目录树中查找文件。

    • find /path/to/search -name "file_name":在指定路径中查找文件。

    • find /path/to/search -type f -mtime +7:查找7天前修改的文件。


  7. chmod:更改文件或目录的权限。

    • chmod 755 file_or_directory:设置文件或目录的权限为755(rwxr-xr-x)。

    • chmod u+x file:给文件的所有者添加执行权限。


  8. chown:更改文件或目录的所有者和/或组。

    • chown newuser file_or_directory:更改文件或目录的所有者为newuser。

    • chown newuser:newgroup file_or_directory:更改文件或目录的所有者为newuser和组为newgroup。


  9. useradduserdel:添加和删除用户。

    • useradd newuser:添加一个新用户。

    • userdel newuser:删除一个用户(注意:不会删除用户的家目录)。


  10. groupaddgroupdel:添加和删除用户组。

    • groupadd newgroup:添加一个新用户组。

    • groupdel newgroup:删除一个用户组。


  11. passwd:更改用户密码。

    • passwd:更改当前用户的密码。

    • passwd newuser:以root身份更改newuser的密码。


  12. susudo:以其他用户身份执行命令。

    • su - newuser:切换到newuser用户并加载其环境变量。

    • sudo command:以root用户的权限执行命令(需要sudoers配置)。


  13. visudo:编辑sudoers文件以配置sudo权限。

    • visudo:使用默认编辑器(通常是vi或nano)编辑sudoers文件。


  14. ssh-keygenssh-copy-id:生成SSH密钥对并将公钥复制到远程服务器。

    • ssh-keygen:生成SSH密钥对。

    • ssh-copy-id user@remote_host:将公钥复制到远程服务器的authorized_keys文件中,以便无密码登录。


  15. scp(已在前面提及,但值得重申):在本地和远程系统之间安全地复制文件。

    • scp local_file user@remote_host:/path/to/destination:将本地文件复制到远程系统。

    • scp user@remote_host:/path/to/source local_destination:从远程系统复制文件到本地。


  16. nc(netcat):读取和写入网络连接的工具,被称为“网络界的瑞士军刀”。

    • nc -l 12345:在本地监听12345端口。

    • nc remote_host 12345:连接到远程主机的12345端口。


  17. wgetcurl(已在前面提及,但用法广泛):从网络下载文件或获取网页内容。

    • wget -r http://example.com/:递归下载整个网站。

    • curl -o output_file http://example.com/:将网页内容保存到本地文件。


  18. dig:执行DNS查询。

    • dig example.com:查询example.com的DNS记录。

    • dig +short example.com:仅返回example.com的IP地址。


  19. host:简单的DNS查询工具。

    • host example.com:查询example.com的DNS记录。


  20. traceroutetracepath:显示数据包从源主机到目标主机经过的路由。

    • traceroute example.com:显示到example.com的路由路径。

    • tracepath example.com:类似traceroute,但使用ICMP ECHO请求而不是UDP数据包。


  21. netcat(已在前面提及为nc):网络实用程序,可读写TCP和UDP网络连接。

    • netcat remote_host 80:连接到远程主机的80端口(HTTP)。

    • netcat -l 12345:在本地监听12345端口(与nc相同)。

    • 注意:在某些系统中,netcat命令可能被称为nc或netcat-traditional。请根据您的系统选择合适的命令名称。


  22. rsync:快速增量文件传输工具。

    • rsync -avz source_directory/ user@remote_host:/destination_directory/:将本地目录同步到远程服务器(仅传输已更改的文件)。

    • rsync -avz user@remote_host:/source_directory/ local_destination_directory/:从远程服务器同步目录到本地。

  1. df:显示磁盘使用情况。

    • df -h:以人类可读的格式(例如GB,MB)显示磁盘空间使用情况。


  2. du:估算文件和目录的磁盘使用情况。

    • du -sh directory_or_file:显示指定目录或文件的大小,以人类可读的格式。


  3. fsck:检查和修复文件系统。

    • fsck /dev/sda1:检查和修复/dev/sda1分区上的文件系统(通常需要在未挂载或只读模式下运行)。


  4. lsof:列出打开的文件。

    • lsof:列出所有打开的文件和进程。

    • lsof /path/to/file:查看哪个进程正在使用指定的文件。


  5. ps:显示当前进程。

    • ps aux:显示所有用户的进程,包括命令行参数。

    • ps -ef:显示所有进程的完整格式。


  6. tophtop:实时显示系统状态和运行的进程。

    • top:实时显示系统状态和运行的进程(按CPU使用率排序)。

    • htop:一个增强的top命令替代品,提供了更多的信息和交互性(可能需要单独安装)。


  7. kill:终止进程。

    • kill PID:发送TERM信号以终止进程(PID为进程ID)。

    • kill -9 PID:发送KILL信号以强制终止进程(无法被捕获或忽略)。


  8. pkillkillall:通过进程名终止进程。

    • pkill process_name:发送TERM信号以终止名为process_name的进程。

    • killall process_name:与pkill类似,但可能提供更多的选项和灵活性(具体取决于系统实现)。


  9. nicerenice:更改进程的优先级。

    • nice -n 10 command:以较低的优先级(10为较低)运行命令。

    • renice +5 -p PID:将PID指定的进程的优先级降低5个单位。


  10. uptime:显示系统运行时间、用户数和负载平均值。

    • uptime:显示系统运行时间、当前登录的用户数和过去1、5、15分钟的负载平均值。


  11. wwho:显示登录用户的信息。

    • w:显示登录用户、终端类型、远程主机、登录时间和当前活动。

    • who:显示登录用户的列表。


  12. last:显示最近登录的用户列表。

    • last:显示最近登录到系统的用户列表(包括登录时间、登录持续时间和远程主机)。


  13. free:显示内存使用情况。

    • free -h:以人类可读的格式显示内存使用情况(包括总内存、已用内存、空闲内存等)。


  14. vmstat:显示虚拟内存统计信息。

    • vmstat 1:每秒更新一次虚拟内存统计信息(包括进程、内存、分页、块IO等)。


  15. iostat:显示磁盘I/O统计信息(可能需要单独安装sysstat包)。

    • iostat -xz 1:每秒更新一次磁盘I/O统计信息(包括每个设备的传输率、IOPS、等待时间等)。


  16. sar:收集、报告和保存系统活动信息(可能需要单独安装sysstat包)。

    • sar -u:显示CPU使用率报告。

    • sar -d:显示磁盘活动报告。


  17. ssnetstat:显示网络连接、路由表、接口统计等。

    • ss:显示当前的网络连接(类似于netstat,但更快且提供更多的信息)。

    • netstat -tuln:显示监听状态的TCP/UDP端口和网络接口(netstat可能需要单独安装net-tools包)。


  18. ip:显示和操作路由、网络设备、策略路由和隧道。

    • ip addr:显示网络接口的地址信息。

    • ip route:显示路由表信息。


  19. ping:测试网络连接。

    • ping example.com:向example.com发送ICMP ECHO_REQUEST数据包以测试连接。


  20. traceroutetracepath(已在前面提及):显示数据包从源主机到目标主机经过的路由(注意:在某些系统中,traceroute命令可能被称为tracepath或tracert)。
    - traceroute example.com:显示到example.com的路由路径(显示每个跃点的延迟)。
    - tracepath example.com:与traceroute类似,但使用ICMP ECHO请求而不是UDP数据包(具体取决于系统实现和配置)。

这只是Linux命令的冰山一角中的一小部分,Linux提供了大量的命令和工具来满足各种系统管理和开发需求。要深入了解每个命令的所有选项和用法,请参考其手册页(使用man命令)或查阅相关在线文档和教程。




写评论...