Linux系统基础操作与环境搭建
系统安装
Linux是一种开源免费的操作系统,广泛应用于服务器领域。常见的发行版本包括:
- RedHat(企业级)
- CentOS(社区版)
- Ubuntu(桌面及服务器通用)
为了学习Linux,可以通过虚拟机软件(如VMware)安装CentOS 7系统。
核心命令行操作
Linux日常管理主要通过命令行完成,以下是常用的基础指令:
目录与文件管理
# 显示当前工作路径
pwd
# 列出目录内容
ls -la # 显示详细信息包括隐藏文件
ls / # 查看根目录内容
# 路径切换
cd /home # 进入指定目录
cd .. # 返回上级目录
cd ~ # 回到用户主目录
# 创建目录
mkdir mydir # 创建单个目录
mkdir -p path1/path2 # 创建多层嵌套目录
# 创建空文件
touch readme.txt # 创建单一文件
touch file1.txt file2.txt # 同时创建多个文件
# 文件复制
cp source.txt dest.txt # 复制文件
cp -r sourcedir destdir # 复制整个目录
cp source.txt /target/path/ # 复制到指定位置
# 移动或重命名
mv oldname.txt newname.txt # 重命名
mv file.txt /new/location/ # 移动文件
# 删除操作
rm file.txt # 删除文件(有确认提示)
rm -f file.txt # 强制删除无提示
rm -r directory # 删除目录及其内容
rm -rf directory # 强制递归删除
文本处理工具
# 查看文件内容
cat filename.txt # 输出全部内容
tail -n 20 filename.txt # 显示末尾20行
tail -f logfile.txt # 实时监控文件更新
# 文本搜索
grep "keyword" file.txt # 搜索关键词
grep -C 3 "keyword" file.txt # 显示匹配行前后各3行
# 文件查找
find /home -name "*.log" # 在指定路径查找特定类型文件
文件编辑器vi/vim
vi filename.txt # 打开或新建文件
# 编辑模式快捷键:
i # 插入模式(光标前插入)
a # 追加模式(光标后插入)
o # 新增一行并进入插入模式
# 保存退出命令(需先按ESC):
:w # 仅保存
:q # 退出
:wq # 保存并退出
:q! # 不保存强制退出
压缩与解压
# tar格式操作
tar -czvf archive.tar.gz dir/ # 压缩目录为gz文件
tar -xzvf archive.tar.gz # 解压gz文件
tar -xzvf archive.tar.gz -C /target/ # 解压至指定目录
# zip格式操作(需先安装)
yum install -y zip unzip # 安装zip工具
zip -r archive.zip dir/ # 压缩目录
unzip archive.zip # 解压zip文件
系统信息与时钟
date # 显示当前时间
date -s "2024-01-01 12:00:00" # 设置系统时间
timedatectl set-timezone Asia/Shanghai # 更改时区
网络与安全管理
# 网络配置查看
ip addr show # 显示所有网络接口地址
# 防火墙控制
systemctl status firewalld # 查看防火墙状态
systemctl stop firewalld # 停止防火墙服务
systemctl disable firewalld # 禁止开机自启
systemctl restart firewalld # 重启防火墙
# 系统电源管理
reboot # 重新启动
poweroff # 关闭电源
shutdown -h now # 立即关机
shutdown -r +5 # 五分钟后重启
用户账户与权限
# 添加新用户
useradd developer # 创建普通用户
passwd developer # 设置用户密码
# 用户身份切换
su - developer # 切换到developer用户
exit # 返回原用户
# 授权sudo权限
chmod u+w /etc/sudoers # 给sudoers文件添加写权限
vi /etc/sudoers # 编辑授权列表
# 在root ALL=(ALL) ALL下方添加:
developer ALL=(ALL) ALL # 允许developer使用sudo
chmod u-w /etc/sudoers # 恢复只读属性
Java应用部署实践
构建一个简单的Spring Boot Web应用用于演示部署流程:
Maven项目结构
<!-- pom.xml 依赖定义 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.11</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
应用程序代码
// 主程序入口类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
// 控制器示例
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello CentOS 7!";
}
}
应用运行方式
# 打包生成jar文件后上传到服务器
# 直接前台运行(Ctrl+C可中断)
java -jar app.jar
# 后台静默运行并将输出记录到日志
nohup java -jar app.jar > app.log 2>&1 &
# 查找正在运行的Java进程
ps -ef | grep java
# 终止指定PID的进程
kill 12345
kill -9 12345 # 强制终止