当前位置: 首页 > news >正文

Linux基础

 声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章

声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律法规。

感谢泷羽sec 团队的教学
视频地址:linux基础(1)_哔哩哔哩_bilibili

 一、openssl

openssl是 Kali Linux(以及许多其他 Linux 发行版)中广泛使用的命令行工具,用于执行加密、解密和其他加密操作。它基于 OpenSSL 库构建,该库实现了安全套接字层 (SSL) 和传输层安全 (TLS) 协议以及各种加密算法和标准。

下面是对密码进行加密的简单演示:

MD5 是一种广泛使用的哈希算法,它可以将任意长度的输入数据转换为固定长度的输出,通常是 128 位(16 字节)的哈希值。

openssl passwd -1 123

这个命令用于生成一个基于 MD5 的密码哈希。

  • passwd:这是 OpenSSL 的一个子命令,用于处理密码。
  • -1:表示使用 MD5 哈希算法。
  • 123:这是要哈希的明文密码。

$1$VjoPProL$4tgNpt1OLJC7WbHG96pRO0

  • $1$:表示 MD5 哈希格式。
  • VjoPProL:这是一种盐,是添加到哈希中的随机字符串,以增加安全性。
  • 4tgNpt1OLJC7WbHG96pRO0:这是经过 MD5 哈希处理后的密码。它是一个固定长度的字符串,通常表示为 32 个字符(128 位)。

openssl passwd -5 123

该命令 用于生成一个基于 SHA-256 的密码哈希。

  • openssl:调用 OpenSSL 工具。
  • passwd:表示要处理密码。
  • -5:指定使用 SHA-256 哈希算法(比 MD5 更安全)。
  • 123:这是要哈希的明文密码。

$5$BbzDx274X49hbAin$7d9RfwTInc7n8U/1Hgc6tr2/KEfIqaFEZqDCzilLZ19

  • $5$ :表示使用 SHA-256。
  • BbzDx274X49hbAin:是随机生成的盐值,用于防止彩虹表攻击。
  • 7d9RfwTInc7n8U/1Hgc6tr2/KEfIqaFEZqDCzilLZ19:是哈希后的密码。

二、Linux基础命令

文件管理相关命令 
1.创建空文件

touch filename

命令:touch newfile.txt

  • touch命令用于创建文件或更新现有文件的时间戳
  • newfile.txt是要创建的空文件名,如果文件已经存在,则更新其最后修改时间

2. 删除文件

rm filename

命令:rm newfile.txt

  • rm命令用于删除文件。
  • newfile.txt是要删除的文件名。

命令:rm -rf /tmp/new/newfile.txt

  • -r参数表示递归删除目录及其内容
  • -f参数表示强制删除,不提示确认

3. 新建目录

mkdir directory_name
命令:mkdir new

  • mkdir命令用于创建目录
  • new是要创建的目录名

命令:mkdir -p /tmp/a/b/c

  • -p参数用于递归创建目录树,如果路径中的一些目录不存在,mkdir将自动创建它们。

4. 删除空目录

rmdir directory_name
命令:rmdir new

  • rmdir命令用于删除空目录
  • new是指定要删除的空目录名。注意,rmdir只能删除空目录。

5. 重命名文件

mv old_name new_name
命令:mv oldfile.txt newfile.txt

  • mv命令用于移动或重命名文件
  • oldfile.txt是原文件名
  • newfile.txt是新文件名

6. 移动文件 

mv filename /path/to/destination
命令:mv newfile.txt /tmp/a/b/c

  • mv命令用于移动文件或目录
  • newfile.txt是要移动的文件
  • mv newfile.txt /tmp/a/b/c是目标目录路径

7. 拷贝文件

cp source_file destination_file
命令:cp newfile.txt backup_file.txt

  • cp命令用于复制文件或目录。
  • newfile.txt是源文件
  • backup_file.txt是复制后且重命名的文件

命令:cp -r /tmp/a/b/c /tmp/

  • -r参数表示递归复制目录及其内容。
  • /tmp/a/b/c是源文件所在目录
  • /tmp/是复制后的文件所在目录

