【LINUX】Linux 命令大全:系统管理与网络操作指南

开始之前

Linux命令行,也称为终端,是Linux最强大的特性之一。通过命令行,用户可以执行几乎所有的任务,比如文件操作、程序安装、系统监控和网络配置等。了解这些基本命令,将帮助你更好地掌握Linux系统。

文件和目录操作

  1. ls

    • 基本用法:ls 列出当前目录的内容。
    • 查看详细信息:ls -l 显示当前目录内容的详细列表,包括文件权限、所有者、大小等信息。
    • 查看隐藏文件:ls -a 列出包括隐藏文件(文件名以.开头)在内的所有文件。
  2. cd

    • 改变到用户主目录:cdcd ~ 将当前目录切换到用户的主目录。
    • 改变到其他目录:cd /var/www 将当前目录切换到/var/www
  3. pwd

    • 显示当前工作目录:pwd 输出当前用户所在的完整目录路径。
  4. mkdir

    • 创建目录:mkdir photos 在当前目录下创建一个新的目录名为photos
  5. rmdir

    • 删除空目录:rmdir empty_folder 删除名为empty_folder的空目录。如果目录非空,此命令将失败。
  6. rm

    • 删除文件:rm example.txt 删除名为example.txt的文件。
    • 递归删除目录:rm -r old_folder 删除old_folder目录及其包含的所有文件和子目录。
  7. cp

    • 复制文件:cp source.txt destination.txtsource.txt复制到destination.txt(在同一目录或指定目录)。
    • 复制目录:cp -r source_folder new_foldersource_folder及其全部内容复制到新的new_folder目录。
  8. mv

    • 重命名文件:mv old_name.txt new_name.txt 将文件old_name.txt重命名为new_name.txt
    • 移动文件:mv file.txt ../file.txt移动到上级目录。

系统信息和管理

  1. top

    • 使用示例:直接输入top并按回车,就会显示一个实时更新的系统进程列表,包括CPU和内存使用情况。
  2. df

    • 查看磁盘使用情况:df -h 以易读的格式(如GB、MB)显示所有挂载的文件系统的磁盘空间使用情况。
  3. free

    • 查看内存使用情况:free -m 以MB为单位显示内存(包括物理内存、交换空间等)的使用情况。
  4. uptime

    • 显示系统运行时间:uptime 显示当前系统已经运行了多长时间,包括有多少用户登录,以及过去1、5和15分钟的平均负载。
  5. whoami

    • 显示当前用户:whoami 显示当前登录的用户名。
  6. chmod

    • 改变文件权限:chmod 755 script.sh 设置script.sh文件的权限,使得文件所有者可以读、写、执行文件,而组用户和其他用户只能读取和执行文件。
    • 示例解释:在chmod 755中,7对应所有者的权限(读4+写2+执行1),5对应组权限和其他用户的权限(读4+执行1)。
  7. chown

    • 改变文件的所有者:chown username file.txtfile.txt的所有权更改为username
    • 改变文件的所有者和组:chown username:groupname file.txt 同时更改file.txt的所有者为username和所属组为groupname

文件查找和处理

  1. find

    • 查找名为myfile.txt的文件:find / -name myfile.txt 从根目录/开始搜索整个系统中名为myfile.txt的文件。
    • 查找过去7天内被修改过的文件:find /home/user -mtime -7/home/user目录及子目录下搜索最近7天内修改过的所有文件。
  2. grep

    • 在文件中搜索字符串:"grep 'hello world' myfile.txt" 在myfile.txt文件中搜索包含字符串"hello world"的行。
    • 递归搜索:"grep -r 'search term' /path/to/directory" 在指定目录及其所有子目录下搜索每个文件中的"search term"字符串。
  3. sed

    • 替换文本:"sed 's/old/new/g' file.txt" 将file.txt文件中所有的old字符串替换为new
    • 删除行:"sed '/pattern to match/d' file.txt" 从file.txt中删除所有包含"pattern to match"的行。
  4. awk

    • 打印文件的第一列:"awk '{print $1}' file.txt" 从file.txt中打印每一行的第一列。
    • 汇总文件的第二列中的数值:"awk '{sum += $2} END {print sum}' file.txt" 计算并打印file.txt文件中第二列数值的总和。
  5. find与-delete结合使用

    • 删除当前目录及子目录下所有名为temp.txt的文件:find . -name 'temp.txt' -delete。这个命令从当前目录开始递归搜索所有名为temp.txt的文件,并删除它们。
    • 注意:使用-delete选项时要非常小心,因为一旦执行,删除的文件无法恢复。
  6. cat

    • 显示文件内容:cat filename.txt 显示名为filename.txt的文件内容。
    • 将多个文件内容合并输出:cat file1.txt file2.txt > combined.txtfile1.txtfile2.txt的内容合并,并写入combined.txt文件。

