本文最后更新于 2024-10-12,文章内容可能已经过时。

🐧Linux 常见的发行版

🎈Red Hat

官网:Red Hat - We make open source technologies for the enterprise

🎈Cent OS

官网:The CentOS Project

🎈Debain

官网:Debian -- 通用操作系统

🎈Ubuntu

官网:企业开源和 Linux | Ubuntu

🎈Kali

官网:Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution

🔳Linux Terminal(终端)

🎈打开终端

  • Ctrl+Alt+T

  • 右键 > 点击 Open Terminal

🎈终端内快捷键

  • 放大界面:Ctrl + Shift + [+=]

  • 清除内容:Ctrl + l

  • Ctrl +

  • Ctrl +

  • Ctrl +

🎈终端标识

当我们登录终端时可以看到类似以下这样的标识

(uash㉿Ash-Laptop)-[~] $

用户名 :uash

主机名 :Ash-Laptop

当前路径 :~

权限标识 :$

⌨️Linux 常用命令

🎈切换用户

su             #默认切换为root用户
su [用户名]    #切换指定用户

🎈查看当前目录

ls [参数] [路径]
# ls 不加任何参数,表示查询当前目录下的文件/文件夹
# ls 后面加上路径,表示查询该路径下的文件/文件夹

ls -l:以长格式显示目录中的内容。

# 文件类型和权限信息、链接数、文件所有者、文件所属组、文件大小(以字节为单位)、文件的最后修改日期和时间、文件名
ls -a:显示所有文件,包括隐藏文件(以.开头的文件)。

# 通常,Linux中以.开头的文件被视为隐藏文件。
ls -h:与-l一起使用,以人类可读的格式显示文件大小。例如,文件大小以K、M、G等单位显示,而不是字节数。
ls -i:显示每个文件的inode号。inode是文件系统中的一个概念,用于唯一标识文件。

# 链接文件
ls -S:按文件大小排序,大的在前面。默认情况下,ls命令按字母顺序排序。
ls -t:按时间排序,最新修改的在前面。默认情况下,ls命令按文件名排序。
ls -R:递归列出目录及子目录下的所有文件。该选项会深入子目录并显示其中的内容。
ls -d:显示目录本身,而不是其内容。默认情况下,ls命令会显示目录的内容,而不是目录本身

🎈查看当前所在路径

pwd

🎈切换目录

cd
cd [路径]

🎈修改主机名

hostname [主机名]    #临时修改主机名
vim /etc/hostname    #永久修改主机名

🎈查看文件内容

cat [文件名]    #查看文件内容

🎈重启

reboot

🎈关机

poweroff

🎈shutdown

shutdown [-t seconds] [-rkhncfF] time [message]
-t seconds : 设定在几秒钟之后进行关机程序。
-k : 并不会真的关机,只是将警告讯息传送给所有使用者。
-r : 关机后重新开机。
-h : 关机后停机。
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
-c : 取消目前已经进行中的关机动作。
-f : 关机时,不做 fsck 动作(检查 Linux 档系统)。
-F : 关机时,强迫进行 fsck 动作。
time : 设定关机的时间。
message : 传送给所有使用者的警告讯息。

🎈系统相关