8. 创建软链接

ln -s target link_name
命令:ln -s /usr/local/bin/pip /usr/bin/pip

  • -s参数创建符号链接(软链接)
  • /usr/local/bin/pip是目标文件
  • /usr/bin/pip是符号链接名称
  • 使用ls -l这个命令会列出文件的详细信息,包括链接。对于软链接,它会显示链接指向的目标文件路径。

 

9.创建硬链接

ln target link_name
命令:ln newfile.txt hardlink.txt

  • ln命令创建硬链接。
  • file.txt是目标文件,
  • hardlink.txt是硬链接名称。
  • 使用 ls -li 命会显示文件的详细信息,包括文件的inode号。硬链接具有相同的inode号。

 

10. 软链接和硬链接的区别
硬链接(Hard Link)
  • 同一文件系统:硬链接必须指向同一文件系统中的文件。
  • 共享inode:硬链接指向的是文件的inode,它们共享相同的inode和数据块,因此硬链接实际上并不占用额外的磁盘空间。
  • 删除限制:只要至少有一个硬链接存在,文件数据就不会被删除。即使删除了创建硬链接的原始文件,数据仍然会保留,直到所有硬链接都被删除。
  • 文件名不变:硬链接创建后,文件名不会改变,即使原始文件被重命名或移动。
  • 权限继承:硬链接继承原始文件的权限。
  • 不支持目录:不能对目录创建硬链接,因为这可能导致文件系统遍历问题。
软链接(Symbolic Link)
  • 跨文件系统:软链接可以指向不同文件系统的文件。
  • 独立路径:软链接包含目标文件的路径,因此它们不共享inode,实际上是一个独立的文件。
  • 删除独立:软链接删除后不会影响目标文件,目标文件删除后软链接会变成“死链接”。
  • 文件名变化:如果目标文件被移动或重命名,软链接将不再有效。
  • 权限独立:软链接有自己的权限,与目标文件的权限无关。
  • 支持目录:可以对目录创建软链接。
文件搜索工具及参数 
1. which

命令:which ls

  • which命令查找命令的可执行文件路径
  • ls是要查找的命令

2. echo $PATH

命令:echo $PATH

  • echo命令输出字符串或变量值
  • $PATH`是环境变量,包含可执行文件查找路径

3. locate

locate 命令通过数据库查找文件

命令:locate  -i  *.img

  • locate命令通过数据库快速查找文件
  • -i忽略大小写搜索
  • *.img是要查找的文件名

4. find

命令:find . -type f -iname '*.sh' -mmin -30 -ls

  • .是当前目录,
  • -type f查找文件,
  • -iname '*.sh'`查找以.sh结尾的文件,忽略大小写
  • -mmin -30查找过去30分钟内修改的文件
  • -ls列出文件详细信息。

命令:find . -name '*.svn' -exec rm -rf {} \;

  • -name '*.svn'`查找.svn文件或目录
  • -exec`对每个找到的文件执行命令
  • rm -rf {}删除找到的文件或目录
  • \;结束-exec命令

用户和组账号管理
1. /etc/passwd

命令:cat /etc/passwd

  • /etc/passwd是用户账户数据库文件,包含用户名、UID、GID、主目录和登录Shell

2. /etc/shadow

命令:cat /etc/shadow

  • /etc/shadow包含用户密码的加密信息及密码策略,只有root用户可以访问

3. cat /etc/group

命令:cat /etc/group

  • /etc/group是组账户数据库文件,包含组名、GID和组成员

 

4. sudo passwd -l username

命令:sudo passwd -l tom

  • -l参数锁定用户,使其无法登录,tom是要锁定的用户名

5. chage -E 1900-01-01 username

命令:chage -E 2025-01-01 tom

  • -E 1900-01-01参数将用户tom的密码过期日期设置为2025年1月1日

6. passwd -S username

命令:passwd -S tom

  • -S参数显示用户tom的密码状态

