Linux自学笔记(常用命令)

## LINUX学习

Linux起源

Linux之父 Linus Torvalds
Git创作者,世界著名黑客
https://www.kernel.org
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f257f184a9f8480db47e563169bab6b0.png..dadasassd

发行版本

Ubuntu乌班图
RedHat红帽
CentOS
Debain蝶变
Fedora
SuSE
OpenSUSE示意图

系统优点

开源、稳定、高效
多任务(Multi-tasking) UNIX是一个多任务操作系统,在它内部允许有多个任务同时运行。而DOS操作系统是单任务的操作系统,不能同时运行多个任务。早期的UNIX操作系统的多任务是靠分时(time sharing)机构实现的,现在有些UNIX除了具有分时机制外,还加入了实时(real-time)多任务能力,用于象实时控制、数据采集等实时性要求较高的场合。

多用户(Multi-users) UNIX又是一个多用户操作系统,它允许多个用户同时使用。在UNIX中,每位用户运行自己的或公用的程序,好象拥有一台单独的机器。DOS操作系统是单用户的操作系统,只允许一个用户使用。

并行处理能力 UNIX支持多处理器系统,允许多个处理器协调并行运行。

管道 UNIX允许一个程序的输出作为另外一个程序输入,多个程序串起来看起来好象一条管道一样。通过各个简单任务的组合,就可以完成更大更复杂的任务,并极大提高了操作的方便性。后来DOS操作系统也借鉴并提供了这种机制。

功能强大的Shell UNIX的命令解释器由Shell实现。UNIX提供了三种功能强大的Shell,每种Shell本身就是一种解释型高级语言,通过用户编程就可创造无数命令,使用方便。

安全保护机制 UNIX提供了非常强大的安全保护机制,防止系统及其数据未经许可而被非法访问。

稳定性好 在目前使用的操作系统中,UNIX是比较稳定的。UNIX具有非常强大的错误处理能力,保护系统的正常运行。

用户界面 传统的UNIX用户界面采用命令行方式,命令较难记忆,很难普及到非计算机专业人员。这也是长期以来UNIX遭受指责的主要原因,但现在大多数的UNIX都加入的图形界面,可操作性大大增强。

强大的网络支持 UNIX具有很强的联网功能,目前流行的TCP/IP协议就是UNIX的缺省网络协议,正是因为UNIX和TCP/IP的完美结合,促进了UNIX、TCP/IP以及Internet的推广和普及。目前UNIX一直是Internet上各种服务器的首选操作系统。

移植性好 UNIX操作系统的源代码绝大部分用C语言写成,非常便于移植到其它计算机上,再加上初期UNIX组织对UNIX源代码宽松的管理政策,促进了UNIX的发展和普及。 很早以前,就应用到几乎所有16位及以上的计算机上,包括微机、工作站、服务器、小型机、多处理机和大型机等等。

应用领域

服务器/嵌入式/桌面

安装分区方式

https://mirrors.aliyun.com/centos-vault/?spm=a2c6h.25603864.0.0.5d20234ef1PBks
boot 1G(5%)、swap2G(10%)、根分区17G(85%)
在这里插入图片描述

Linux目录结构(一切皆为文件)

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

系统命令

内核升级
uname -a //查看当前的内核版本
yum info kernel -q //检测内核版本,显示可以升级的内核
yum update kernel //升级内核
yum list kernel -q //查看已经安装的内核
帮助指令
在这里插入图片描述系统指令
shutdown -h now //立刻关机
halt //立刻关机
shudown -h 1 //一分钟后关机
shutdown -r now //立刻重启
reboot //立刻重启
sync //把内存的数据同步到磁盘
hostsname //查看主机名
vim /etc/hostname //指定主机名,重启后生效
systemctl start sshd.service //启动ssh服务
kill //杀进程 -9强制
killall //杀进程树,支持通配符
vi /etc/sysconfig/network-scripts/ifcfg-ens33 //修改IP地址
service network restart //重启网络服务
在这里插入图片描述运行级别
systemctl get-default //查看系统运行级别
init (0-9) //指定系统运行级别 3多用户网络multi-user.targe 、5图形界面常用
systemctl set-default //同上,设置系统运行级别
pwd //显示当前绝对路径
ls //显示当前目录中的文件 -a:显示全部 -l:以列表的方式显示信息
cd //打开路径 …上级 /根目录 ~回自己家目录
在这里插入图片描述yum源修改
查看CentOS-Base.repo文件内容:cat /etc/yum.repos.d/CentOS-Base.repo
备份官方源配置: cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
下载阿里云yum源配置文件覆盖原官方源配置文件:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清理缓存并生成新的缓存:
yum clean all
yum makecache
更新软件:sudo yum -y update
https://www.jetbrains.com/idea/download/#section=windows //IDEAIU下载
https://www.oracle.com/java/technologies/downloads/?er=221886 //JDK下载
https://tomcat.apache.org/download-90.cgi //Tomcat下载
https://dev.mysql.com/downloads/mysql/ // MySQL下载

