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`是新的文件所有者的用户名

四、最后的话

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

相关推荐
柏箱2 分钟前
PHP基本语法总结
开发语言·前端·html·php
黄俊懿11 分钟前
【深入理解SpringCloud微服务】手写实现各种限流算法——固定时间窗、滑动时间窗、令牌桶算法、漏桶算法
java·后端·算法·spring cloud·微服务·架构
新缸中之脑12 分钟前
Llama 3.2 安卓手机安装教程
前端·人工智能·算法
sp_wxf12 分钟前
Stream流
linux·服务器·windows
hmz85615 分钟前
最新网课搜题答案查询小程序源码/题库多接口微信小程序源码+自带流量主
前端·微信小程序·小程序
看到请催我学习21 分钟前
内存缓存和硬盘缓存
开发语言·前端·javascript·vue.js·缓存·ecmascript
LYK_HAHA30 分钟前
centos常用知识和命令
linux·运维·centos
2401_8574396938 分钟前
“衣依”服装销售平台:Spring Boot技术应用与优化
spring boot·后端·mfc
blaizeer1 小时前
深入理解 CSS 浮动(Float):详尽指南
前端·css
Jerry.ZZZ1 小时前
系统设计,如何设计一个秒杀功能
后端