文件系统权限
1. 查看权限

ls -la
命令:ls -la
-l参数长格式显示文件信息,包括权限、所有者、大小等

-a参数显示所有文件,包括隐藏文件(以.开头的文件)

2. 更改文件所有者 

chown root file
命令:sudo chown tom dd.zip

  • chown命令更改文件或目录的所有者
  • tom是新所有者
  • dd.zip是要更改所有者的文件名

3. 修改文件权限

chmod
命令:chmod u=rwx,g+rw,o-r anaconda-ks.cfg

  • u=rwx参数设置用户(所有者)具有读、写、执行权限
  • g+rw参数设置组增加读、写权限
  • o-r参数设置其他用户移除读权限

命令:chmod 400 anaconda-ks.cfg

  • 400设置所有者具有读权限,其他用户无权限

系统日志管理
1. 查看日志文件

ls -l /var/log
命令:ls -l /var/log

  • /var/log是系统日志文件所在目录,包含系统、认证、内核等日志文件
  • ls -l长格式列出目录下的日志文件

2.认证日志

sudo tail -3 /var/log/auth.log
命令:sudo tail -3 /var/log/auth.log

  • /var/log/auth.log保存认证相关的日志文件
  • tail -3查看日志文件的最后3行

3. 二进制日志

who /var/log/wtmp | tail -5
命令:who /var/log/wtmp | tail -5

  • /var/log/wtmp保存登录和登出事件的二进制日志文件
  • who显示登录用户
  • tail -5显示最后5条记录

4. 系统日志 

dmesg

命令:dmesg

  • dmesg显示系统启动过程中产生的内核日志信息

5. systemd 日志

journalctl
命令:journalctl -xe

  • -x参数显示详细的日志信息
  • -e参数跳转到日志的末尾

内存和磁盘管理
1.内存管理

free -m
命令:free -m

  • -m参数以MB为单位显示内存使用情况
2. 查看磁盘使用情况 

df -hT
命令:df -hT

  • -h参数以人类可读的格式显示(如GB、MB)
  • -T参数显示文件系统类型

3.查看文件或目录大小