查询列表:yum list | grep [软件名]
安装软件(以[]为例):yum install []
删除软件:yum remove []或者yum erase []
升级软件:yum update []或者yum update []
查询信息:yum info []

rpm包管理
rpm -qa | grep [软件名] //查询指定软件版本
rpm -ivh [安装包全路径] //安装RPM包,i-install安装 v-verbose提示 h-hash进度
rpm -e [软件名] //卸除软件包 --nodeps 强制删除
-qa查询软件包 -qi查询软件包参数 -ql查询软件包中的文件 -qf[路径名]查询文件所属软件包

压缩与加密
zip -r <将生成的>.zip <需要打包的文件路径>
openssl enc -aes-256-cbc -salt -in <将生成的>.zip -out <需要加密的>.zip

服务管理
setup//选择查看自启动服务
netstat -anp | more //查看监听的端口

top //动态监控进程,-d [秒数],-i[不显示闲置进程] -p通过指定监控进程ID来监控进程状态 P-CPU降序 M-内存降序 N-PID降序 q-推出top u+用户名-监控特定用户进程 k-杀进程

netstat [选项] //-an按一定顺序排列输出 -p显示那个进程在调用

CentOS6:
service [服务名][start|stop|restart|reload|status] //服务状态控制
chkconfig指令
在这里插入图片描述CentOS7:
systemctl [start启动|stop停止|restart重启|reload重载|status状态] [服务名] //服务状态控制
systemctl enable [服务名] //开启服务开机启动
systemctl disable [服务名] //关闭服务开机启动
systemctl is-enabled [服务名] //查询某个服务是否自启动
systemctl list-unit-files [|grep 服务名] //查看服务开机启动状态,grep过滤

防火墙Firewall
systemctl start firewalld.service //开启防火墙
systemctl enable firewalld.service //防火墙开机自启
systemctl is-enabled //检查是否开机自启
systemctl restart firewalld.service //重启防火墙
systemctl stop firewalld //临时关闭防火墙
systemctl disable firewalld //永久关闭防火墙
systemctl status firewalld //查看防火墙状态
firewall-cmd --zone=public --list-ports//查看防火墙已经开放的端口
netstat -aptn //查看开放的所有端口
firewall-cmd --permanent --add-port=[端口号] / [协议tcp/udp] //打开端口
firewall-cmd --permanent --remove-port=[端口号] / [协议tcp/udp] //关闭端口
firewall-cmd --reload //加载配置,每次配置完必须重加载
firewall-cmd --query-port=[端口号] / [协议tcp/udp]
sudo firewall-cmd --list-all //查看黑名单IP
firewall-cmd --permanent --remove-rich-rule=“rule family=“ipv4” source address=“192.168.10.101” port protocol=“tcp” port=“8099” accept” //删除防火墙规则
运维指令
df -h //查看磁盘使用空间
du -h //查询指定目录磁盘占用情况 -s占用大小汇总 -h带计量单位 -a含文件 -c汇总+明细
du -hac --max-depth=[深度1] [/指定查询目录] //查询子目录深度及大小
磁盘情况-常用命令
cat /proc/cpuinfo //CPU info信息
cat /proc/swaps //哪些被swaps使用
cat /proc/net/dev //网络适配器及统计
cat /proc/meminfo //校验内存使用
cat /proc/version //内核的版本
cat /proc/mounts //已加载的文件系统
ps -aux 基于用户格式显示、显示所有进程不以终端区分、显示关联进程(CPU、内存等)
ps -ef 显示所有进程、显示完成格式的输出

在这里插入图片描述Hosts映射
linux
/etc/hosts 文件指定在这里插入图片描述windows
C:\Windows\System32\drivers\etc\host
在这里插入图片描述ipconfig /displaydns //DNS域名解析缓存
ipconfig /flushdns //手动清理DNS缓存

vm编辑器命令

vi//查看
vim//编辑
yy //复制当前行,复制几行123.(输入P黏贴)
dd//删除当前行
u //回撤撤销
/关键字 //查找命令
输入数字,在输入shift+g,跳转行号。
:set nu //显示行号
:set nonu//关闭行号
G//跳转末行
gg//跳转首行
在这里插入图片描述

用户管理命令

