一、命令行基础
(一)命令行提示符解析
- 当前用户:显示当前登录的用户名。例如,当前用户为 "ubuntu_user",则在命令行提示符中会显示该用户名。
- 连接符:通常是 "@",用于分隔用户名和计算机名。如 "ubuntu_user@ubuntu_pc"。
- 计算机名:标识当前计算机的名称,如上述例子中的 "ubuntu_pc"。
- 当前路径:展示当前所在的目录路径。假设当前在 "/home/ubuntu_user/Documents" 目录下,命令行提示符会显示该路径。
- 当前用户的权限:通过提示符的形式有所体现,如普通用户一般是 "\(",超级用户是"#" 。当使用普通用户登录时,命令行提示符为"\)",若切换为超级用户(root),提示符会变为 "#"。
(二)用户切换
- su 用户名:切换到指定用户,需要输入目标用户密码。
-
- 示例:su test_user
-
- 注释:执行该命令,从当前用户切换到 "test_user",随后系统会提示输入 "test_user" 的密码,输入正确密码即可完成切换。
- sudo passwd 用户名:修改指定用户的密码,需要 root 权限。
-
- 示例:sudo passwd new_user
-
- 注释:使用该命令修改 "new_user" 的密码,由于涉及用户密码修改,需要 root 权限,所以使用sudo提升权限。执行后,按照提示输入两次新密码完成修改。
二、常用文件操作命令
- cd:切换目录,如cd /home切换到 home 目录;cd -返回上一次路径。
-
- 示例 1:cd /home
-
- 注释:假设当前在 "/root" 目录,执行此命令后会进入 "/home" 目录。
-
- 示例 2:cd -
-
- 注释:若之前在 "/var/log" 目录,执行该命令会回到 "/var/log",即返回上一次所在路径。
- ls:列出目录内容,如ls列出当前目录下所有文件和文件夹。
-
- 示例:ls
-
- 注释:在当前目录下执行该命令,会展示该目录下的所有文件和子目录,包括隐藏文件(需加参数 - a 才显示)。
- 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"。若目标路径和源路径相同,则仅执行重命名操作。
- 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/" 目录下,文件名保持不变。若目标路径是一个文件,则会将源文件内容复制到目标文件中并覆盖目标文件原有内容。
- 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" 的内容。
- touch:创建或更新文件时间戳,touch new_file创建新文件。
-
- 示例:touch new_file.txt
-
- 注释:在当前目录下创建一个名为 "new_file.txt" 的空文件。若该文件已存在,则会更新其时间戳为当前时间。
三、网络配置
(一)虚拟网络类型
- 桥接模式:虚拟机与主机不同 IP,可网络通信。在桥接模式下,虚拟机获取到与主机同一网段的不同 IP 地址,可与主机及其他网络设备通信。
- 主机模式:只能与主机通信。主机模式下,虚拟机仅能与主机进行通信,无法访问外部网络。
- NAT 模式:外部看主机和虚拟机同一 IP,可网络通信。NAT 模式下,主机和虚拟机共享主机的 IP 地址,通过 NAT 转换实现对外通信。
(二)桥接网络配置
- 网络适配器设置:在虚拟机设置中配置网络适配器。在 VMware 虚拟机中,进入虚拟机设置,选择网络适配器,将其模式设置为 "桥接模式"。
- 虚拟机网络编辑器配置:对虚拟机网络编辑器进行相关设置。打开 VMware 网络编辑器,确保桥接模式对应的网络连接正确选择物理网卡。
- 虚拟机内网络设置:在虚拟机系统内进行网络相关配置。在 Ubuntu 虚拟机中,编辑 "/etc/netplan/01-netcfg.yaml" 文件,配置静态 IP 或动态获取 IP。
-
- 示例(动态获取 IP 配置):
bash
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: true
- 注释:network定义网络配置;version: 2表示使用 netplan 的版本 2;renderer: networkd指定使用 systemd-networkd 作为网络渲染器;ethernets下的ens33是网络接口名称(不同虚拟机可能不同),dhcp4: true表示启用 DHCP 动态获取 IPv4 地址。保存并执行netplan apply使配置生效。
(三)网络信息查询与验证
- 主机网络信息:在 Windows 主机中使用cmd + ipconfig查看。在 Windows 系统的命令提示符中执行ipconfig,可查看主机的 IP 地址、子网掩码、网关等信息。
- 网络配置验证 :使用ping baidu.com测试网络连通性。
-
- 示例:ping baidu.com
-
- 注释:在 Ubuntu 虚拟机中执行该命令,向百度服务器发送 ICMP 数据包,若能收到回复,则说明网络配置正常,可正常访问外部网络。若收不到回复,可能是网络配置问题、防火墙阻挡或 DNS 解析问题等。
四、软件安装
(一)在线安装
- 更新软件源:可替换为国内源(清华、阿里、163 等),命令sudo apt-get update。
-
- 示例(替换为清华源):编辑 "/etc/apt/sources.list" 文件,将内容替换为清华源地址:
bash
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-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更新软件源,使系统从新的源获取软件包信息。
- 软件下载与管理
-
- 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" 软件升级到软件源中可用的最新版本,前提是软件源中有更新版本。
-
(二)离线安装
- 软件包命名规范:软件名_版本号_架构.deb。例如 "nginx_1.18.0-1ubuntu1.6_amd64.deb"。
- 安装指令
-
- 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类似。
-
五、文件操作
(一)文件查看与截取
- head:查看文件前几行,head 文件名查看前 10 行;head -n 行数 文件名查看指定行数。
-
- 示例:head -n 5 /etc/passwd
-
- 注释:该命令用于查看 "/etc/passwd" 文件的前 5 行内容,-n参数指定要查看的行数。
- tail:查看文件后几行,tail 文件名查看后 10 行;tail -n 行数 文件名查看指定行数。
-
- 示例:tail -n 20 /var/log/syslog
-
- 注释:执行此命令查看 "/var/log/syslog" 文件的后 20 行内容,同样-n参数指定行数。
- 管道符 |:用于指令组合,如ls | grep "txt"查找当前目录下 txt 文件。
-
- 示例:ls /home/ubuntu_user/Documents | grep "txt"
-
- 注释:该命令先执行ls /home/ubuntu_user/Documents列出 "/home/ubuntu_user/Documents" 目录下的所有文件和目录,然后通过管道符|将结果传递给grep "txt",筛选出文件名包含 "txt" 的文件并显示。
(二)文件查找与筛选
- file:查看文件详细信息,file 文件名。
-
- 示例:file /home/ubuntu_user/Documents/file.txt
-
- 注释:执行该命令可查看 "/home/ubuntu_user/Documents/file.txt" 文件的详细信息,包括文件类型(如 ASCII text、ELF 64-bit 等)、编码等。
- find:查找文件或目录,find 路径 -name 文件名。
-
- 示例:find /home/ubuntu_user -name test.c
-
- 注释:在 "/home/ubuntu_user" 目录及其子目录下查找名为 "test.c" 的文件,-name参数指定按文件名查找。
- 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" 文件中按行提取第二列内容并输出。
- grep:查找字符串,grep "字符串" 文件名。
-
- 示例:grep "server_name" /etc/nginx/nginx.conf
-
- 注释:在 "/etc/nginx/nginx.conf" 文件中查找包含 "server_name" 字符串的行,并将这些行输出显示,可用于查找配置文件中的特定配置项。
(三)通配符
- *:匹配一个或多个字符,如ls *.txt列出所有 txt 文件。
-
- 示例:ls /home/ubuntu_user/Documents/*.txt
-
- 注释:在 "/home/ubuntu_user/Documents" 目录下执行该命令,会列出该目录下所有以 ".txt" 结尾的文件,*代表任意字符序列(包括空字符序列)。
- ?:匹配一个字符,如ls a?.txt查找以 a 开头,后面跟一个字符,再以 txt 结尾的文件。
-
- 示例:ls a?.txt
-
- 注释:在当前目录下查找文件名以 "a" 开头,接着是任意一个字符,最后以 ".txt" 结尾的文件,例如 "a1.txt""a2.txt" 等。
- []:匹配指定范围字符,如ls [a - z].txt查找以小写字母开头的 txt 文件。
-
- 示例:ls /home/ubuntu_user/Documents/[a - z].txt
-
- 注释:在 "/home/ubuntu_user/Documents" 目录下查找以小写字母开头,以 ".txt" 结尾的文件,[a - z]表示匹配小写字母 a 到 z 中的任意一个字符。
(四)文件属性修改
- 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)。
- chgrp:修改文件所属组,sudo chgrp 组名 文件名。
-
- 示例:sudo chgrp users /home/ubuntu_user/Documents/file.txt
-
- 注释:使用该命令将 "/home/ubuntu_user/Documents/file.txt" 文件的所属组修改为 "users",因为修改文件所属组需要管理员权限,所以使用sudo。
- chown:修改文件所属用户和组,sudo chown 用户名 文件名。
-
- 示例:`sudo chown new_user
