1. 自学Linux第4天:从零到实战的完整记录
作为一个从Windows转战Linux的新手,我在自学Linux的第四天终于摸到了一些门道。前三天折腾了虚拟机安装、基础命令练习和文件系统认知后,今天决定把重点放在实际工作场景中最常用的那些技能上。不同于教科书式的学习路径,我选择了一种更实用的方法——直接模拟日常工作中可能遇到的任务,边解决问题边学习。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Linux环境下的日常工作流搭建
2.1 终端的多窗口管理技巧
刚开始使用Linux终端时,最不习惯的就是不能像Windows那样随意拖拽窗口。通过实践,我发现tmux才是终端多任务的神器。安装很简单:
bash复制sudo apt install tmux # Ubuntu/Debian
sudo yum install tmux # CentOS/RHEL
启动tmux后,几个必须掌握的快捷键:
Ctrl+b %垂直分割窗口Ctrl+b "水平分割窗口Ctrl+b 方向键在窗格间切换Ctrl+b d分离会话(程序继续后台运行)
提示:在断开SSH连接后,重新登录执行
tmux attach就能恢复之前的工作环境,这个特性对远程工作特别有用。
2.2 文件传输的几种实用方案
从Windows向Linux传文件是常见需求,除了用共享文件夹这种"新手方案"外,更专业的做法是:
- scp命令(适合单文件):
bash复制scp /mnt/c/Users/yourname/file.txt user@linux-server:/home/user/
- rsync(适合大量文件同步):
bash复制rsync -avz /mnt/c/Projects/ user@linux-server:~/backup/
- Python简易HTTP服务(临时共享):
bash复制python3 -m http.server 8000 # 在要分享的目录执行
然后在Windows浏览器访问http://linux-ip:8000即可下载
3. 开发环境配置实战
3.1 安装Docker的避坑指南
按照官方文档安装Docker时,新手常会遇到权限问题。这是我的已验证步骤:
bash复制# 先卸载旧版本
sudo apt remove docker docker-engine docker.io containerd runc
# 设置仓库
sudo apt update
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 添加源
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装引擎
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证安装
sudo docker run hello-world
关键点:安装后一定要将用户加入docker组,否则每次都要sudo:
bash复制sudo usermod -aG docker $USER
newgrp docker # 立即生效
3.2 MySQL安装与基础配置
MySQL是开发必备,但在Linux上的安装有些小坑:
bash复制sudo apt install mysql-server
sudo mysql_secure_installation # 安全配置向导
安装完成后,root用户默认使用auth_socket插件认证,要改为密码登录:
sql复制ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
注意:Ubuntu 22.04默认安装的是MySQL 8.0,与5.7版本在密码策略等方面有差异,连接客户端时可能会遇到
caching_sha2_password问题,可以在my.cnf中添加default_authentication_plugin=mysql_native_password解决。
4. 系统管理必备技能
4.1 网络配置:静态IP设置
对于需要固定IP的开发机,配置静态IP比Windows复杂些。以Ubuntu为例:
- 查看网卡名称:
bash复制ip a
- 编辑配置文件(假设网卡为ens33):
bash复制sudo nano /etc/netplan/00-installer-config.yaml
- 配置示例:
yaml复制network:
ethernets:
ens33:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
version: 2
- 应用配置:
bash复制sudo netplan apply
常见问题:如果应用配置后网络断开,可以尝试sudo netplan --debug apply查看详细错误。
4.2 服务管理:systemctl实战
Linux的服务管理与Windows服务完全不同,主要使用systemctl:
bash复制sudo systemctl start nginx # 启动
sudo systemctl stop nginx # 停止
sudo systemctl restart nginx # 重启
sudo systemctl status nginx # 查看状态
sudo systemctl enable nginx # 设置开机启动
sudo systemctl disable nginx # 禁用开机启动
查看所有服务:
bash复制systemctl list-unit-files --type=service
5. 开发工具链配置
5.1 代码编辑器选择与配置
VSCode在Linux上的体验几乎与Windows一致:
bash复制sudo apt install ./code_1.xx.x-xxx_amd64.deb # 下载后安装
但有几个Linux专属技巧:
- 在终端输入
code .可直接用VSCode打开当前目录 - 使用
--user-data-dir参数可以创建不同的配置环境 - 安装Remote-SSH扩展后,可以直接编辑远程服务器文件
5.2 Git环境配置
除了基本的git config设置外,Linux上特别有用的Git配置:
bash复制# 缓存凭据(安全考虑默认不开启)
git config --global credential.helper store
# 设置默认编辑器为nano(比vim对新手更友好)
git config --global core.editor "nano"
# 颜色输出
git config --global color.ui auto
SSH密钥生成与使用:
bash复制ssh-keygen -t ed25519 -C "your_email@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
6. 中文输入法安装
对于中文用户,输入法是刚需。以Ubuntu+搜狗输入法为例:
bash复制# 安装fcitx框架
sudo apt install fcitx-bin fcitx-table fcitx-config-gtk fcitx-frontend-all
# 下载搜狗deb包
wget http://cdn2.ime.sogou.com/dl/index/xxx/sogoupinyin_xxx_amd64.deb
# 安装依赖
sudo apt install libqt5qml5 libqt5quick5 libqt5webkit5 libqt5gui5 libqt5core5a
# 安装搜狗
sudo dpkg -i sogoupinyin_xxx_amd64.deb
sudo apt --fix-broken install
# 配置环境变量
echo 'export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx' >> ~/.profile
安装完成后需要注销重新登录,在Fcitx配置中添加搜狗输入法。
7. 效率工具推荐
7.1 终端增强工具
- zsh + oh-my-zsh:比bash更强大的shell
bash复制sudo apt install zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- autojump:快速跳转目录
bash复制sudo apt install autojump
echo '[[ -s /usr/share/autojump/autojump.sh ]] && . /usr/share/autojump/autojump.sh' >> ~/.zshrc
7.2 系统监控工具
- htop:加强版任务管理器
bash复制sudo apt install htop
htop
- ncdu:磁盘空间分析
bash复制sudo apt install ncdu
ncdu /
8. 常见问题排错经验
8.1 权限问题:sudo与文件权限
Linux严格的权限系统常让新手困扰。几个实用命令:
bash复制# 查看文件权限
ls -l
# 修改文件所有者
sudo chown user:group file
# 修改权限(数字模式)
chmod 755 script.sh
# 修改权限(符号模式)
chmod u+x,g-w,o=r file
重要:慎用
chmod 777,这会带来安全风险。应该精确设置所需权限。
8.2 依赖问题:包管理技巧
bash复制# 查找缺失的依赖
sudo apt --fix-broken install
# 查找提供某个文件的包
apt-file search /usr/lib/libssl.so
# 清理无用的包
sudo apt autoremove
9. 学习资源推荐
经过几天实践,我发现这些资源特别实用:
- Linux命令大全手册:
man命令不够直观时使用 - explainshell.com:解析复杂命令的每个部分
- Linux Journey:结构化学习网站
- OverTheWire:通过游戏学习Linux安全
学习Linux最大的心得是:不要怕命令行,遇到问题先man查手册,再--help看选项,最后才是去搜索。第四天结束时,我已经能熟练地在Linux环境下完成日常开发工作,这比在Windows下通过GUI操作效率高多了。
