Linux简介及其常用命令,工作中你早晚用得到!

一、为什么要学Linux?

学习一样技能之前,懂得为什么要学习其实很重要,这样就不会被动刻板地去学习,而是主动探索。

在工作中,我们往往需要使用Docker、Kubernetes等容器化技术来打包项目,然后再用Nginx部署项目,这就需要使用Linux命令来创建和管理虚拟机、容器集群、镜像等,了解和熟悉一些常用的Linux操作命令对于使用Docker和配置Nginx是非常有帮助的。

我记得我学习大数据时,要安装Hadoop这个分布式计算框架,没法在Windows系统上直接装,就装了个虚拟机,然后在虚拟机中安装ubuntu或CentOS这些Linux系统,就是这样初步认识了一些Linux的基础命令。除此之外,Spark、Kafka、HBase、Flink等通常都需要在Linux上安装或部署或运行,Linux广泛应用于各种场景,其重要性不言而喻

二、什么是 Linux?

Linux是一种开源的操作系统内核,它基于UNIX操作系统,广泛应用于服务器、嵌入式系统和云计算等领域。它具有稳定性、安全性和可定制性的特点,因此被广泛应用于服务器和嵌入式设备等领域。Linux操作系统提供了丰富的命令行工具,可以通过命令行界面(CLI)进行系统管理和操作。

许多互联网公司和科技企业都在使用Linux作为服务器操作系统,因此掌握Linux及其常用命令可以为你在这些领域中的工作提供更多机会。

三、Linux 常用命令

1. 文件和目录管理

js 复制代码
'ls':列出目录内容(list directory contents)
'cd':切换当前工作目录(change directory)
'pwd':显示当前工作目录的路径(print working directory)
'mkdir':创建新目录(make directory)
'rm':删除文件或目录 (remove)
'rm'是删除命令,'-r'参数表示递归地删除目录及其所有内容,包括子目录和文件。
'cp':复制文件或目录 (copy)
'mv':移动文件或目录(move)
'touch':创建空文件或更新文件时间戳(没有全称,是一个单词的命令)
'cat':查看文件内容
'more和less':逐页查看文件内容

具体的文件和目录管理命令示例如下:

bash 复制代码
# 列出当前目录内容
ls

# 创建新目录
mkdir mydir

# 删除文件或目录
rm myfile.txt
rm -r mydir        #删除名为"mydir"的目录及其所有内容,-r选项表示"递归"

# 复制文件或目录
cp myfile.txt mydir/   #将文件myfile.txt复制到目录mydir/中
cp -r mydir mydir_backup  #将目录mydir/及其所有内容递归地复制到目录mydir_backup/中

# 移动文件或目录
# 如果目录或文件不存在,会报错
mv myfile.txt mydir/   #将文件myfile.txt移动到目录mydir/中
mv mydir mydir_newname   #将目录mydir/重命名为mydir_newname/

# 创建空文件或更新文件时间戳
touch myfile.txt   #更新myfile.txt文件的访问时间和修改时间为当前时间

2. 系统管理

js 复制代码
`uname`:显示系统信息
`date`:显示当前日期和时间
`uptime`:显示系统运行时间和负载
`shutdown`:关机或重启系统
`reboot`:重启系统
`df`:显示磁盘空间使用情况
`du`:显示目录或文件的磁盘使用情况

一套比较完整的系统管理命令示例如下:

bash 复制代码
# 显示系统信息
uname -a
# `-a`是一个选项或参数,用于指定要显示所有系统信息的详细输出
# 包括内核名称、主机名、内核版本、操作系统版本、硬件架构和处理器类型等

# 显示当前日期和时间
date

# 显示系统运行时间和负载
uptime

# 关机或重启系统
shutdown now
reboot

例如,执行 uname -a 命令可能会输出以下内容:

js 复制代码
Linux mycomputer 5.4.0-42-generic #46~18.04.1-Ubuntu SMP Fri Jul 10 07:21:24 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

其中,mycomputer是主机名,5.4.0-42-generic是内核版本,x86_64是硬件架构。

3. 进程管理

