当前位置: 首页 > news >正文

《Linux 指令集:开启极客世界的钥匙_01》

一、命令行基础

(一)命令行提示符解析

  1. 当前用户:显示当前登录的用户名。例如,当前用户为 “ubuntu_user”,则在命令行提示符中会显示该用户名。
  1. 连接符:通常是 “@”,用于分隔用户名和计算机名。如 “ubuntu_user@ubuntu_pc”。
  1. 计算机名:标识当前计算机的名称,如上述例子中的 “ubuntu_pc”。
  1. 当前路径:展示当前所在的目录路径。假设当前在 “/home/ubuntu_user/Documents” 目录下,命令行提示符会显示该路径。
  1. 当前用户的权限:通过提示符的形式有所体现,如普通用户一般是 “\(”,超级用户是“#” 。当使用普通用户登录时,命令行提示符为“\)”,若切换为超级用户(root),提示符会变为 “#”。

(二)用户切换

  1. su 用户名:切换到指定用户,需要输入目标用户密码。
    • 示例:su test_user
    • 注释:执行该命令,从当前用户切换到 “test_user”,随后系统会提示输入 “test_user” 的密码,输入正确密码即可完成切换。
  1. sudo passwd 用户名:修改指定用户的密码,需要 root 权限。
    • 示例:sudo passwd new_user
    • 注释:使用该命令修改 “new_user” 的密码,由于涉及用户密码修改,需要 root 权限,所以使用sudo提升权限。执行后,按照提示输入两次新密码完成修改。

二、常用文件操作命令

  1. cd:切换目录,如cd /home切换到 home 目录;cd -返回上一次路径。
    • 示例 1:cd /home
    • 注释:假设当前在 “/root” 目录,执行此命令后会进入 “/home” 目录。
    • 示例 2:cd -
    • 注释:若之前在 “/var/log” 目录,执行该命令会回到 “/var/log”,即返回上一次所在路径。
  1. ls:列出目录内容,如ls列出当前目录下所有文件和文件夹。
    • 示例:ls
    • 注释:在当前目录下执行该命令,会展示该目录下的所有文件和子目录,包括隐藏文件(需加参数 - a 才显示)。
  1. mv:移动或重命名文件,如mv 1.c p将 1.c 重命名为 p。
    • 示例:mv /home/ubuntu_user/src/1.c /home/ubuntu_user/dest/p.c
    • 注释:此命令将 “/home/ubuntu_user/src/” 目录下的 “1.c” 文件移动到 “/home/ubuntu_user/dest/” 目录,并将文件名重命名为 “p.c”。若目标路径和源路径相同,则仅执行重命名操作。
  1. cp:复制文件,如cp source_file target_file。
    • 示例:cp /home/ubuntu_user/Documents/file.txt /home/ubuntu_user/Backup/
    • 注释:该命令将 “/home/ubuntu_user/Documents/” 目录下的 “file.txt” 文件复制到 “/home/ubuntu_user/Backup/” 目录下,文件名保持不变。若目标路径是一个文件,则会将源文件内容复制到目标文件中并覆盖目标文件原有内容。
  1. cat:查看文件内容,cat 文件名打印文件内容到终端;cat 1.c > 2.c重定向覆盖,cat 1.c >> 2.c重定向拼接。
    • 示例 1:cat /etc/hosts
    • 注释:执行此命令可查看 “/etc/hosts” 文件的内容,文件内容会直接打印在终端上。
    • 示例 2:cat 1.c > 2.c
    • 注释:将 “1.c” 文件的内容覆盖到 “2.c” 文件中。若 “2.c” 不存在,则会创建一个新的 “2.c” 文件并将 “1.c” 的内容写入。
    • 示例 3:cat 1.c >> 2.c
    • 注释:将 “1.c” 文件的内容追加到 “2.c” 文件的末尾,若 “2.c” 不存在,同样会创建新文件并写入 “1.c” 的内容。
  1. touch:创建或更新文件时间戳,touch new_file创建新文件。
    • 示例:touch new_file.txt
    • 注释:在当前目录下创建一个名为 “new_file.txt” 的空文件。若该文件已存在,则会更新其时间戳为当前时间。

三、网络配置

(一)虚拟网络类型

  1. 桥接模式:虚拟机与主机不同 IP,可网络通信。在桥接模式下,虚拟机获取到与主机同一网段的不同 IP 地址,可与主机及其他网络设备通信。
  1. 主机模式:只能与主机通信。主机模式下,虚拟机仅能与主机进行通信,无法访问外部网络。
  1. NAT 模式:外部看主机和虚拟机同一 IP,可网络通信。NAT 模式下,主机和虚拟机共享主机的 IP 地址,通过 NAT 转换实现对外通信。

(二)桥接网络配置

  1. 网络适配器设置:在虚拟机设置中配置网络适配器。在 VMware 虚拟机中,进入虚拟机设置,选择网络适配器,将其模式设置为 “桥接模式”。
  1. 虚拟机网络编辑器配置:对虚拟机网络编辑器进行相关设置。打开 VMware 网络编辑器,确保桥接模式对应的网络连接正确选择物理网卡。
  1. 虚拟机内网络设置:在虚拟机系统内进行网络相关配置。在 Ubuntu 虚拟机中,编辑 “/etc/netplan/01-netcfg.yaml” 文件,配置静态 IP 或动态获取 IP。
    • 示例(动态获取 IP 配置):
network:version: 2renderer: networkdethernets:ens33:dhcp4: true
  • 注释:network定义网络配置;version: 2表示使用 netplan 的版本 2;renderer: networkd指定使用 systemd-networkd 作为网络渲染器;ethernets下的ens33是网络接口名称(不同虚拟机可能不同),dhcp4: true表示启用 DHCP 动态获取 IPv4 地址。保存并执行netplan apply使配置生效。

(三)网络信息查询与验证

  1. 主机网络信息:在 Windows 主机中使用cmd + ipconfig查看。在 Windows 系统的命令提示符中执行ipconfig,可查看主机的 IP 地址、子网掩码、网关等信息。
  1. 网络配置验证:使用ping baidu.com测试网络连通性。
    • 示例:ping baidu.com
    • 注释:在 Ubuntu 虚拟机中执行该命令,向百度服务器发送 ICMP 数据包,若能收到回复,则说明网络配置正常,可正常访问外部网络。若收不到回复,可能是网络配置问题、防火墙阻挡或 DNS 解析问题等。

四、软件安装

(一)在线安装

  1. 更新软件源:可替换为国内源(清华、阿里、163 等),命令sudo apt-get update。
    • 示例(替换为清华源):编辑 “/etc/apt/sources.list” 文件,将内容替换为清华源地址:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
  • 注释:deb开头的行表示软件包下载源,deb-src开头的行表示软件包源代码下载源。Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror是清华源地址,focal是 Ubuntu 的版本代号(不同版本可能不同),后面的main restricted universe multiverse表示软件包的分类。保存后执行sudo apt-get update更新软件源,使系统从新的源获取软件包信息。
  1. 软件下载与管理
    • sudo apt-get install 软件名:安装软件。
      • 示例:sudo apt-get install nginx
      • 注释:使用该命令安装 “nginx” 服务器软件,sudo用于获取管理员权限,因为安装软件需要修改系统文件,普通用户权限不足。
    • sudo apt-get remove 软件名:移除软件。
      • 示例:sudo apt-get remove nginx
      • 注释:执行此命令移除 “nginx” 软件,但不会删除其配置文件,若后续重新安装,原配置文件还在。
    • sudo apt-get remove 软件名 --purge:彻底移除软件及配置文件。
      • 示例:sudo apt-get remove nginx --purge
      • 注释:在移除 “nginx” 软件的同时,将其所有配置文件也一并删除,再次安装时为全新安装状态。
    • sudo apt-get download 软件名:下载软件包。
      • 示例:sudo apt-get download nginx
      • 注释:该命令会将 “nginx” 软件包下载到本地的软件包缓存目录(/var/cache/apt/archives/),但不会安装,可用于离线安装或备份。
    • sudo apt-get clean:清理已下载的软件包。
      • 示例:sudo apt-get clean
      • 注释:执行此命令会删除本地软件包缓存目录中的所有软件包,释放磁盘空间。
    • sudo apt-get upgrade 软件名:升级软件。
      • 示例:sudo apt-get upgrade nginx
      • 注释:使用该命令将 “nginx” 软件升级到软件源中可用的最新版本,前提是软件源中有更新版本。

(二)离线安装

  1. 软件包命名规范:软件名_版本号_架构.deb。例如 “nginx_1.18.0-1ubuntu1.6_amd64.deb”。
  1. 安装指令
    • sudo dpkg -i 软件包名:安装软件包。
      • 示例:sudo dpkg -i nginx_1.18.0-1ubuntu1.6_amd64.deb
      • 注释:使用该命令安装指定的 “nginx” 软件包,-i参数表示安装(install),sudo获取管理员权限,因为安装软件包需要修改系统文件。
    • sudo dpkg -r 软件名:移除软件。
      • 示例:sudo dpkg -r nginx
      • 注释:执行此命令移除 “nginx” 软件,但不删除配置文件,与sudo apt-get remove nginx类似。
    • sudo dpkg -P 软件名:彻底移除软件及配置文件。
      • 示例:sudo dpkg -P nginx
      • 注释:在移除 “nginx” 软件的同时,删除其所有配置文件,与sudo apt-get remove nginx --purge类似。

五、文件操作

(一)文件查看与截取

  1. head:查看文件前几行,head 文件名查看前 10 行;head -n 行数 文件名查看指定行数。
    • 示例:head -n 5 /etc/passwd
    • 注释:该命令用于查看 “/etc/passwd” 文件的前 5 行内容,-n参数指定要查看的行数。
  1. tail:查看文件后几行,tail 文件名查看后 10 行;tail -n 行数 文件名查看指定行数。
    • 示例:tail -n 20 /var/log/syslog
    • 注释:执行此命令查看 “/var/log/syslog” 文件的后 20 行内容,同样-n参数指定行数。
  1. 管道符 |:用于指令组合,如ls | grep "txt"查找当前目录下 txt 文件。
    • 示例:ls /home/ubuntu_user/Documents | grep "txt"
    • 注释:该命令先执行ls /home/ubuntu_user/Documents列出 “/home/ubuntu_user/Documents” 目录下的所有文件和目录,然后通过管道符|将结果传递给grep "txt",筛选出文件名包含 “txt” 的文件并显示。

(二)文件查找与筛选

  1. file:查看文件详细信息,file 文件名。
    • 示例:file /home/ubuntu_user/Documents/file.txt
    • 注释:执行该命令可查看 “/home/ubuntu_user/Documents/file.txt” 文件的详细信息,包括文件类型(如 ASCII text、ELF 64-bit 等)、编码等。
  1. find:查找文件或目录,find 路径 -name 文件名。
    • 示例:find /home/ubuntu_user -name test.c
    • 注释:在 “/home/ubuntu_user” 目录及其子目录下查找名为 “test.c” 的文件,-name参数指定按文件名查找。
  1. cut:剪切字符串,cut -d 分隔符 -f 字段 文件名。
    • 示例:假设 “/home/ubuntu_user/Documents/data.txt” 文件内容为 “name:age:gender” 格式,要提取第二列(age),执行cut -d ':' -f 2 /home/ubuntu_user/Documents/data.txt
    • 注释:-d参数指定分隔符为 “:”,-f参数指定要提取的字段为第二列,该命令会从 “/home/ubuntu_user/Documents/data.txt” 文件中按行提取第二列内容并输出。
  1. grep:查找字符串,grep "字符串" 文件名。
    • 示例:grep "server_name" /etc/nginx/nginx.conf
    • 注释:在 “/etc/nginx/nginx.conf” 文件中查找包含 “server_name” 字符串的行,并将这些行输出显示,可用于查找配置文件中的特定配置项。

(三)通配符

  1. *:匹配一个或多个字符,如ls *.txt列出所有 txt 文件。
    • 示例:ls /home/ubuntu_user/Documents/*.txt
    • 注释:在 “/home/ubuntu_user/Documents” 目录下执行该命令,会列出该目录下所有以 “.txt” 结尾的文件,*代表任意字符序列(包括空字符序列)。
  1. ?:匹配一个字符,如ls a?.txt查找以 a 开头,后面跟一个字符,再以 txt 结尾的文件。
    • 示例:ls a?.txt
    • 注释:在当前目录下查找文件名以 “a” 开头,接着是任意一个字符,最后以 “.txt” 结尾的文件,例如 “a1.txt”“a2.txt” 等。
  1. []:匹配指定范围字符,如ls [a - z].txt查找以小写字母开头的 txt 文件。
    • 示例:ls /home/ubuntu_user/Documents/[a - z].txt
    • 注释:在 “/home/ubuntu_user/Documents” 目录下查找以小写字母开头,以 “.txt” 结尾的文件,[a - z]表示匹配小写字母 a 到 z 中的任意一个字符。

(四)文件属性修改

  1. wc:统计文件信息,wc 文件名统计行数、单词数和字节数;wc -c 文件名统计字节数;wc -m 文件名统计字符数;wc -l 文件名统计行数;wc -w 文件名统计单词数。
    • 示例:wc -l /home/ubuntu_user/Documents/file.txt
    • 注释:执行该命令统计 “/home/ubuntu_user/Documents/file.txt” 文件的行数,-l参数表示统计行数(lines)。
  1. chgrp:修改文件所属组,sudo chgrp 组名 文件名。
    • 示例:sudo chgrp users /home/ubuntu_user/Documents/file.txt
    • 注释:使用该命令将 “/home/ubuntu_user/Documents/file.txt” 文件的所属组修改为 “users”,因为修改文件所属组需要管理员权限,所以使用sudo。
  1. chown:修改文件所属用户和组,sudo chown 用户名 文件名。
    • 示例:`sudo chown new_user

相关文章:

《Linux 指令集:开启极客世界的钥匙_01》

一、命令行基础 (一)命令行提示符解析 当前用户:显示当前登录的用户名。例如,当前用户为 “ubuntu_user”,则在命令行提示符中会显示该用户名。 连接符:通常是 “”,用于分隔用户名和计算机名…...

【Android】用 chrome://inspect/#devices 调试H5页面

通常做Android开发的过程中,不可避免的需要遇到去与H5交互,甚至有时候需要去调试H5的信息。 这里分享一下Android工程里如何调试H5页面信息: 直接在浏览器地址栏输入 : chrome://inspect/#devices 直接连接手机usb,打开开发者模式…...

Deepseek 实战全攻略,领航科技应用的深度探索之旅

想玩转 Deepseek?这攻略别错过!先带你了解它的基本原理,教你搭建运行环境。接着给出自然语言处理、智能客服等应用场景的实操方法与代码。还分享模型微调、优化技巧,结合案例加深理解,让你全面掌握,探索科技…...

《论区块链技术及应用》审题技巧 - 系统架构设计师

区块链技术及应用论题写作框架 一、考点概述 本论题“区块链技术及应用”主要考察软件测试工程师对区块链技术的理解及其在软件项目中的实际应用能力。论题涵盖了多个关键方面,首先要求考生对区块链技术有全面的认识,包括但不限于其作为分布式记账技术…...

ROS2 强化学习:案例与代码实战

一、引言 在机器人技术不断发展的今天,强化学习(RL)作为一种强大的机器学习范式,为机器人的智能决策和自主控制提供了新的途径。ROS2(Robot Operating System 2)作为新一代机器人操作系统,具有…...

【Python模块】——pymysql

pymysql是python操作mysql的标准库,可以通过pip install快速导入pymysql包操作数据库 使用pymysql操作mysql 简单demo import pymysql connect pymysql.connect(host"localhost",port3306,user"root",password"root",database&quo…...

【我的Android进阶之旅】Android Studio SDK Update Site 国内的腾讯云镜像配置指南

一、腾讯云的镜像 https://mirrors.cloud.tencent.com/AndroidSDK/ 二、 打开 Android Studio‌的SDK Manager 路径:Tools–>SDK Manager 在右侧找到 SDK Update Sites 列表‌‌,添加如下链接,像下面一样,一个一个添加 将下面几个链接都加上去 https:...

springboot实现多文件上传

springboot实现多文件上传 代码 package com.sh.system.controller;import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.PostMap…...

Webpack打包优化

在使用 Webpack 打包项目时,随着项目规模的扩大,构建时间和打包产物的体积可能会逐渐增加。为了提高构建性能和减小打包产物的体积,可以采取以下几种 Webpack 打包优化 的方法。 1. 使用 mode 配置 Webpack 通过 mode 配置来指定构建模式。…...

浅谈HTTP及HTTPS协议

1.什么是HTTP? HTTP全称是超文本传输协议,是一种基于TCP协议的应用非常广泛的应用层协议。 1.1常见应用场景 一.浏览器与服务器之间的交互。 二.手机和服务器之间通信。 三。多个服务器之间的通信。 2.HTTP请求详解 2.1请求报文格式 我们首先看一下…...

GTID的基本概念

1.1 GTID的基本概念 1.1.1 GTID的作用 GTID的全称为Global Transaction Identifier,是MySQL的一个强大的特性。MySQL会为每一个DML/DDL操作都增加一个唯一标记,叫作GTID(每个事务一个GTID)。这个标记在整个复制环境中都是唯一的…...

.NET Core MVC IHttpActionResult 设置Headers

最近碰到调用我的方法要求返回一个代码值,但是要求是不放在返回实体里,而是放在返回的Headers上 本来返回我是直接用 return Json(res) 这种封装的方法特别简单,但是没有发现设置headers的地方 查询过之后不得已换了个返回 //原来方式 //…...

数据结构与算法面试专题——桶排序

引入 桶排序,顾名思义,会用到“桶”,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。桶内排完序之后,再把每个桶里的数据按照顺序依次取出,组成的序列就是有序的了。 桶排序…...

深度学习奠基作 AlexNet 论文阅读笔记(2025.2.25)

文章目录 训练数据集数据预处理神经网络模型模型训练正则化技术模型性能其他补充 训练数据集 模型主要使用2010年和2012年的 ImageNet 大规模视觉识别挑战赛(ILSVRC)提供的 ImageNet 的子集进行训练,这些子集包含120万张图像。最终&#xff…...

MongoDB 数据库简介

MongoDB 数据库简介 引言 随着互联网技术的飞速发展,数据已经成为企业的重要资产。为了高效地管理和处理这些数据,数据库技术应运而生。MongoDB作为一种流行的NoSQL数据库,因其灵活的数据模型和高效的数据处理能力,受到了广泛的关注。本文将为您详细介绍MongoDB的基本概念…...

Transformer LLaMA

一、Transformer Transformer:一种基于自注意力机制的神经网络结构,通过并行计算和多层特征抽取,有效解决了长序列依赖问题,实现了在自然语言处理等领域的突破。 Transformer 架构摆脱了RNNs,完全依靠 Attention的优…...

【DeepSeek开源:会带来多大的影响】

DeepSeek 开源,震撼登场对云计算行业的冲击 巨头云厂商的新机遇 DeepSeek 开源后,为云计算行业带来了巨大的变革,尤其是为巨头云厂商创造了新的发展机遇。以阿里云为例,它作为云计算行业的领军者,与 DeepSeek 的合作…...

Redis7——基础篇(七)

前言:此篇文章系本人学习过程中记录下来的笔记,里面难免会有不少欠缺的地方,诚心期待大家多多给予指教。 基础篇: Redis(一)Redis(二)Redis(三)Redis&#x…...

边缘计算:通俗易懂的全方位解析

1. 什么是边缘计算? 边缘计算(Edge Computing)是一种数据处理方式,它将计算任务从云端或数据中心下放到更靠近数据源(边缘)的设备上。 通俗理解: 想象你住在一个偏远的村庄,而最近…...

Flink 中的滚动策略(Rolling Policy)

在 Apache Flink 中,滚动策略(Rolling Policy)是针对日志(或数据流)文件输出的一种管理策略,它决定了在日志文件的大小、时间或其他条件满足特定标准时,如何“滚动”生成新的日志文件。滚动策略…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...