自学内容网 自学内容网

linux基础

一.文件管理

创建文件:touch newfile

删除文件:rm newfile

新建目录:mkdir newfile

删除目录:rmdir newfile

重命名文件:mv file.txt new.txt

移动文件:mv newfile newdir2

复制文件:cp file.txt new.txt

软连接:

硬链接:

查找文件:

  1. Which Echo $path

Which作用为查找命令的可执行文件路径,例如你想知道“ls”命令在系统中的具体位置,可以使用“which ls”。

“echo $path”

echo 是用于输出内容的命令

“path”所列出输出内容的命令

locate(local.db)

“locate”命令用于快速查找文件,它通过查询一个预先构建的文件数据库来实现。

`locate(local.db)` 这个命令看起来像是在Linux系统中使用的`locate`命令的一个例子,用于查找名为`local.db`的文件。`locate`命令是一个基于数据库的文件查找工具,它允许你快速查找文件系统中的文件和目录。

这里是一些关于`locate`命令的基本用法:

1. **基本查找**:

   ```bash

   locate filename

   ```

   这将搜索名为`filename`的文件。

2. **大小限制**:

   ```bash

   locate -b filename

   ```

   这将只显示大小为1块(通常是1024字节)或更大的文件。

3. **忽略大小写**:

   ```bash

   locate -i filename

   ```

   这将执行不区分大小写的搜索。

4. **使用正则表达式**:

   ```bash

   locate 'regex'

   ```

   你可以使用正则表达式来搜索文件名。

5. **更新数据库**:

   ```bash

   sudo updatedb

   ```

   `locate`命令依赖于一个预先构建的数据库,这个数据库可以通过`updatedb`命令更新。

请注意,`locate`命令的效率取决于数据库的更新频率。如果数据库很久没有更新,那么它可能不会包含最新的文件。此外,`locate`命令可能需要管理员权限来访问某些目录,特别是在使用`updatedb`命令更新数据库时。

Sudo updatedb

sudo 是用于以管理员权限执行命令的前缀

updatedb用于更新“locate”命令所使用的文件数据库。这个操作可能会费点时间,因为它会扫描整个文件系统并将文件信息添加到数据库中。

locate whoami.exe

使用locate 命令查找文件名位whoami.exe的文件在系统中的位置。如果系统中有这个文件,该命令会输出其路径。

find ~ -mtime 2 -ls | sort -k9 -k10 | more

find表示在用户主目录(‘~’代表主目录)下进行查找。

-mtime 2表示查找在两天内被修改过的文件

-ls 用于以长列表形式显示找到的文件信息。

| 管道符,前面结果做后面输出。

sort -k9 -k10 是按照第九列和第十列的内容对文件信息进行排序。

more 用于分页显示结果,方便查看。

find. -type f -iname ‘*.sh’ -mmin -30 -ls

find. 在当前目录下查找

-type f表示查找类型位普通文件

-iname ‘*.sh’  查找.sh结尾的文件名,*是通配符,代表任意长度的任意字符

-mmin -30表示查找在30分钟内被修改过的文件

-ls以长列表形式显示找到的文件信息

find . -name ‘*.svn’ -exec rm -rf {} \;

find. 在当前目录下查找

-name查找文件名位“.svn”的文件或目录

-exec rm -rf {} \;:对找到的每个文件或目录执行rm -rf命令,{}是一个占位符,代表find命令找到的每个文件或目录的名称。

find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null

find / 查找/根目录下的文件

-user root查找所有者为root的文件

-type f 表示查找为普通文件

-perm -o=w 表示查找其他用户有可写权限的文件

-name '*.sh' 查找文件“*.Sh”结尾的文件

  1. /dev/null 将错误输出重定向到/dev/null,即不显示错误

二.用户数据库

/etc/passwd:存储系统中用户账号的基本信息

每行代表一个用户,包含了用户名、密码占位符、用户id、用户描述信息、等字段

