在前端开发的世界里,掌握 HTML、CSS 和 JavaScript 只是基础。随着项目的复杂性增加,前端开发者需要处理的任务也越来越多样化。无论是搭建本地开发环境、部署应用到服务器,还是调试和优化性能,Linux 都是一个不可或缺的工具。作为一名经验丰富的前端开发者,掌握 Linux 技能不仅能提升你的工作效率,还能让你在团队中脱颖而出。
Linux 以其稳定性、高效性和灵活性,成为了开发和生产环境的首选操作系统。无论你是使用 macOS、Windows 还是 Linux 作为日常开发环境,了解和掌握 Linux 命令行操作都是必不可少的技能。深入了解 Linux 的基础和高级命令,将会帮助你在前端开发的道路上走得更远。
骚年,你准备好了吗?让我们一起开启这段 Linux 探索之旅吧!
1. 系统信息
uname
命令
uname
命令用于显示系统信息。常用参数包括:
-a
:显示所有系统信息。-m
:显示机器硬件名称。-r
:显示操作系统的内核版本。-s
:显示操作系统名称。
uname -a # 显示所有系统信息
uname -m # 显示机器硬件名称
uname -r # 显示操作系统的内核版本
uname -s # 显示操作系统名称
2. 环境变量
env
命令
env
命令用于显示或设置环境变量。直接执行 env
可以列出当前环境变量。
env # 列出当前环境变量
export
命令
export
命令用于设置环境变量,使其在子进程中可用。
export VAR_NAME=value # 设置环境变量
.bashrc
和 .profile
文件
这些文件用于持久化环境变量设置。
echo 'export VAR_NAME=value' >> ~/.bashrc # 将环境变量添加到 .bashrc 文件
source ~/.bashrc # 使更改生效
3. 服务管理
systemctl
命令
systemctl
是管理 systemd 服务的工具。常用操作包括启动、停止、查看状态和设置开机自启。
systemctl start 服务名 # 启动服务
systemctl stop 服务名 # 停止服务
systemctl status 服务名 # 查看服务状态
systemctl enable 服务名 # 设置服务开机自启
systemctl disable 服务名 # 禁止服务开机自启
journalctl
命令
journalctl
用于查看 systemd 日志。
journalctl -u 服务名 # 查看特定服务的日志
journalctl -xe # 查看详细的系统日志
4. 开关机管理
uptime
命令
uptime
命令显示系统运行时间及当前负载。
uptime # 显示系统运行时间及当前负载
reboot
和 shutdown
命令
reboot
命令用于重启系统,而 shutdown
命令可以关机或重启系统。
reboot # 重启系统
shutdown -r now # 立即重启
shutdown -h now # 立即关机
shutdown -h +10 # 10 分钟后关机
5. 权限设置
chmod
命令
chmod
命令用于更改文件或目录的权限。
chmod u+x 文件名 # 给文件所有者添加执行权限
chmod 755 文件夹名 # 设置文件夹为 755 权限
chmod -R 755 /path/to/directory # 递归更改目录及其内容的权限
chown
命令
chown
命令用于更改文件或目录的所有者。
chown 用户名:组名 文件名 # 更改文件所有者和组
chown -R 用户名:组名 /path/to/directory # 递归更改目录及其内容的所有者和组
6. 硬盘管理
lsblk
和 df
命令
lsblk
列出所有可用的块设备,而 df -h
显示磁盘空间使用情况。
lsblk # 列出所有可用的块设备
df -h # 以易读的格式显示磁盘使用情况
7. 内存管理
free
命令
free -h
显示内存使用情况。
free -h # 显示已使用和空闲的内存
8. CPU 管理
cat /proc/cpuinfo
和 top
命令
cat /proc/cpuinfo
显示 CPU 信息,而 top
实时显示系统进程信息。
cat /proc/cpuinfo # 显示 CPU 信息
top # 实时显示系统进程信息
htop
命令
htop
是 top
命令的增强版,提供更友好的界面。
htop # 实时显示系统进程信息
9. 网络端口管理
netstat
和 ping
命令
netstat
显示网络端口的使用情况,而 ping
发送 ICMP ECHO 请求以测试网络连接。
netstat -tuln # 显示 TCP 和 UDP 端口的监听状态
ping www.example.com # 测试网络连接
ss
命令
ss
命令是 netstat
的替代品,显示更详细的网络连接信息。
ss -tuln # 显示 TCP 和 UDP 端口的监听状态
10. 网络请求
curl
命令
curl
是一个数据传输工具。
curl -O http://www.example.com/file.zip # 下载文件
curl -I http://www.example.com # 获取 HTTP 头信息
curl -X POST -d "param1=value1¶m2=value2" http://www.example.com # 发送 POST 请求
wget
命令
wget
是另一个常用的下载工具。
wget http://www.example.com/file.zip # 下载文件
wget -O filename http://www.example.com/file # 下载文件并指定输出文件名
11. 进程管理
ps
和 kill
命令
ps -ef
显示当前系统的所有进程,而 kill
发送信号到特定进程。
ps -ef | grep process_name # 搜索特定进程
kill -9 PID # 强制杀死进程
pkill
和 pgrep
命令
pkill
和 pgrep
命令用于按名称管理进程。
pgrep process_name # 查找进程 ID
pkill process_name # 杀死进程
12. 系统性能状态
top
命令
top
显示并更新系统进程的实时信息。
top # 实时显示系统进程信息
iotop
命令
iotop
显示实时磁盘 I/O 使用情况。
iotop # 实时显示磁盘 I/O 使用情况
13. 文件和目录管理
ls
和 chmod
命令
ls
列出目录内容,而 chmod
更改文件或目录的权限。
ls -l /path/to/directory # 以长列表格式显示目录内容
chmod -R 755 /path/to/directory # 递归更改目录及其内容的权限
chown
命令
chown
更改文件或目录的所有者。
chown 用户名:组名 文件名 # 更改文件所有者和组
chown -R 用户名:组名 /path/to/directory # 递归更改目录及其内容的所有者和组
14. 文件操作
touch
和 cat
命令
touch
创建新文件或更新现有文件的时间戳,而 cat
连接文件并打印到标准输出设备。
touch newfile.txt # 创建新文件
cat file.txt # 显示文件内容
head
和 tail
命令
head
和 tail
命令用于查看文件的开头和结尾部分。
head -n 10 file.txt # 查看文件的前 10 行
tail -n 10 file.txt # 查看文件的后 10 行
tail -f /var/log/syslog # 实时查看日志文件
15. 查找文件或目录
find
命令
find
在目录层次结构中查找文件。
find / -name filename # 在根目录下查找名为 filename 的文件
find /path -type f -name "*.txt" # 查找指定目录下的所有 .txt 文件
find /path -type d -name "dir*" # 查找指定目录下的所有以 "dir" 开头的目录
locate
命令
locate
命令通过数据库快速查找文件。
locate filename # 查找文件
updatedb # 更新 locate 数据库
16. 文件或目录管理
cp
, rm
, 和 mv
命令
cp
复制文件或目录,rm
删除文件或目录,mv
移动或重命名文件或目录。
cp -r source_directory destination_directory # 递归复制目录
rm -rf directory_name # 强制删除目录及其内容
mv oldname.txt newname.txt # 重命名文件
rsync
命令
rsync
是一个强大的文件同步工具。
rsync -avz source_directory destination_directory # 同步目录
rsync -avz -e ssh user@remote:/path/to/source /path/to/destination # 通过 SSH 同步远程目录
17. yum 包管理
yum
命令
yum
管理 RPM 软件包。
yum update # 更新所有已安装的软件包
yum install package_name # 安装软件包
yum remove package_name # 卸载软件包
yum search package_name # 搜索软件包
yum list installed # 列出已安装的软件包
curl
命令
curl
是一个数据传输工具,支持多种协议。
curl -O http://www.example.com/file.zip # 下载文件
curl -I http://www.example.com # 获取 HTTP 头信息
curl -X POST -d "param1=value1¶m2=value2" http://www.example.com # 发送 POST 请求
curl -u username:password http://www.example.com # 使用用户名和密码进行 HTTP 基本认证
curl -L http://www.example.com # 跟随重定向
18. 压缩和解压缩
tar
命令
tar
命令用于创建和解压缩 tar 存档文件。
tar -cvf archive.tar /path/to/directory # 创建 tar 存档
tar -xvf archive.tar # 解压 tar 存档
tar -czvf archive.tar.gz /path/to/directory # 创建 gzip 压缩的 tar 存档
tar -xzvf archive.tar.gz # 解压 gzip 压缩的 tar 存档
tar -cjvf archive.tar.bz2 /path/to/directory # 创建 bzip2 压缩的 tar 存档
tar -xjvf archive.tar.bz2 # 解压 bzip2 压缩的 tar 存档
zip
和 unzip
命令
zip
和 unzip
命令用于创建和解压缩 zip 文件。
zip -r archive.zip /path/to/directory # 创建 zip 存档
unzip archive.zip # 解压 zip 存档
19. 文本处理
grep
命令
grep
命令用于搜索文本。
grep "pattern" file.txt # 在文件中搜索模式
grep -r "pattern" /path/to/directory # 递归搜索目录中的模式
grep -i "pattern" file.txt # 忽略大小写
grep -v "pattern" file.txt # 反向匹配
sed
命令
sed
是一个流编辑器,用于文本替换和编辑。
sed 's/old/new/g' file.txt # 将文件中的所有 "old" 替换为 "new"
sed -i 's/old/new/g' file.txt # 直接在文件中进行替换
sed -n '1,5p' file.txt # 打印文件的第 1 到 5 行
20. 时间和日期管理
date
命令
date
命令显示或设置系统日期和时间。
date # 显示当前日期和时间
date -s "2023-10-01 12:34:56" # 设置系统日期和时间
timedatectl
命令
timedatectl
命令用于查看和设置系统时间和时区。
timedatectl # 显示当前时间和时区信息
timedatectl set-timezone America/New_York # 设置时区
21. 网络配置
ifconfig
和 ip
命令
ifconfig
和 ip
命令用于配置网络接口。
ifconfig # 显示网络接口信息
ifconfig eth0 up # 启用网络接口
ifconfig eth0 down # 禁用网络接口
ip addr show # 显示网络接口信息
ip link set eth0 up # 启用网络接口
ip link set eth0 down # 禁用网络接口
route
和 ip route
命令
route
和 ip route
命令用于查看和配置路由表。
route -n # 显示路由表
route add default gw 192.168.1.1 # 添加默认网关
ip route show # 显示路由表
ip route add default via 192.168.1.1 # 添加默认网关
22. 防火墙配置
iptables
命令
iptables
命令用于配置 Linux 内核防火墙。
iptables -L # 列出所有规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许 SSH 连接
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许 HTTP 连接
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允许 HTTPS 连接
iptables -A INPUT -j DROP # 丢弃所有其他输入流量
firewalld
命令
firewalld
是一个动态管理防火墙的工具。
firewall-cmd --state # 检查 firewalld 状态
firewall-cmd --zone=public --add-port=80/tcp --permanent # 允许 HTTP 连接
firewall-cmd --zone=public --add-port=443/tcp --permanent # 允许 HTTPS 连接
firewall-cmd --reload # 重新加载防火墙规则
23. SSH 配置
ssh
命令
ssh
命令用于通过 SSH 连接到远程主机。
ssh user@remote_host # 连接到远程主机
ssh -i /path/to/private_key user@remote_host # 使用私钥连接到远程主机
scp
命令
scp
命令用于通过 SSH 复制文件。
scp file.txt user@remote_host:/path/to/destination # 复制文件到远程主机
scp user@remote_host:/path/to/source file.txt # 从远程主机复制文件
sftp
命令
sftp
命令用于通过 SSH 进行文件传输。
sftp user@remote_host # 连接到远程主机
sftp> put localfile # 上传文件
sftp> get remotefile # 下载文件
以上是我整理的一些常用的 Linux 系统操作命令。这些命令和操作是日常工作中经常会用到的,希望能对大家有所帮助。当然,Linux 系统的功能非常强大,命令和工具也非常丰富,我列举的仅仅是冰山一角。
欢迎大家补充和修正这些内容,分享更多的经验和技巧。往我们通过不断学习和实践,可以更好地掌握 Linux 系统,提升工作效率,解决实际问题。