js 复制代码
`ps`:显示当前运行的进程
`top`:实时显示系统进程和资源使用情况
`ps -ef`:显示系统中正在运行的所有进程的详细信息
`kill`:终止指定进程
`killall`:终止所有具有指定名称的进程
`vmstat`: 报告虚拟内存(包括物理内存、交换空间和IO操作)统计信息
`strace`: 跟踪系统调用和信号,跟踪进程系统调用

具体进程管理命令示例如下:

bash 复制代码
# 显示当前运行的进程
ps aux   #aux是选项,表示显示所有用户的所有进程。

# 实时显示系统进程和资源使用情况
top

# 显示系统中正在运行的所有进程的详细信息
ps -ef
# ps是"Process Status"的缩写,`-ef` 是选项,表示显示所有进程的完整信息。`-e`选项表示显示所有进程,`-f`选项表示以完整的格式显示进程信息。
# 输出结果包括进程的PID(进程ID)、父进程的PID、进程的状态、执行命令的用户、CPU使用率、内存使用率等信息。

# 终止指定进程
kill 1234   #向进程ID为1234的进程发送一个终止信号,用于终止该进程

# 终止所有具有指定名称的进程
killall firefox   #终止所有名为"firefox"的进程

4. 网络管理

js 复制代码
`ifconfig`:显示或配置网络接口信息
`ping`:测试网络连接
`netstat`:显示网络连接、路由表和网络接口统计信息
`ssh`:通过SSH连接到远程主机
`scp`:在本地主机和远程主机之间复制文件
`curl`:下载文件

具体网络管理命令示例如下:

bash 复制代码
# 显示网络接口信息
ifconfig

# 测试网络连接
ping www.baidu.com #试图连接到网站www.baidu.com并测试其连接速度和可靠性

# 显示网络连接、路由表和网络接口统计信息
netstat -a

# 通过 SSH 连接到远程主机
ssh username@remotehost

# 在本地主机和远程主机之间复制文件
scp myfile.txt username@remotehost:~/destination/

5. 包管理

js 复制代码
`apt-get`:Debian/Ubuntu 系统的包管理工具
`yum`:CentOS/RHEL 系统的包管理工具
`dnf`:Fedora 系统的包管理工具

具体包管理命令示例如下:

bash 复制代码
# 安装软件包
apt-get install package_name
yum install package_name
dnf install package_name

# 更新软件包
apt-get update
yum update
dnf update

# 删除软件包
apt-get remove package_name
yum remove package_name
dnf remove package_name

6. 用户和权限管理

js 复制代码
`useradd`:创建新用户
`passwd`:设置用户密码
`su`:切换到其他用户
`sudo`:以超级用户身份执行命令
`chmod`:修改文件或目录的权限(change mode)
`chown`:修改文件或目录的所有者(change owner)
`who与w`:查看当前登录用户

具体用户和权限管理命令示例如下:

bash 复制代码
# 创建新用户
useradd newuser

# 设置用户密码
passwd newuser

# 切换到其他用户
su - username

# 以超级用户身份执行命令
sudo command   #command是你以超级用户(root)的身份执行的命令

# 修改文件或目录的权限
chmod 644 myfile.txt
# 1.`chmod` 是 "Change Mode" 的缩写
# 2.`644`是文件权限的数字表示方式。其中,第一个数字表示文件所有者的权限,第二个数字表示同组用户的权限,第三个数字表示其他用户的权限。数字 6 表示读写权限,数字 4 表示只读权限。
# 3.`myfile.txt` 是要修改权限的文件名。

# 修改文件或目录的所有者
chown newuser myfile.txt   #`chown`是"Change Owner"的缩写,`newuser`是新的文件所有者的用户名

四、最后的话

能力一般,水平有限,本文可能存在纰漏或错误,如有问题欢迎指正,感谢你阅读这篇文章,如果你觉得写得还行的话,不要忘记点赞、评论、收藏哦!祝大家生活愉快!

相关推荐
想用offer打牌13 小时前
MCP (Model Context Protocol) 技术理解 - 第二篇
后端·aigc·mcp
崔庆才丨静觅13 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606114 小时前
完成前端时间处理的另一块版图
前端·github·web components
KYGALYX14 小时前
服务异步通信
开发语言·后端·微服务·ruby
掘了14 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅14 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
wdfk_prog15 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
崔庆才丨静觅15 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
爬山算法15 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
盟接之桥15 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造