作为前端老司机,你不得不该掌握的 Linux 技能

900 阅读10分钟

在前端开发的世界里,掌握 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  # 显示系统运行时间及当前负载

rebootshutdown 命令

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. 硬盘管理

lsblkdf 命令

lsblk 列出所有可用的块设备,而 df -h 显示磁盘空间使用情况。

lsblk  # 列出所有可用的块设备
df -h  # 以易读的格式显示磁盘使用情况

7. 内存管理

free 命令

free -h 显示内存使用情况。

free -h  # 显示已使用和空闲的内存

8. CPU 管理

cat /proc/cpuinfotop 命令

cat /proc/cpuinfo 显示 CPU 信息,而 top 实时显示系统进程信息。

cat /proc/cpuinfo  # 显示 CPU 信息
top  # 实时显示系统进程信息

htop 命令

htoptop 命令的增强版,提供更友好的界面。

htop  # 实时显示系统进程信息

9. 网络端口管理

netstatping 命令

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&param2=value2" http://www.example.com  # 发送 POST 请求

wget 命令

wget 是另一个常用的下载工具。

wget http://www.example.com/file.zip  # 下载文件
wget -O filename http://www.example.com/file  # 下载文件并指定输出文件名

11. 进程管理

pskill 命令

ps -ef 显示当前系统的所有进程,而 kill 发送信号到特定进程。

ps -ef | grep process_name  # 搜索特定进程
kill -9 PID  # 强制杀死进程

pkillpgrep 命令

pkillpgrep 命令用于按名称管理进程。

pgrep process_name  # 查找进程 ID
pkill process_name  # 杀死进程

12. 系统性能状态

top 命令

top 显示并更新系统进程的实时信息。

top  # 实时显示系统进程信息

iotop 命令

iotop 显示实时磁盘 I/O 使用情况。

iotop  # 实时显示磁盘 I/O 使用情况

13. 文件和目录管理

lschmod 命令

ls 列出目录内容,而 chmod 更改文件或目录的权限。

ls -l /path/to/directory  # 以长列表格式显示目录内容
chmod -R 755 /path/to/directory  # 递归更改目录及其内容的权限

chown 命令

chown 更改文件或目录的所有者。

chown 用户名:组名 文件名  # 更改文件所有者和组
chown -R 用户名:组名 /path/to/directory  # 递归更改目录及其内容的所有者和组

14. 文件操作

touchcat 命令

touch 创建新文件或更新现有文件的时间戳,而 cat 连接文件并打印到标准输出设备。

touch newfile.txt  # 创建新文件
cat file.txt  # 显示文件内容

headtail 命令

headtail 命令用于查看文件的开头和结尾部分。

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&param2=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 存档

zipunzip 命令

zipunzip 命令用于创建和解压缩 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. 网络配置

ifconfigip 命令

ifconfigip 命令用于配置网络接口。

ifconfig  # 显示网络接口信息
ifconfig eth0 up  # 启用网络接口
ifconfig eth0 down  # 禁用网络接口

ip addr show  # 显示网络接口信息
ip link set eth0 up  # 启用网络接口
ip link set eth0 down  # 禁用网络接口

routeip route 命令

routeip 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 系统,提升工作效率,解决实际问题。