
Linux 简介与基本命令
本文最后更新于 2024-10-12,文章内容可能已经过时。
🐧Linux 常见的发行版
🎈Red Hat
官网:Red Hat - We make open source technologies for the enterprise
🎈Cent OS
官网:The CentOS Project
🎈Debain
🎈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 重启