useradd 创建用户 -d指定目录 -g 指定用户组
passwd 用户名 //root下输入 指定用户密码
userdel //删除用户 -r 同时删除用户目录
who am i //查询登录用户时间
id 用户名//查询用户ID和组
groupadd //创建用户组
groupdel //删除组名
usermod -g 用户组 用户名//修改用户组
usermod -d 目录名 用户名 //修改该用户登录的初始目录
chown [所有者] [文件/目录] //改变文件所有者
chown [所有者]:[组名] [文件/目录] //改变目录所有者和组 -R递归
chgrp [组名] [文件/目录] //改变文件或目录所在组
r=4 w=2 x=1 rwx=4+2+1=7
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述修改文件/目录权限

r=4 w=2 x=1 rwx=4+2+1=7在这里插入图片描述

新增用户赋root权限
/etc/passwd uid gid 改为 0 0
在这里插入图片描述

mkdir //创建目录 -p创建多层目录
rm //删除,-r 递归删除整个文件夹 -f 强制删除
touch //创建空文件
cp []source dest//拷贝指令 -r 递归复制整个文件夹,强制覆盖不提示:\cp
mv //移动文件或重命名
cat //查看文件内容 -n 显示行号 |more
ls -asl //查看文件所有者
chown [用户名][文件名] //修改文件所有者
chgrp [组名][文件名] //修改文件所在组
在这里插入图片描述less //动态加载,适用于查看大文件 page up/down在这里插入图片描述
echo [选项] [输出内容]//输出内容到控制台,如输出环境变量:echo $PATH
head [文件] //显示文件开头部分的内容。 head -n 5 文件,展示头5行。
tali[文件] //显示文件中尾部内容,tali head -n 5 文件,展示后5行,-f 实时监控文件变化。
ls -l > 文件 //内容覆盖写入文件
ls -al >> 文件 //列表的内容追加到文件末尾
cat 文件1>文件2 //文件1内容覆盖到文件2
echo “内容”>>文件 //追加写入
在这里插入图片描述修改ssh默认端口
vim /etc/ssh/sshd_confg
vim /etc/ssh/ssh_confg
systemctl restart sshd.service
systemctl restart ssh.service
systemctl status sshd.service //查看服务端口
ln指令
软连接也成为了符号链接,类似于Windows里的快捷方式,主要存放了连接其它文件的路径。
ln -s [源文件或目录][软连接名]
history //查看历史命令 ![指令行号] 再次执行

