03.掌握 Ubuntu Server 的 Linux 命令行

命令行是 Linux 服务器管理的心脏。无论您是初学者还是经验丰富的系统管理员,了解命令行管理的基础知识对于高效管理 Ubuntu Server 都至关重要。本文深入介绍 Linux 命令行,涵盖用于管理文件、目录和服务器环境的基本命令、工具和技术。


上一篇文章:

01. Ubuntu Server 简介 – SysOSX: AI & Cloud

02. 如何设置您的第一台 Ubuntu Server:初学者指南 – SysOSX: AI & Cloud



为什么要学习命令行?

Linux 命令行可通过 终端 访问,是与操作系统交互的强大工具。与图形界面不同,命令行提供:

  • 速度:使用命令执行任务比通过 GUI 界面更快。
  • 灵活性:使用脚本自动执行流程并执行复杂操作。
  • 控制:访问更深层的系统功能并有效排查问题。

在 Ubuntu Server 上访问命令行

Ubuntu Server 安装默认不包含图形界面,因此所有交互都通过终端进行。以下是访问命令行的常见方法:

1. 通过本地控制台直接访问

登录 Ubuntu Server 后,您将看到终端界面。

2. 通过 SSH 远程访问

使用安全外壳(SSH)远程访问您的服务器:

ssh username@server_ip


初学者必备 Linux 命令

1. 浏览文件系统

了解 Linux 文件系统层次结构对于管理文件和目录至关重要。

查看当前目录:pwd

显示当前工作目录:

pwd

列出目录内容:ls

列出当前位置的文件和目录:

ls

选项:

  • ls -l:包含权限、所有权和大小的详细列表。
  • ls -a:包含隐藏文件(以 .)。

切换目录:cd

切换到另一个目录:

cd /path/to/directory

示例:

  • cd ..:向上一级。
  • cd ~:切换到主目录。

2. 管理文件和目录

创建目录:mkdir

创建新目录:

mkdir directory_name

示例:创建子目录结构。

mkdir -p /home/user/documents/projects

说明:

  • -p 选项会在父目录不存在时创建它们(例如,documents 和 projects)。

删除目录:rmdir

删除空目录:

rmdir directory_name

示例:

rmdir /home/user/old_directory

复制文件:cp

复制文件或目录:

cp source_file destination_file

示例:将文件复制到新目录。

cp /home/user/file.txt /home/user/backup/file.txt

复制整个目录:

cp -r /home/user/documents /home/user/backup/documents

移动或重命名文件:mv

移动或重命名文件:

mv old_name new_name

示例:重命名文件。

mv file.txt renamed_file.txt

将文件移动到另一个目录:

mv /home/user/file.txt /home/user/backup/

删除文件:rm

删除文件或目录:

rm file_name

示例:删除文件。

rm /home/user/file.txt

删除目录及其内容:

rm -r /home/user/old_directory

警告:请谨慎使用 rm,以避免误删。


3. 查看和编辑文件

查看文件内容:cat

显示文件内容:

cat file_name

示例:

cat /etc/hostname

分页查看文件内容:less

允许滚动浏览文件内容:

less file_name

示例:

less /var/log/syslog

创建或编辑文件:nano

一款对初学者友好的文本编辑器:

nano file_name

示例:创建新文件或编辑现有文件。

nano /home/user/new_file.txt

在文件中搜索文本:grep

在文件中搜索特定字符串:

grep "search_term" file_name

示例:在日志文件中查找错误消息。

grep "error" /var/log/syslog


4. 系统管理命令

检查磁盘使用情况:df

显示磁盘空间使用情况:

df -h

选项:

  • -h:人类可读的格式。

检查内存使用情况:free

显示内存使用情况:

free -h

监控系统进程:top

显示正在运行的进程和系统资源使用情况:

top

替代方案:

  • htop:更易于使用的进程监视器(通过以下命令安装 sudo apt install htop)。

管理服务:systemctl

控制系统服务:

sudo systemctl status service_name
sudo systemctl start service_name
sudo systemctl stop service_name
sudo systemctl restart service_name

关机或重启:shutdown

关闭或重启服务器:

sudo shutdown now    # Immediate shutdown
sudo shutdown -r now # Immediate restart

5. 文件权限和所有权

Linux 使用权限模型来控制对文件和目录的访问。

查看文件权限:ls -l

以详细格式显示文件权限:

ls -l

更改文件权限:chmod

修改文件权限:

chmod 644 file_name

更改文件所有权:chown

更改文件所有权:

sudo chown new_owner:new_group file_name


6. 搜索和查找文件

定位文件:locate

locate 命令默认未安装。请先安装它:

sudo apt update
sudo apt install mlocate

