Linux是一个自由和开放源代码的操作系统内核,广泛应用于各种计算设备和系统中。它起源于Finland的Linus Torvalds在1991年开始开发,并迅速发展成为一个强大和可靠的操作系统。
以下是特点和重要组成部分:
开放源代码:Linux是基于开放源代码的操作系统,这意味着其源代码对用户开放,并且可以根据需要进行修改和定制。这使得用户可以自由地使用、学习、修改和分发Linux系统。
多用户和多任务:Linux支持多用户和多任务的环境。多个用户可以同时登录并在同一台计算机上运行多个程序,而不会相互干扰。
分布式开发模型:Linux的开发是一个分布式的模型,全球范围的开发者社区共同贡献和改进Linux内核和相关软件。这使得Linux能够受益于众多开发者的经验和专业知识。
强大的稳定性和安全性:Linux以其出色的稳定性和安全性而闻名。由于其设计的优秀性和开放源代码的审查,Linux系统往往较少受到恶意软件和安全漏洞的影响。
模块化和可定制性:Linux的内核和软件是模块化的,用户可以根据需要选择和配置所需的功能和组件。这使得Linux可以适应各种不同的用途和需求,从嵌入式设备到服务器和超级计算机。
广泛的应用领域:Linux广泛应用于各种设备和系统中,包括个人计算机、服务器、移动设备、网络路由器、物联网设备等。许多云计算平台和超级计算机也使用Linux作为其操作系统。
丰富的软件生态系统:Linux拥有庞大而活跃的开源软件社区,提供了各种应用程序、工具和开发环境。用户可以轻松获取和安装各种免费和开源的软件,满足各种需求。
Linux有多个发行版(Distribution)可供选择,如Ubuntu、Fedora、Debian、CentOS等,每个发行版都有其特定的目标和特点。用户可以根据自己的需求和偏好选择合适的Linux发行版。
需要注意的是,Linux操作系统具有较高的灵活性和可定制性,但对于初学者来说,可能需要一定的学习和适应过程。然而,一旦熟悉了Linux的基本概念和操作,它可以成为一个强大而灵活的工具,适用于各种计算需求。
Linux与Unix之间存在密切的关系。Linux是基于Unix思想和设计原则的操作系统,可以说是Unix的一种变体或衍生版本。尽管Linux与Unix在某些方面有一些共同的概念和特点,但它们也有一些区别。
起源:Unix是在1969年由肯·汤普逊(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)等人开发的操作系统。而Linux是由Linus Torvalds在1991年开始开发的。
开放源代码:Linux是一个开源操作系统,其源代码对用户开放,并且可以根据需要进行修改和定制。Unix则是一个商业操作系统,其源代码通常不对公众开放。
内核:Unix和Linux都有自己的内核。Unix使用一种称为"Monolithic Kernel"(单体内核)的架构,而Linux使用一种称为"Monolithic Kernel with Loadable Kernel Modules"(带有可加载内核模块的单体内核)的架构。
发行版和版本:Unix有多个不同的版本,如Solaris、AIX和HP-UX,每个版本由不同的厂商开发和维护。Linux则有多个发行版(如Ubuntu、Fedora和Debian),每个发行版都基于Linux内核,并由社区或组织进行维护和支持。
标准和兼容性:Unix有一些标准,如POSIX(可移植操作系统接口)标准,旨在确保不同Unix系统之间的兼容性。Linux通常遵循POSIX标准,但并非所有Linux发行版都完全符合该标准。
社区和发展模式:Linux发展依赖于全球范围的开发者社区,有数以千计的开发者共同贡献和改进Linux内核和相关软件。Unix的发展则由相对较小的团队或厂商负责。
尽管存在这些区别,Linux在设计和实现上受到Unix的影响,并继承了Unix的一些关键概念和特点,如多用户和多任务支持、文件系统层次结构、命令行界面等。因此,对于熟悉Unix的用户来说,他们通常可以相对轻松地适应和使用Linux系统。
Ubuntu: Ubuntu是一款基于Debian的流行Linux发行版。它以易用性和友好的用户界面而闻名,适合各种用户,从新手到专业人士。Ubuntu拥有庞大的软件库和活跃的社区支持。
Fedora: Fedora是由Red Hat公司支持的社区驱动的Linux发行版。它专注于提供最新的开源软件和技术,并且在开发者和技术爱好者之间很受欢迎。Fedora也被用作Red Hat Enterprise Linux(RHEL)的基础。
Debian: Debian是一个非常稳定和可靠的Linux发行版,以其强调自由软件和开放源代码而闻名。Debian拥有广泛的软件库和强大的包管理系统,适用于各种用途。
CentOS: CentOS是基于Red Hat Enterprise Linux(RHEL)源代码构建的一个免费的企业级Linux发行版。它专注于稳定性和安全性,并被广泛用作服务器操作系统。
openSUSE: openSUSE是一个功能齐全且易于使用的Linux发行版,具有强大的图形界面和配置工具。它注重用户友好性和可定制性,适合桌面和服务器使用。
生成环境本人还是推荐 CentOS
4、Centos的下载及安装注意点
官方下载地址:Download (centos.org)
注意:
1、语言建议选择English。
2、必须设置的内容有:网络和主机名/安装源/软件选择/安装目的地/语言支持/时间和日期。
3、选择最小安装就可以了,以后需要其他软件时可以再安装。
4、方便学习管理推荐在虚拟机进行安装CentOS 版本选择8+
安装过程比较简单,各位可以自行搜索!
1、假如系统安装在服务器上,可以免密码登录
1、生成密钥(本地已经有了就不要生成了)
ssh-keygen -t rsa
2、将密钥添加到远程服务器
ssh-copy-id root@服务器IP
3、如果以上命令无法完成,按顺序执行以下命令
在本地服务器中执行,将本地公钥添加到服务器中
scp ~/.ssh/id_rsa.pub root@服务器IP:
4、登录远程服务器设置密钥,如果存在就不要设置了
ssh-keygen -t rsa
5、在服务器添加公钥
cat id_rsa.pub >> ~/.ssh/authorized_keys
6、现在登录就不需要密码了
ssh root@192.168.31.90
7、编辑 vim ~/.ssh/config 文件添加以下内容
Host xxxx
Hostname 192.168.31.90(服务器IP)
Port 22
User root
现在直接使用 ssh xxxx 就可以登录服务器了
2、本地输入安装时的账号密码就可以登录了
CENTOS 8
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
cd /etc/yum.repos.d
#备份旧源数据
sudo cp CentOS-Base.repo CentOS-Base.repo.bak
sudo cp CentOS-AppStream.repo CentOS-AppStream.repo.bak
sudo cp CentOS-Extras.repo CentOS-Extras.repo.bak
sudo sed -i 's/mirrorlist=/#mirrorlist=/g' CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo
sudo sed -i 's/#baseurl=/baseurl=/g' CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo
sudo sed -i 's/http:\/\/mirror.centos.org/https:\/\/mirrors.aliyun.com/g' CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo
yum makecache
注意:通过添加源可以加快软件下载,同时更多的源也提供更丰富的软件
查看防火墙状态
$ sudo systemctl status firewalld.service
关闭防火墙
$ sudo systemctl stop firewalld.service
永久关闭
$ sudo systemctl disable firewalld.service
这些命令涵盖了Linux系统操作的各个方面,可以帮助您进行系统管理、文件操作、用户管理和网络管理等任务。请注意,每个命令都有更多的选项和参数,可以通过命令的man页面或者命令名后面加上--help
来获取更详细的信息。
用户和权限管理:
useradd
: 创建用户
passwd
: 设置用户密码
usermod
: 修改用户属性
userdel
: 删除用户
groupadd
: 创建用户组
groupmod
: 修改用户组属性
groupdel
: 删除用户组
sudo
: 以超级用户权限执行命令
su
: 切换用户
系统信息和状态:
uname
: 显示系统信息
whoami
: 显示当前用户名
hostname
: 显示或设置主机名
top
: 实时显示系统资源使用情况
ps
: 列出当前运行的进程
df
: 显示文件系统的磁盘空间使用情况
free
: 显示系统内存使用情况
uptime
: 显示系统运行时间
date
: 显示或设置系统日期和时间
文件和目录操作:
ls
: 列出目录内容
cd
: 切换工作目录
pwd
: 显示当前工作目录
mkdir
: 创建目录
rm
: 删除文件或目录
cp
: 复制文件和目录
mv
: 移动文件和目录
touch
: 创建空文件或更新文件的时间戳
cat
: 查看文件内容
head
: 显示文件开头部分
tail
: 显示文件末尾部分
文件权限和所有权管理:
chmod
: 修改文件权限chown
: 修改文件所有者chgrp
: 修改文件所属组文件搜索和查找:
find
: 根据条件搜索文件
grep
: 在文件中搜索匹配的文本
locate
: 快速定位文件
which
: 查找命令的路径
网络管理:
ifconfig
: 配置和显示网络接口信息
ping
: 测试网络连接
nslookup
: 查询域名解析信息
netstat
: 显示网络连接和路由表信息
ssh
: 安全远程登录
scp
: 安全复制文件
压缩和解压缩:
tar
: 创建和提取tar归档文件
gzip
: 压缩文件
gunzip
: 解压缩文件
进程管理:
ps
: 列出当前运行的进程
top
: 实时显示系统资源使用情况和进程信息
kill
: 终止指定进程
killall
: 终止指定名称的所有进程
pgrep
: 根据条件查找匹配的进程ID
pkill
: 根据条件终止匹配的进程
系统服务管理:
systemctl start service_name
: 启动指定名称的服务systemctl stop service_name
: 停止指定名称的服务systemctl restart service_name
: 重启指定名称的服务systemctl status service_name
: 显示指定名称的服务状态systemctl enable service_name
: 设置指定名称的服务开机自启动systemctl disable service_name
: 取消指定名称的服务开机自启动网络配置:
ifconfig
: 配置和显示网络接口信息
ip
: 配置和显示网络接口信息(更现代的替代命令)
route
: 显示和配置网络路由表
netstat
: 显示网络连接和路由表信息
iptables
: 配置防火墙规则
日志管理:
tail: 显示文件末尾部分(常用于查看日志文件)
tail -f file.log
: 实时显示日志文件的新增内容grep: 在文件中搜索匹配的文本(常用于过滤日志信息)
grep "error" file.log
: 在file.log中搜索包含关键词"error"的行less: 分页查看文件内容(常用于查看大型日志文件)
less file.log
: 打开文件并逐页显示内容,使用箭头键进行导航系统监测和性能优化:
htop
: 实时监测系统资源使用情况和进程信息(更友好的替代命令)
vmstat
: 显示系统的虚拟内存、进程、CPU和IO统计信息
sar
: 定期收集和报告系统活动数据
iostat
: 显示CPU、磁盘和IO设备的统计信息
free
: 显示系统内存使用情况
软件包管理:
apt update
: 更新软件包列表apt upgrade
: 升级系统中的软件包apt install package_name
: 安装指定的软件包apt remove package_name
: 卸载指定的软件包apt search keyword
: 在软件包数据库中搜索关键字yum update
: 更新系统中的软件包yum install package_name
: 安装指定的软件包yum remove package_name
: 卸载指定的软件包yum search keyword
: 在软件包数据库中搜索关键字磁盘管理:
fdisk
: 磁盘分区工具mkfs
: 创建文件系统mount
: 挂载文件系统umount
: 卸载文件系统df
: 显示文件系统的磁盘空间使用情况du
: 计算目录或文件的磁盘空间使用情况定时任务:
crontab -e
: 编辑当前用户的定时任务crontab -l
: 列出当前用户的定时任务crontab -r
: 删除当前用户的定时任务其他实用工具:
wget URL
: 下载指定URL的文件curl URL
: 发送HTTP请求并获取URL的内容ssh user@host
: 连接到指定主机scp source_file destination
: 将源文件复制到目标位置网络诊断和调试:
ping hostname
: 向指定的主机发送 ICMP 回显请求traceroute hostname
: 显示到达指定主机的网络路径netstat -tuln
: 显示所有TCP和UDP监听端口tcpdump -i interface
: 监听指定网络接口上的数据包数据备份和恢复:
tar: 创建和提取归档文件
tar -cvf archive.tar file1 file2
: 创建归档文件tar -xvf archive.tar
: 解压缩归档文件rsync: 远程备份和文件同步工具
rsync -avz source_directory destination
: 同步源目录到目标位置dd: 复制和转换文件或设备
dd if=input_file of=output_file
: 从输入文件复制到输出文件Shell脚本编程:
bash
: Bash shell的命令行解释器chmod
: 修改脚本文件的执行权限#!/bin/bash
: 在脚本文件的开头指定解释器echo
: 打印文本或变量的值if
: 条件语句for
: 循环语句while
: 循环语句grep
: 在文本中搜索匹配的行sed
: 文本替换和处理工具awk
: 文本处理和报告生成工具系统备份和恢复:
dd: 复制和转换文件或设备
dd if=input_file of=output_file
: 从输入文件复制到输出文件rsync: 远程备份和文件同步工具
rsync -avz source_directory destination
: 同步源目录到目标位置tar: 创建和提取归档文件
tar -cvf archive.tar file1 file2
: 创建归档文件tar -xvf archive.tar
: 解压缩归档文件用户和权限管理:
useradd
: 创建用户账户passwd
: 设置用户密码usermod
: 修改用户属性userdel
: 删除用户账户groupadd
: 创建用户组groupmod
: 修改用户组属性groupdel
: 删除用户组chown
: 修改文件或目录的所有者chgrp
: 修改文件或目录的所属用户组chmod
: 修改文件或目录的权限系统信息查询:
uname -a
: 显示所有系统信息lsb_release -a
: 显示所有发行版信息hostname
: 显示主机名uptime
: 显示系统运行时间和负载who
: 显示当前登录用户信息w
: 显示当前登录用户和其活动信息last
: 显示最近的登录记录df
: 显示文件系统的磁盘空间使用情况free
: 显示系统内存使用情况文件搜索和查找:
find /path -name filename
: 在指定路径下按名称查找文件locate filename
: 在数据库中查找文件which command
: 显示命令的路径资源监测和性能优化:
top
: 实时显示系统资源使用情况和进程信息htop
: 更友好的系统资源监测工具iotop
: 监测磁盘IO使用情况nethogs
: 监测网络流量使用情况sar
: 定期收集和报告系统活动数据vmstat
: 显示系统的虚拟内存、进程、CPU和IO统计信息lsof
: 列出打开的文件和进程信息进程管理:
ps: 显示当前运行的进程
ps -ef
: 显示所有进程的详细信息top
: 实时显示系统资源使用情况和进程信息
kill: 终止指定进程
kill PID
: 终止指定进程ID的进程pkill: 根据名称终止进程
pkill process_name
: 终止指定名称的进程pgrep: 根据名称查询进程ID
pgrep process_name
: 查询指定名称的进程ID日志管理:
tail: 显示文件末尾的内容
tail -n N filename
: 显示文件末尾的最后 N 行内容tail -f filename
: 动态显示文件的新增内容cat
: 连接文件并显示内容
grep: 在文件中搜索匹配的行
grep pattern filename
: 在文件中搜索匹配指定模式的行less: 分页显示文件内容
less filename
: 逐页显示文件内容,支持搜索和浏览journalctl: 查看系统日志
journalctl -u service_name
: 查看指定服务的日志journalctl -f
: 实时显示日志内容网络配置和管理:
ifconfig
: 显示和配置网络接口信息(已被ip命令取代)
ip: 显示和配置网络接口和路由信息
ip addr show
: 显示网络接口信息ip route show
: 显示路由表信息iptables: 配置和管理防火墙规则
iptables -L
: 显示防火墙规则列表netstat: 显示网络连接、接口和路由表信息
netstat -tuln
: 显示所有TCP和UDP监听端口ss: 显示套接字统计信息
ss -tuln
: 显示所有TCP和UDP监听端口软件包管理:
apt: Advanced Package Tool,Debian和Ubuntu系统的软件包管理工具
apt update
: 更新软件包列表apt upgrade
: 升级可用的软件包apt install package_name
: 安装指定的软件包apt remove package_name
: 卸载指定的软件包yum: Yellowdog Updater, Modified,CentOS和Fedora系统的软件包管理工具
yum update
: 更新系统中的软件包yum install package_name
: 安装指定的软件包yum remove package_name
: 卸载指定的软件包网络工具:
curl: 发送HTTP请求并显示响应
curl url
: 发送GET请求并显示响应内容wget: 下载文件
wget file_url
: 下载指定URL的文件ssh: Secure Shell,远程登录和执行命令
ssh username@hostname
: 远程登录到指定主机scp: Secure Copy,远程拷贝文件
scp source_file destination
: 将源文件复制到目标位置ftp: File Transfer Protocol,使用FTP协议进行文件传输
ftp hostname
: 连接到指定主机的FTP服务器虚拟化和容器:
docker: 容器化平台,用于构建和管理容器
docker run image_name
: 运行指定的容器镜像docker pull image_name
: 下载指定的容器镜像docker ps
: 显示运行中的容器列表docker stop container_id
: 停止指定的容器kubernetes: 开源容器编排系统,用于自动化部署和管理容器化应用
kubectl get pods
: 显示Pods的列表kubectl create deployment
: 创建新的部署利用Tab键自动补全:在命令行中输入文件或目录的一部分,然后按下Tab键,系统将自动补全文件或目录的名称。这可以节省时间并减少输入错误。
使用通配符进行文件匹配:在命令中使用通配符可以快速匹配多个文件或目录。常用的通配符包括:
*
:匹配任意字符序列(包括空字符)
?
:匹配任意单个字符
[characters]
:匹配指定字符集中的任意一个字符
[!characters]
:匹配不在指定字符集中的任意一个字符
使用管道(|
)将命令连接起来:通过将一个命令的输出作为另一个命令的输入,可以将多个命令连接起来形成一个更复杂的操作。例如:command1 | command2
。
使用Ctrl + R
搜索命令历史记录:按下Ctrl + R
,然后输入关键字,系统将搜索并显示最近使用过的包含该关键字的命令。按下Enter
键执行找到的命令。
使用Ctrl + C
终止命令:如果一个命令正在执行而您想取消它,可以按下Ctrl + C
组合键来终止运行中的命令。
使用Ctrl + D
退出终端:当您完成终端会话时,可以使用Ctrl + D
组合键来快速退出。
使用man
命令查看命令的手册页:man
命令提供了关于大多数Linux命令的详细文档。例如:man ls
将显示关于ls
命令的手册页。
使用Ctrl + Alt + T
打开终端:快捷键Ctrl + Alt + T
可以在大多数Linux发行版中快速打开一个终端窗口。
利用别名(alias)简化命令:您可以使用alias
命令为常用的命令创建别名,以简化和加快输入。例如:alias ll='ls -l'
将创建一个名为ll
的别名,执行ls -l
命令。
使用Ctrl + Z
暂停命令:按下Ctrl + Z
可以将当前正在运行的命令暂停,并返回到命令提示符。使用fg
命令可以恢复被暂停的命令。
使用Ctrl + L
清除屏幕:按下Ctrl + L
可以清除终端窗口的内容,让屏幕保持整洁。
使用Ctrl + A
和Ctrl + E
在命令行中快速定位:按下Ctrl + A
将光标移动到命令行的开头,按下Ctrl + E
将光标移动到命令行的末尾。
使用Ctrl + U
清除当前行:按下Ctrl + U
可以快速清除当前命令行中光标位置之前的内容。
使用Ctrl + R
反向搜索命令历史记录:按下Ctrl + R
后,开始键入关键字,系统将搜索并显示最近使用过的包含该关键字的命令。重复按下Ctrl + R
将继续搜索并显示更早的匹配项。
使用Ctrl + G
取消搜索:在使用Ctrl + R
搜索命令历史记录时,如果要取消搜索并返回到当前命令提示符,可以按下Ctrl + G
。
使用history
命令查看命令历史记录:history
命令将显示在当前会话中执行过的所有命令的列表。您可以使用!n
(其中n是命令编号)来重新执行特定的命令。
使用Ctrl + D
结束输入:在命令行中,按下Ctrl + D
组合键表示输入结束,例如在输入多行文本后。
使用Ctrl + K
剪切当前行:按下Ctrl + K
将剪切从光标位置到行末的内容。
使用Ctrl + Y
粘贴剪切的内容:在命令行中按下Ctrl + Y
可以将之前使用Ctrl + K
或Ctrl + U
剪切的内容粘贴到光标位置。
使用Ctrl + W
删除前一个单词:按下Ctrl + W
将删除光标之前的单词。
使用Ctrl + P
和Ctrl + N
浏览命令历史记录:按下Ctrl + P
将浏览较早的命令,按下Ctrl + N
将浏览较新的命令。
使用Ctrl + T
交换光标前两个字符:按下Ctrl + T
将交换光标前两个字符的位置。
使用Ctrl + H
删除光标前一个字符:按下Ctrl + H
将删除光标之前的一个字符。
使用Ctrl + S
暂停终端输出:按下Ctrl + S
可以暂停终端输出,按下Ctrl + Q
可以恢复。
使用Ctrl + Alt + F1
到F6
切换虚拟终端:Linux系统通常提供多个虚拟终端,可以使用这些快捷键在不同的终端之间进行切换。Ctrl + Alt + F1
到F6
分别对应虚拟终端1到6,Ctrl + Alt + F7
则是返回到图形界面。
使用Ctrl + Shift + T
打开新的终端选项卡:这个快捷键可以在终端中打开一个新的选项卡,方便在同一个窗口中同时执行多个命令。
使用Ctrl + Shift + N
和Ctrl + Shift + P
在命令行中快速切换命令:在命令行中按下Ctrl + Shift + N
可以快速切换到下一个命令,按下Ctrl + Shift + P
可以快速切换到上一个命令。
使用Ctrl + Shift + C
和Ctrl + Shift + V
复制和粘贴:在终端中,按下Ctrl + Shift + C
可以复制选定的文本,按下Ctrl + Shift + V
可以粘贴文本。
使用Ctrl + Arrow
进行单词间的快速移动:在命令行中按下Ctrl + Left Arrow
可以快速移动到前一个单词的开头,按下Ctrl + Right Arrow
可以快速移动到下一个单词的开头。
使用screen
或tmux
管理会话:screen
和tmux
是两个强大的终端复用工具,它们允许您在单个终端窗口中创建多个会话,并在这些会话之间进行切换。这对于长时间运行的任务或远程会话特别有用。
使用Ctrl + Alt + L
锁定屏幕:按下Ctrl + Alt + L
可以快速锁定屏幕,保护您的计算机免受未经授权的访问。
使用find
命令进行文件搜索:find
命令可以根据指定的条件在文件系统中搜索文件和目录。例如,find /path/to/search -name "filename"
将在指定路径下搜索指定名称的文件。
使用grep
命令进行文本匹配:grep
命令可以在文件中搜索指定的模式并显示匹配的行。例如,grep "pattern" filename
将在指定文件中搜索匹配模式的行。
使用sed
命令进行文本替换:sed
命令可以在文本文件中进行模式匹配和替换操作。例如,sed 's/pattern/replacement/g' filename
将替换指定模式的所有匹配项。
使用awk
命令进行文本处理:awk
命令是一个强大的文本处理工具,可以根据指定的规则对文本进行处理和分析。它可以用于提取特定字段、计算统计信息等。