/etc/shadow:主要存储用户密码的加密信息以及密码的一些属性,如密码最后一次修改时间,密码最短使用期限、密码最长使用期限等。

通常只有root用户才能读取这个文件,以提高密码安全性

组账号相关命令

Cat /etc/group查看用户账户信息的同时,也间接了解用户所属组信息,因为其中包含了用户组id。但这并不是查看组账户信息的最佳方式,通常使用cat /etc/group来查看组账户信息

  • 禁用账户相关命令

sudo passwd -l username:

Sudo以管理员权限执行命令

Passwd用于管理用户密码的命令

-l用于锁定用户账户

Username指定被锁定的用户账户,被锁定后无法登录系统

chage -E 1990-01-01 kali

chage用于更改用户密码过期信息

-E后面跟日期,表示设置用户账户的过期时间。在这个例子中,将kali用户账户的过期时间设置为1990-01-01,通常意味着在这个日期之后该账号将无法使用,除非重新设置

passwd -S username

-S用于显示指定用户账号的密码状态信息,包含账户是否被锁定、密码是否已设置、密码最后一次修改时间等

文件系统权限

Linux系统中一切皆文件

查看权限: ls -la /etc/passwd

更改文件所有者

Chown root file

修改文件权限

sudo chmod u=rwx,g+rw,o-r file

同样以管理员权限执行修改文件权限的操作

U=rwx表示文件所有者具有可读(r)可写(w)可执行(x)权限

g+rw表示给文件所属组增加可读可写权限

o-r表示其他用户去除掉可读权限

Chmod 400 file

chmod命令直接以数字方式设置文件权限

400是权限的数字表示,其中第一位数字‘4’表示文件所有者的权限,这里代表可读(r),

后面文字代表所属组和其他用户的权限

系统日志

ls -l /var/log

认证信息日志

sudo tail -3 /var/log/auth.log

二进制日志相关命令

who /var/log/wtmp | tail -5  

who显示当前登录的用户信息

/var/log/wtmp是一个二进制日志文件,记录了系统的登录与注销信息

|管道符,将前一命令的输出作为后面命令的输入

四.dmesg

dmesg这个命令用于显示内核环形缓冲区(kernel ring buffer)中的信息,包括系统启动时的硬件监测信息、内核模块加载信息、设备驱动的初始化信息,它可以帮助用户了解系统的硬件状态和内核的运行情况

五.Systemd日志相关命令

Journalctl:用于查看和管理systemd日志的命令,systemd是Linux系统的初始化系统和服务管理器,它会记录系统和服务的启动、运行和错误信息等日志。journalctl可以根据不同参数来筛选、查看特定时间段、特定服务或特定优先级的日志记录

存储管理

内存使用量:free -m

free命令用于显示系统内存的使用情况

-m选项表示以兆字节(MB)为单位显示内存信息。执行这个命令后,会显示系统总内存、已使用内存、缓冲内存等信息

磁盘使用量

df -hT

df命令用于显示磁盘空间使用情况

-h参数表示以人类可读的格式(如KB、MB、GB、等)显示磁盘空间大小

-T参数显示文件系统类型,执行这个命令可以查看各个磁盘分区的总大小,已使用空间以及文件系统类型等信息

文件或目录大小

