1.什么是Linux?
Linux可划分为Linux内核、GNU工具、图形化桌面环境、应用软件。对于Linux内核,其主要负责系统内存管理、软件程序管理、硬件设备管理、文件系统管理等功能,实现计算机软硬件的控制。

2. 基本的bash shell 命令
man: 查看命令使用方法man
pwd: 显示当前目录的绝对路径
ls: 查看当前的文件和目录(-a: 所有文件/-l: 详细信息或过滤特定文件)
统计当前目录下文件数量:ls -l | wc -l
touch: 创建文件
cp: 复制文件(加-i选项,强制shell询问是否覆盖已有文件/-r选项,复制文件夹时使用)
ln: 文件链接(待扩展)
mv: 移动文件/重命名文件
rm: 删除文件(-r:删除文件夹)
mkdir: 创建目录(-p:创建多个目录)
file: 查看文件类型
cat: 查看文件内容
more: 分页显示文件内容,只能向前翻页
less: 高级分页工具,支持前后双向翻页(less is more)
tail: 查看尾几行
head:查看头几行
ps: 查看进程(-ef: 系统所有进程)
top: 实时监测进程
kill: 结束进程(-9: 无条件终止)
killall: 通过进程名结束进程,可使用通配符
df: 查看已挂载磁盘使用情况(-h: 用户易读形式)
du: 查看特定目录的磁盘使用情况 (-h: 用户易读形式;
--max-depth=1:当前目录下的文件夹)查看当前目录所有文件夹的占用空间大小:
du -h --max-depth=1
sort: 对文件内容进行排序(-M: 按月份排序,针对日志文件)
grep: 搜索数据
gzip/gunzip: GNU压缩工具,用Lempel-Ziv编码
zip/unzip: Windows上PKZIP工具的Unix实现
tar: 归档数据(-zxvf: 解压缩.tar.gz或.tgz文件)
history: 查看最近使用的历史命令
3. 设置环境变量
3.1 全局环境变量
配置文件:/etc/profile 或 /etc/environment
export LANG=en_US.UTF-8# 配置语言export TZ=Asia/Shanghai# 配置时区
3.2 用户级环境变量
配置文件:~/.bashrc 或 ~/.bash_profile
export JAVA_HOME=/usr/lib/jvm/java-11-openjdkexport M2_HOME=/opt/apache-maven-3.8.6export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin# 配置JAVA和Maven
3.3 应用特定变量
配置文件:服务启动脚本(如:/etc/systemd/system/myapp.service)
[Service]Environment="SPRING_PROFILES_ACTIVE=prod"Environment="DB_URL=jdbc:mysql://db-prod:3306/app"
3.4 临时会话变量
配置方式:当前会话命令(如HTTP代理)
export http_proxy=http://proxy.crop.com:8080export http_proxy=http://proxy.crop.com:8080
3.5 安全敏感变量
配置方式:当前会话命令(如:文件权限控制)
echo 'export API_KEY=secret123' > ~/.app_secretschmod 600 ~/.app_secrets# 仅允许当前用户访问
3.6 开发/生产环境切换
配置文件:~/.bashrc
if [ "$(hostname)" = "dev-server" ]; then
export ENV=dev
export DEBUG=true
else
export ENV=prod
fi3.7 动态加载配置
source ~/.bashrc
4. 理解Linux文件权限
4.1 关于用户
useradd : 添加新用户(-c:添加备注; -d:指定主目录名称; -m: 创建用户的HOME目录)
useradd -d [用户目录所在路径] -m -s /bin/bash [用户名]passwd [用户名]
userdel: 删除用户 (-r:删除用户的HOME目录及其邮件目录)
usermod:修改用户(-l: 修改登录名; -L:锁定帐户使其无法登录; -p:修改密码; -U:解除锁定)
passwd/chpasswd: 修改用户密码(后者适合对大量用户修改密码)
4.2 关于组
groupadd: 创建新组(初始状态没有用户,通过usermod -G [GROUPNAME] [USERNAME]方式将用户添加到组中)
groupmod: 修改GID或组名 (-g: GID; -n: 组名)
4.3 关于文件权限
文件类型
-: 代表文件
d: 代表目录
l: 代表链接
c: 代表字符型设备
b: 代表块设备
n: 代表网络设备
文件权限
r: 可读 / w: 可写/ x: 可执行
chmod: 改变权限(+:增加权限; -: 移除权限;=: 设置权限)
chown: 改变属主
chgrp: 改变属组
文件的全权限值:666; 目录的全全权限值为: 777
4.4 共享文件功能实现流程
groupadd shared_group: 创建共享组mkdir /home/shared_dir: 创建共享目录chmod 2770 /home/shared_dir: 设置特殊权限(2:自动继承组权限, 770:群主和群成员可读写)usermod -aG shared_group user_1/user_2...: 添加用户到组,每次添加一个用户setfacl -d -m g::rwx /home/shared_dir:设置新创建文件默认权限,保证新文件组成员都能读写
5. 管理文件系统
fdisk /dev/sdb: 创建分区(sdb为物理磁盘名称,系统默认分配)p: 显示存储设备的详细信息
n: 创建新的分区
w: 保存更改
type mkfs.ext4 /dev/sdb1: 创建文件系统(在将数据存储到分区之前,必须用某种文件系统对其进行格式化)mount -t ext4 /dev/sdb1 /mnt/my_partition: 将新文件系统挂载到虚拟目录中(-t: 指定文件系统类型)fsck: 文件系统检查与修复
-a: 如果检测到错误,自动修复文件系统
-A:检查/etc/fstab文件中列出的所有文件系统
6. 安装软件程序
apt-get:Debian/Ubuntu系安装命令,从软件源仓库在线安装,自动处理依赖关系
dpkg -i 软件包名.deb:仅操作本地.deb文件,不自动解决依赖yum: RHEL/CentOS系安装命令
7. 使用编辑器(一图足以!)