网络操作

  1. ping

    • 检查与远程服务器的连接:ping google.com 这将向google.com发送ICMP回显请求,用于检查网络连接是否成功。
  2. ifconfig

    • 显示所有网络接口的配置信息:ifconfig 不带任何参数运行ifconfig将列出所有可用的网络接口及其配置。
    • 配置特定的网络接口:ifconfig eth0 192.168.1.5 netmask 255.255.255.0 up 将网络接口eth0配置为IP地址192.168.1.5,子网掩码255.255.255.0,并激活它。
  3. ssh

    • 安全地远程登录到另一台计算机:ssh user@192.168.1.5 使用用户名user登录到IP地址为192.168.1.5的远程计算机。
  4. scp

    • 从本地复制文件到远程服务器:scp local_file.txt user@192.168.1.5:/remote/directory/ 将本地的local_file.txt复制到远程服务器上的指定目录。
    • 从远程服务器复制文件到本地:scp user@192.168.1.5:/remote/file.txt /local/directory/ 将远程服务器上的file.txt复制到本地的指定目录。
  5. wget

    • 从网络上下载文件:wget http://example.com/file.zip 这将下载http://example.com/file.zip指向的文件。
  6. curl

    • 从网络服务器获取数据:curl http://example.com 显示http://example.com的HTML内容。
    • 使用POST方法发送数据:curl -d "param1=value1&param2=value2" -X POST http://example.comhttp://example.com发送POST请求,并传递数据。

包管理

  1. apt-get (适用于Debian系的系统,如Ubuntu)

    • 安装软件包:sudo apt-get install package_name 例如,sudo apt-get install nginx 会安装Nginx。
    • 更新软件包列表:sudo apt-get update 更新本地包列表,以了解可用包的最新版本。
    • 升级所有已安装的软件包:sudo apt-get upgrade 将所有已安装的包升级到最新版本。
    • 删除软件包:sudo apt-get remove package_name 删除指定的软件包(不包括配置文件)。
    • 清除不再需要的软件包:sudo apt-get autoremove 自动删除系统不再需要的依赖包。
  2. yum (适用于Red Hat系的系统,如CentOS)

    • 安装软件包:sudo yum install package_name 例如,sudo yum install httpd 会安装Apache HTTP服务器。
    • 更新软件包:sudo yum update package_name 更新指定的软件包。若不指定包名,则更新所有已安装的包。
    • 查找软件包:sudo yum search keyword 根据关键词搜索包。
    • 删除软件包:sudo yum remove package_name 删除指定的软件包。
    • 清除缓存:sudo yum clean all 清除yum缓存,删除下载的包和头文件。
  3. snap (跨Linux发行版的包管理方案)

    • 安装软件包:sudo snap install package_name 例如,sudo snap install vscode 会安装Visual Studio Code。
    • 列出已安装的snap包:snap list 显示所有已安装的snap包。
    • 更新所有snap包:sudo snap refresh 更新所有已安装的snap包。
    • 回滚软件包到先前版本:sudo snap revert package_name 将指定的snap包回滚到先前的版本。
    • 删除软件包:sudo snap remove package_name 删除指定的snap包。
  4. flatpak (同样适用于跨Linux发行版)

    • 安装软件包:flatpak install flathub app_id 例如,flatpak install flathub com.spotify.Client 会从Flathub安装Spotify。
    • 运行一个flatpak应用:flatpak run app_id 例如,flatpak run com.spotify.Client 会运行Spotify。
    • 更新所有flatpak包:flatpak update 更新所有已安装的flatpak包。
    • 列出已安装的flatpak包:flatpak list 显示所有已安装的flatpak包。
    • 删除软件包:flatpak uninstall app_id 删除指定的flatpak包。

总结

Linux命令行是一个强大的工具,了解和掌握这些基本命令将极大增强你操作Linux系统的能力。以上列出的命令仅仅是冰山一角,但已经足够覆盖大多数日常需求。随着你对Linux的深入了解,你会发现更多有用的命令和技巧。希望这篇博客能为你提供一个良好的起点。

相关推荐
007php0073 小时前
linux服务器上CentOS的yum和Ubuntu包管理工具apt区别与使用实战
linux·运维·服务器·ubuntu·centos·php·ai编程
djykkkkkk3 小时前
ubuntu编译遇到的问题
linux·运维·ubuntu
qq_429856574 小时前
linux 查看服务是否开机自启动
linux·运维·服务器
就爱学编程4 小时前
重生之我在异世界学编程之C语言:数据在内存中的存储篇(下)
java·服务器·c语言
7yewh5 小时前
Linux驱动开发 IIC I2C驱动 编写APP访问EEPROM AT24C02
linux·arm开发·驱动开发·嵌入式硬件·嵌入式
dessler5 小时前
Docker-Dockerfile讲解(三)
linux·运维·docker
hgdlip5 小时前
IP属地和所在地不一致什么意思?怎么换成另外一个地方的
服务器·网络协议·tcp/ip
KevinRay_6 小时前
命令行之巅:Linux Shell编程的至高艺术(中)
linux·运维·服务器·重定向·shell编程
程序员JerrySUN6 小时前
Yocto 项目 - 共享状态缓存 (Shared State Cache) 机制
linux·嵌入式硬件·物联网·缓存·系统架构
DashVector6 小时前
如何通过HTTP API分组检索Doc
服务器·数据库·http·数据库开发·数据库架构