sudo du ./* -hsc
命令:sudo du ./* -hsc

  • -h参数以人类可读的格式显示大小
  • -s参数显示每个文件或目录的总大小
  • -c参数显示所有项目的总和

4. 查看磁盘分区

sudo fdisk -l

命令:sudo fdisk -l

  • fdisk -l列出所有磁盘的分区信息

 

5. 挂载分区

sudo mount /dev/sdb1 /mnt/usb
命令:sudo mount /dev/sdb1 /mnt/usb

  • dev/sdb1是要挂载的设备分区
  • /mnt/usb是挂载点,使用sudo mkdir /mnt/usb,创建挂载点

网络工具
1. 查看网络接口

ifconfig / ip addr
命令:ifconfig

  • fconfig显示网络接口配置

命令:ip addr

  • ip addr显示网络接口详细信息

2.启用/禁用网络接口

sudo ifdown ens33 / sudo ifup ens33
命令:sudo ifdown ens33

  • ifdown禁用网络接口ens33

命令:sudo ifup ens33

  • ifup启用网络接口ens33

3. 查看网络配置

/etc/network/interfaces
命令:cat /etc/network/interfaces
/etc/network/interfaces`是网络接口配置文件

4. 查看网络连接

netstat -natup / ss -natup
命令:netstat -natup

  • netstat命令数字方式显示地址
  • -n参数数字方式显示地址
  • -a参数显示所有连接
  • -t参数显示TCP连接
  • -u参数显示UDP连接
  • -p参数显示与连接相关的进程信息

命令:ss -natup

  • ss命令数字方式显示地址
  • -n参数数字方式显示地址
  • -a参数显示所有连接
  • -t参数显示TCP连接
  • -u参数显示UDP连接
  • -p参数显示与连接相关的进程信息

5.查看 ARP 表

arp -en
命令:arp -en

  • arp命令显示 ARP 缓存(IP 地址到 MAC 地址的映射)
  • -e参数显示 ARP 表
  • -n参数以数字方式显示 IP 地址

6. 查看路由表

route / ip route
命令:route

  • route命令显示或修改路由表。

命令:ip route

  • ip route命令显示路由表的现代命令

7.添加静态路由

sudo ip route add 10.13.37.0/24 dev ens33
命令:sudo ip route add 10.13.37.0/24 dev ens33

  • 10.13.37.0/24是目标网络
  • dev ens33是通过ens33接口转发流量

8.追踪路由

traceroute offensive-security.com
命令:traceroute offensive-security.com
traceroute命令显示数据包到目标主机的路径

SSH服务
1. 启动服务

命令:sudo systemctl start ssh

  • systemctl命令启动服务
  • ssh是服务名 

2.连接SSH

命令:ssh root@localhost

  • ssh命令连接SSH服务 
  • root@localhost是以root用户连接本地主机

3. 配置文件

命令:cat /etc/ssh/sshd_config

  • /etc/ssh/sshd_config是SSH服务的配置文件

4.客户端配置

 命令:hash knownHosts yes

  • hash knownHosts yes 是一个用于配置SSH客户端的命令,它放在SSH配置文件中,用于告诉SSH客户端在 ~/.ssh/known_hosts 文件中存储远程主机公钥的哈希值,而不是存储完整的公钥。 
5. 远程拷贝

命令:scp root@1.1.1.1:/root/apache.txt new.txt

  • scp命令远程拷贝文件
  • root@1.1.1.1:/root/apache.txt是源文件路径
  • new.txt是目标文件名
  • 该命令用于从远端服务器上拉取文件到本地

命令:scp 0708.txt root@10.0.0.0:/root

  • scp命令远程拷贝文件
  • root@10.0.0.0:/root是所要放到的远程服务器上的目录
  • 0708.txt是本地文件名
  • 该命令把本地文件推送到远程服务器上

6. 查看历史命令

 命令:history

  • history命令显示用户的历史命令列表 

 


http://www.mrgr.cn/news/68870.html

相关文章:

  • 可视化建模与UML《顺序图实验报告》
  • 虚幻引擎 CEO 谈元宇宙:发展、策略与布局
  • 机器学习—sigmoid的替代品
  • 高效集成:聚水潭采购数据同步到MySQL
  • 【Ant Design Pro】框架思维导图
  • 云计算答案
  • 闯关leetcode——3194. Minimum Average of Smallest and Largest Elements
  • c++17文件系统
  • 什么是 eCPRI,它对 5G 和 Open RAN 有何贡献?
  • 计算机毕业设计Python流量检测可视化 DDos攻击流量检测与可视化分析 SDN web渗透测试系统 网络安全 信息安全 大数据毕业设计
  • PyQt入门指南四十六 性能优化策略
  • Day 56 || 99.岛屿数量、100.岛屿的最大面积
  • 【鉴权】深入了解 Cookie:Web 开发中的客户端存储小数据
  • 计算机毕业设计Python+Neo4j中华古诗词可视化 古诗词智能问答系统 古诗词数据分析 古诗词情感分析 PyTorch Tensorflow LSTM
  • RK3568平台开发系列讲解(设备树篇)设备树中CPU描述
  • //二维数组的遍历方式
  • pandas习题 054:将两个 DataFrame 导出到 Excel 的不同表
  • 【系统集成项目管理工程师】英语词汇对照表-项目管理类
  • Kubernetes 调度器调度策略的资源分配不均问题如何解决?
  • stm8开发笔记--STVD开发软件的安装
  • 针对oneplus6 怎么选择lineage源码的什么分支
  • vue3中配置svg图标
  • 公开仓库改私有再配置公钥后Git拉取仍需要输入用户名的问题
  • 【Linux】一篇文章轻松搞懂基本指令
  • 大牛直播SDK如何实现Android平台多路RTSP播放?
  • Python 连接 Redis 进行增删改查(CRUD)操作