sudo du . /* -hsc

sudo以管理员权限执行命令

du命令用于统计文件或目录的磁盘使用空间

./*表示当前目录下的所有文件大小

-s表示汇总显示每个参数的总大小

-c表示在最后显示总计。执行这个命令可以查看当前目录下每个文件和目录大小,并最后显示总计大小

查看硬盘分区

Sudo fdisk -l

fdisk是一个磁盘分区工具

-l表示列出系统中所有磁盘分区信息,包括磁盘大小,分区类型,分区编号,起始和结束分区等。这个命令可以帮助用户了解系统的磁盘

基本网络枚举

基本网络工具

Ifconfig

ip addr

sudo ifdown eth0

sudo ifup eth0

网络配置

/etc/network/interfaces

Nettworkmanager

基本网络工具

ifconfig:是一个用于配置显示网络接口信息的命令行工具,它可以显示网络接口的IP地址,子网掩码,mac地址等信息,还可以启动、停止或配置网络接口

ip addr:也是用于查看和管理网络接口的命令,它提供了比ifconfig更详细和更灵活的网络接口信息显示,包括接口的状态、IP地址、子网掩码、广播地址等

sudo ifdown eth0:关闭网络接口

sudo ifup eth0:启动网络接口

网络配置

/etc/network/interfaces:这是给系统文件,用于配置网络接口的静态IP地址,子网掩码等

NetworkManager:是一个动态网络控制和配置守护进程,它可以自动管理网络连接,包括有线网络,无线网络和VPN连接

网络连接状态查看工具

Netstat -natup

netstat是一个用于显示网络连接、路由表、接口统计等信息的命令

-n表示以数字形式显示地址和端口号,避免进行域名解析

-a显示所有的连接和监听端口

-t显示TCP连接

-u显示UDP连接

-p显示与连接相关的进程ID和程序名称。执行这个命令可以查看当前的网络连接状态,包括连接的协议、本地地址和端口、远程登陆和端口信息等

 ss -natup

ss是另一个显示网络套接字状态的工具,它比netatat更快速和高效

二层地址查看工具

arp -en

Arp是地址解析协议的工具

-e以详细格式显示arp缓存表

-n以数字形式显示IP地址,避免进行域名解析,执行这个命令可以查看系统arp缓存表,其中包含了IP地址和对应的mac地址映射关系,用于在二层进行地址解析

路由信息相关工具

route:用于显示和管理系统的路由表,可以查看系统当前的路由信息,包含目标网络,网关,子网掩码等,还可以用于添加、删除或修改路由条目

ip route:是IP命令的一部分,用于管理系统的路由表,它提供了更强大和灵活的路由管理功能,可以进行更复杂的路由配置操作

 路由跟踪工具:traceroute offensive-security.com

traceroute:是一个用于跟踪数据包从本地主机到目标主机所经过的路由路径的工具

offensive-security.com:是目标主机的域名或ip地址,执行这个命令会逐条显示数据包经过的路由器的ip地址和响应时间,帮助用户了解网络连接的路径和可能存在的网络问题

 启动服务:sudo systemctl start ssh

systemctl:用于管理系统服务的工具

start ssh启动名为ssh的服务,也就是启动SSH服务,使得其他设备可以通过ssh协议进行连接

ssh root@localhost:以root身份连接到本机

 配置文件 /etc/ssh/sshd_config

客户端配置hashknowHost yes:通常情况下,/.ssh/know_hosts文件用于存储一直的远程主机的公钥信息,以确保连接的安全性。这个配置选项可能是指对已知主机文件中的主机名进行哈希处理,这样可以提高一定的安全性,但具体效果可能因不同的SSH实现而有所差异

~/.ssh:这是用户目录下的一个目录,用于存储ssh客户端的配置和相关文件,通常包含私钥文件(id_rsa),公钥文件(id_rsa.pub)以及已知主机文件(know_hosts)等。这些文件用于ssh客户端的身份认证和连接管理。

远程拷贝

scp root@1.1.1.1:/home/kali/.bashrc copiedbashrc

scp passwd -p kali ssh root@127.0.0.1

history

scp是secure copy的缩写,用于在不同主机之间安全的复制文件

root@1.1.1.1:表示从ip地址1.1.1.1的主机上以root用户身份进行操作

/home/kali/.bashrc是源文件路径,即要从远程主机上复制的文件

copiedbashrc是目标文件名称或路径,即将远程文件复制到本地后的名称或存放位置。这个命令会从指定的远程主机复制.bashrc文件到本地,并命名为copiedbashrc

scp passwd -p kali ssh root@127.0.0.1:远程连接passwd -p kali的机器密码 root权限的ip

查看历史命令:history


原文地址:https://blog.csdn.net/wyb17870531028/article/details/143571058

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!