显示时间命令date
date -s “2024-11-18 15:41:30” //设置系统时间
cal //显示日历 cal [年份]
设置时间手动同步
1.1、使用date命令修改系统时间
date -s “2024-08-24 12:00:00”
1.2、使用hwclock命令修改硬件时钟(防止系统重启后修改的时间失效)
hwclock --set --date “2024-08-24 12:00:00”
1.3、将硬件时钟同步到系统时间
hwclock --hctosys
根据时间服务器自动同步
2.1、安装ntpdata指令
#yum安装
yum install ntpdate
#apt-get安装
apt-get install ntpdate
2.2、同步时间
#同步时间
ntpdate time1.aliyun.com
修改时区
3.1、查看当前时区
[root@localhost ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 35 8月 16 16:19 /etc/localtime -> …/usr/share/zoneinfo/Asia/Shanghai
3.2、修改时区
#方式一:直接修改/etc/localtime文件‌链接的时区文件
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#方式二:使用timedatectl命令‌
timedatectl set-timezone Asia/Shangha
在这里插入图片描述查找
find / [搜索范围][选项][目标] //查找。
-name查文件 //find /home -name hello.txt
-user<用户名>用户所有文件 //find /opt -user nobody 在opt目录下查找nobody的文件
-size<大小> //find / -size +200M

locate [查找文件] //使用前必须执行updatedb创建locate数据库。

which [需查找的命令] //查找命令位置

grep [选项] 查找内容源文件//grep过滤查找,|管道符。

压缩/解压
zip [选项] [压缩后文件名] [压缩目标] //压缩文件或文件夹,-r:递归压缩,即压缩整个目录。
unzip [选项] [目标位置] [解压目标]//解压,-d<目录>指定解压位置

gzip //压缩文件,.gz
gunzip //解压文件

tar [选项][***.tar.gz][压缩目标] //打包指令,-c打包,-x解包
打包:tar -zcvf [文件名.tar.gz] [/文件路径]
解包:tar -zxvf [解压文件名.tar.gz] [-C指定解压位置] [/文件解压路径]
在这里插入图片描述定时任务
crond定时任务调度
crontab [选项] //-e编辑定时任务 -l查询定时任务 -r删除当前用户所有crontab任务
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述at定时任务(一次性,只会执行1次)
at [选项][时间] //Ctrl+D 结束at命令输入
at命令是一次性的定时任务,at的守护进程atd会以后台模式运行。
默认情况下,atd守护进程每60秒检查作业队列。
ps -ef | grep atd //可以检测atd是否在运行
atq //查看定时任务,需ROOT权限
atrm [] //删除临时任务
在这里插入图片描述在这里插入图片描述硬盘挂载
lsblk //查看分区 -f查看uuid
fdisk /dev/sdb //分区命令
m-显示命令列表 p-显示磁盘分区 同fdisk- l n-新增分区 d-删除分区 w-写入并推出
说明:开始分区后输入n,新增分区,然后选择p,分区类型选为主分区。两次回车默认剩余全部空间。最后输入w写入分区并推出,若不保存推出输入q。
mkfs -t ext4 /dev/sdb1 //格式化分区获取uuid
mount /dev/sd[需挂载硬盘] /[挂载根目录] //临时挂载分区
永久挂载:通过修改/etc/fstab实现挂载,添加完成后,执行mount -a即刻生效。
在这里插入图片描述umount [/dev/需要卸载的分区]//卸载分区
在这里插入图片描述在这里插入图片描述

找回ROOT密码

————————————————
原文链接:https://blog.youkuaiyun.com/QQ2232958394/article/details/137352660
————————————————
解决方法

    1 使用其他具有sudo权限的用户解锁root用户
    2 使用GRUB引导加载器进入救援模式重置密码
    3 使用安装盘/U盘启动系统并重置密码
    4 通过NFS挂载根文件系统修改/etc/shadow文件

部分模块简介
sudo是Linux系统中用于权限管理的重要工具,它允许非root用户以特定身份执行特定的命令或访问系统资源。
GRUB是一个Linux系统中广泛使用的引导程序(bootloader),GRUB作为Linux系统的标准引导程序,提供了强大而灵活的功能来管理和控制系统的启动过程。它的配置文件允许用户根据自己的需要进行调整,从而满足不同的启动需求和偏好。
救援模式是GRUB提供的一个特殊启动选项,它允许用户在系统无法正常启动时进行修复或排题。救援模式是在系统出现问题时一个非常有用的诊断和修复工具。它提供了一种安全的方式来尝试解决问题,而不会进一步损坏系统。
NFS(Network File System)是一种网络文件系统协议,允许在不同的计算机和操作系统之间通过网络共享文件。NFS最初由Sun Microsystems公司于1984年开发,并在UNIX操作系统中广泛使用。它的主要目的是简化文件共享过程,使得用户可以透明地访问远程服务器上的文件,就如同访问本地存储一样。

具体操作
方法一:使用其他具有sudo权限的用户
1.以具有sudo权限的用户登录系统
2.打开终端
输入
$ sudo passwd root
根据提示输入新的root用户密码
出现successfully提示表示成功
方法二:使用GRUB引导加载器进入救援模式重置密码
1.打开GRUB引导界面
2.输入e进入编辑引导参数界面,在Linux16一行行尾UTF-8后,增加下方增加参数,ctrl+x重启
init=/bin/bash
4.重新挂载根目录
mount -o remount,rw /
5.更改root密码
passwd root
6.重新标记环境值
touch /.autorelabel
7.重启系统
exec /sbin/init

exec /sbin/reboot

方法三:使用安装盘/U盘启动系统并重置密码

1.打开GRUB引导界面

2.输入e进入编辑引导参数界面

3.选择Linux ($root) …那一行,ctrl+e让光标移动到该行的行尾位置

输入内核参数

rd.break (enforcing)=0

  1. 完成编辑,使用ctrl+x启动系统

(1)输入普通用户密码

(2)重新挂载文件系统

mount -o remount,rw /sysroot

(3)改变系统临时目录为挂载目录

chroot /sysroot

(4)修改root密码

passwd root

(5)重新挂载SELiunx环境值

touch /.autorelabel

(6)执行exit退出chroot环境,再次执行重启系统

exit

方法四:通过NFS挂载根文件系统修改/etc/shadow文件

    要通过NFS(Network File System)挂载根文件系统修改/etc/shadow文件,需要按照以下步骤进行操作:

客户端设置:

    在客户端上安装NFS客户端软件。
    创建一个用于挂载的空目录,例如 /mnt/nfs。
    使用以下命令挂载NFS共享:

mount -t nfs <nfs_server_ip>:/var/nfs/root /mnt/nfs

其中<nfs_server_ip>是NFS服务器的IP地址。

修改/etc/shadow文件:
在客户端上,使用文本编辑器打开/mnt/nfs/etc/shadow文件。
修改该文件中的密码字段,将其设置为明文或加密后的密码。
保存并关闭文件。
验证修改:
重新挂载根文件系统,以确保更改生效。
检查系统是否已成功应用了对/etc/shadow文件的修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值