更新数据库:

sudo updatedb

搜索文件:

locate file_name

查找文件:find

根据条件搜索文件:

find /path -name "file_name"


7. 网络命令

检查网络连通性:ping

测试与主机的连通性:

ping google.com

检查开放端口:ss

netstat 命令已弃用且默认未安装。请改用 ss,这是一种现代替代方案:

ss -tuln

说明:

  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。
  • -l:显示监听端口。
  • -n:显示数字地址和端口。

测试远程连通性:curl

从 URL 获取数据:

curl http://example.com


命令行管理的实用技巧

1. 使用 Tab 补全

在键入命令或文件名时按 Tab,以自动补全路径或命令。

2. 使用历史命令

访问以前运行过的命令:

history

运行历史记录中的特定命令:

!number

3. 重定向输出

将命令输出保存到文件:

command > output_file

4. 链接命令

按顺序运行多个命令:

command1 && command2

示例工作流:设置 Web 服务器

以下是使用基本命令设置 Web 服务器的分步指南。请按照以下说明配置您的自定义网站,并确保它取代默认的 Apache 页面。


1. 更新系统

保持系统更新对于安全和稳定至关重要。运行以下命令以更新和升级所有软件包:

sudo apt update && sudo apt upgrade -y


2. 安装 Apache

安装 Apache Web 服务器:

sudo apt install apache2 -y

安装完成后,验证 Apache 是否正在运行:

sudo systemctl status apache2

您应该会看到类似以下的状态消息:Active: active (running)。


3. 为您的网站创建目录

创建目录来存储您的网站文件。在本示例中,我们将创建一个名为 mywebsite:

sudo mkdir -p /var/www/mywebsite


4. 设置权限

设置正确的所有权和权限,以便 Apache 可以访问网站文件:

sudo chown -R www-data:www-data /var/www/mywebsite
sudo chmod -R 755 /var/www/mywebsite

5. 创建示例 HTML 文件

添加一个简单的 index.html 文件作为您网站的主页:

sudo tee /var/www/mywebsite/index.html > /dev/null << EOF
<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome to My Website</h1>
</body>
</html>
EOF

这会创建一个基本页面,显示:“Welcome to My Website”。


6. 配置虚拟主机

要提供您的自定义网站,请为 Apache 创建新的虚拟主机配置文件:

sudo nano /etc/apache2/sites-available/mywebsite.conf

将以下内容粘贴到文件中:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/mywebsite
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

按 Ctrl+O 保存文件,然后按 Ctrl+X 退出。


7. 启用您的网站

启用新的虚拟主机配置:

sudo a2ensite mywebsite.conf

禁用 Apache 的默认站点配置,以确保提供您的网站:

sudo a2dissite 000-default.conf

重新加载 Apache 以应用更改:

sudo systemctl reload apache2


8. 测试连通性

运行以下命令检查您的网站是否正常工作:

curl http://localhost

您应该会看到自定义 index.html 文件的 HTML 内容:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome to My Website</h1>
</body>
</html>

或者,打开浏览器并导航到 http://<your-server-ip> 以查看您的网站。


故障排除

如果您仍然看到默认的 Apache 页面或遇到问题:

  • 确保您的站点已启用
    验证您的配置是否处于活动状态:
ls /etc/apache2/sites-enabled/ 
  • 您应该会看到 mywebsite.conf。如果没有,请使用以下命令启用它:
sudo a2ensite mywebsite.conf
  • 检查 Apache 日志
    在日志中查找错误:
sudo tail -f /var/log/apache2/error.log
  • 重启 Apache
    如果问题仍然存在,请重启 Apache:
sudo systemctl restart apache2

结论

掌握 Linux 命令行对于有效的 Ubuntu Server 管理至关重要。通过学习和练习这些命令,您将获得管理服务器环境、排查问题和高效执行管理任务的信心。

后续步骤:管理用户和权限

一旦您熟悉了命令行管理的基础知识,服务器管理的下一个关键步骤就是了解 用户、组和权限。妥善管理用户帐户和访问控制对于维护安全以及确保只有获得授权的个人才能访问或修改服务器上的敏感文件和资源至关重要。

在下一篇文章中,“管理用户和权限”,我们将介绍:

  • 如何创建、修改和删除用户帐户。
  • 管理组以实现高效的访问控制。
  • 了解文件和目录权限(读取、写入、执行)。
  • 使用 sudo 等高级工具进行权限提升。
  • 在 Ubuntu Server 上保护用户帐户的最佳实践。

敬请期待可操作的见解,以增强您的安全和访问管理!

14 thoughts on “03.Mastering the Linux Command Line for Ubuntu Server”

发表评论