cat /porc/*    #查看各种系统相关信息
fdisk -l       #查看硬盘信息
sectors        #扇区
Blocks         #快
free           #查看内存信息 

🎈系统服务相关

systemctl [操作] [服务名]
systemctl start      #启动服务
systemctl restart    #重启服务
systemctl stop       #暂停(重启失效)
systemctl status     #查看状态
systemctl enable     #自启服务
systemctl disable    #关闭服务

🎈查看网卡信息

ifconfig
ifconfig [网卡名称]
ip address

🎈创建文件

echo 内容 > 文件名    #创建文件
echo 内容 >> 文件名   #追加内容
touch 文件名          #创建空文件
vim 文件名

rm 文件名             #删除文件
rm -f 文件名          #强制删除文件

🎈创建、删除目录

mkdir 目录名      #创建目录
mkdir -p 1/2/3    #创建多级目录

rm -r 目录名      #删除目录
rm -rf 目录名     #强制删除目录

rmdir 目录名      #删除空目录

🎈重命名、移动、拷贝文件

mv 文件名 路径          #移动
mv 旧文件名 新文件名    #重命名
cp 旧文件名 新文件名    #备份

🎈压缩、解压缩文件

dd if=/dev/zero of=wenjian bs=1M count=100
- if -- 输入文件
- /dev/zero --- 特殊文件 --- 空字节设备 --- 填充无限制的二进制0 --- 空
- of --- 输出文件
- bs --- 文件大小
- count --- 次数

ll -h                 #查看文件的具体大小

gzip 文件名           #压缩文件
bzip2 文件名          #压缩文件

gunzip 压缩文件名     #解压缩文件
bunzip2 压缩文件名    #解压缩文件

tar -cf filename.tar 源文件(可以多个)         #打包
tar -tvf filename.tar/filename.tar.gz           #查看打包的内容
tar -zcvf filename.tar.gz 源文件(可以多个)    #打包并压缩
tar -xzvf filename.tar.gz                       #解压缩并解包

-c 打包
-f 指定压缩包的文件名
-t 查看压缩包内容
-v 显示过程
-z 使用gzip压缩
-j 使用bzip2压缩
-x 解包

+ 注意点:
文件.gz --- gunzip 解压
文件.bz2 --- bunzip 解压
文件.tar.gz --- tar 解压

相对于 gzip,bzip2 是一个压缩效率更高的命令,压缩文件占据的空间更小,所以需要的压缩时间要比 gzip 更久。

🎈文件查找命令

find [目录] [选项]
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。

🎈文件属性修改

chattr [选项] [文件]
选项
a:让文件或目录仅供附加用途。(适用于各种日志文件)
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录。(防止系统中某个关键文件被篡改)
s:保密性删除文件或目录。
S:即时更新文件或目录。
u:预防意外删除。

lsattr 查看文件状态

chattr +a 文件名 //增加属性
chattr -a 文件名 //删除属性

🛜修改网卡配置

在 CentOS 中一般需要对网卡进行配置

#配置文件位置
vim /etc/sysconfig/network-scripts/ifcfg-xxx

# DHCP 模式
TYPE=Ethernet       #配置因特网类型
BOOTPROTO=dhcp      #配置IP的方式 static
DEFROUTE=yes	    #默认路由
NAME=ens33          #网卡名称
DEVICE=ens33	    #设备名称
ONBOOT=yes		    #是否随着网络服务启动

#static 模式
TYPE=Ethernet       #配置因特网类型
BOOTPROTO=static    #配置IP的方式 dhcp
DEFROUTE=yes	    #默认路由
NAME=ens33          #网卡名称
DEVICE=ens33	    #设备名称
ONBOOT=yes		    #是否随着网络服务启动
IPADDR=  [IP地址]
NETMASK= [掩码]
GATEWAY= [网关]
DNS1=    [主DNS]
DNS2=    [副DNS]

systemctl restart network  #重启网络服务

🌐SSH 远程连接

#查看ssh状态
systemctl status sshd

ssh 用户名@IP

vim /etc/ssh/sshd_config  #ssh配置文件
Port 22
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::
PasswordAuthentication yes

🧩软件源

软件源,也就是软件仓库

网络源:存在于网络上的软件库,从网络上下载(联网)

本地源:本地的软件库(快速,防断网)

🎈CentOS

#更换源操作
cd /etc/yum.repos.d/      #切换到源的位置
mkdir repolist
mv *.repo repolist/

#下载源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

#备份阿里源
cp CentOS-Base.repo repolist/CentOS-Base.repo.aliyun

yum clean all  #清空缓存
yum makecache  #重新加载
yum repolist   #显示仓库

🎈Debian 系

大部分 Debian 的软件源配置文件使用传统的 One-Line-Style,路径为 /etc/apt/sources.list;但是对于容器镜像,从 Debian 12 开始,其软件源配置文件变更为 DEB822 格式,路径为 /etc/apt/sources.list.d/debian.sources。一般情况下,将对应文件中 Debian 默认的源地址 http://deb.debian.org/ 替换为镜像地址即可。

🎈常用源

清华源:清华大学开源软件镜像站

阿里源:阿里巴巴开源镜像站 -OPSX 镜像站 - 阿里云开发者社区

各家开源站有大多数发行版本的开源软件镜像,可以自行进入官网查看。

▶️开机 root 用户自动登入

#配置文件
vim /etc/gdm/custom.conf 

#修改内容
[daemon]
AutomaticLoginEnable=Ture    #是否启用自动登录
AutomaticLogin=root          #自动登录用户

修改完文件后保存退出,reboot 重启