自学内容网 自学内容网

linux基础命令

Linux常用命令汇总(超详细

文件管理

ls命令 列出目录内容
ls 选项 文件/目录

选项:

  • -a:显示所有的文件和目录

  • -l:以长格式显示详细信息

  • -h:显示文件大小,需要和-l一起使用

  • -r:倒序显示结果

  • -t:按文件修改时间排序

  • -R:递归列出所有子目录内容

cd/pwd 目录切换

cd: 切换到某个目录

例: 切换到/目录

cd /

pwd: 显示当前目录

history查看历史命令
history
创建空文件(相当于windows中的创建文件)

touch newfile.txt

cat/more查看文件
cat/more 文件名

cat: 一次性查看所有内容

more: 一页一页的查看文件内容

删除文件

rm newfile.txt

新建目录(相当于windows中的创建文件夹)

mkdir newdir

删除空目录

rmdir newdir,也可以用rm -r newdir

重命名文件

mv file.txt new.txt

移动文件(相当于剪切粘贴)

mv newfile newdir2

拷贝文件(相当于复制粘贴)

cp file.txt newdir.txt

软链接(相当于创建快捷方式)

ln -s original.txt symlink.txt

which查找可执行文件的所在位置

which python

which ls

echo 输出内容

echo 123>1.txt

表示将123输入到1.txt文件内

locate 查看文件所在目录

locate whoami.exe

grep 根据正则匹配搜索文件
grep 正则表达式 文件名

例: 在file.txt文件中查找hello

grep hello file.txt

重定向符

>: 将左边的内容覆盖到右边

例: 将1.txt中的所有内容改为1

echo 1 > 1.txt

>>: 将左边的内容追加到右边

例: 将1写入1.txt中

echo 1 >> 1.txt

文件查找

find
按文件名查找
find 路径 -name "文件名"

例: 查找/目录下所有以.txt后缀的文件

find / -name "*.txt"
按文件大小查找
find 路径 -size 符号 大小

符号:+表示大于 -表示小于 =表示等于

大小: k M G

例: 查找/目录下100M到1G大小的文件

find / -size 100M -size 1G
按日期查找

按创建日期查找

find 路径 -ctime -n/+n

按修改日期查找

find 路径 -mtime -n/+n

按访问日期查找

find 路径 -atime -n/+n

ps: -n表示n天以内 +n表示n天以外

按层数查找
find 路径 -mindepth n

ps: n表示层数

例: 查找/目录下一层的文件

find / -mindepth 1
按文件类型查询
find 路径 -type 类型

类型: f:普通文件 d:目录 l:符号链接

​ b:块设备文件 c:字符设备文件 s:socket文件

​ p:管道文件

例: 查找/目录下所有目录

find / -type d
-exec
find 路径 查找方式 -exec shell命令 {} \;

例: 查找当前目录下以.svn结尾的目录,并且将这些内容全部删除

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

rm -rf表示强制删除目录

文件排序

sort 选项 文件

选项:

-r 降序(逆序)排序
-n 按数值进行排序
-k 按指定的字段进行排序
-t 分隔符
-u 去除重复行
-f 忽略大小写进行排序
-b 忽略行首的空白字符进行排序
-c 检查文件是否已经排好序

例: 将当前目录下的1.txt文件的第9和第10行进行排序

sort -k9 -k10 ./1.txt

管道符|

左边 | 右边

|就是将左边的结果作为右边的输出

例:

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

这个代码首先在当前用户的主目录及其子目录下查找所有在过去2天内修改过的文件。

然后将这些文件的详细信息(使用ls -l命令)按照修改日期和时间进行排序。

然后使用more命令分页显示这些排序后的文件信息。

权限管理

首先需要了解root用户,root用户是超级管理员用户,拥有最高权限

su/sudo 切换账户
su - 用户名

如果不输入用户名,默认为root,其他用户切换为root用户时需要密码,而root用户切换为其他账户时则不需要密码

例: 切换为root用户

su - root

sudo表示短时使用root用户权限

比如当普通用户没有权限进行rm -rf /命令时,可以用

sudo rm -rf /

输入密码就可以执行这条语句了

用户与用户组

用户组相当于一个小组,用来存放用户,每个用户都有一个UID,用户组为GID,查看UID的命令为

id 选项 用户名

选项:

  • -u 只输出有效的UID
  • -n 对于-ugG输出名字而不是数值
  • -r 对于-ugG输出真实ID而不是有效ID

UID为0时,标识的是超级用户(即root用户),UID为1000-60000之间,标识的是普通用户,UID为1-999之间,标识的是虚拟用户(即系统用户)。

useradd创建用户

useradd命令可用来创建用户账号,并保存在**/etc/passwd**文件中。

useradd 选项 用户名

选项:

  • -u 指定用户UID
  • -o 配合“-u”属性,允许UID重复
  • -g 指明用户所属基本组,既可为用户组名,也可为GID(该组必须已存在)
  • -d 指定用户的home目录,并自动创建用户home目录
  • -s 指明用户的默认shell程序
  • -D 显示或更改默认配置
usermod修改用户

usermod可用来修改用户账号的各类信息。用户基本信息保存在数据库 /etc/passwd 中,/etc/passwd中的内容由7个字段组成:

name:password:uid:gid:comment:home:shell

用户名:用户密码:uid:gid:用户备注信息:用户home目录:用户默认shell

usermod 选项 用户名

选项:

  • -u 修改用户UID
  • -g 修改用户所属用户组
  • -I 修改用户账号名称
  • -d 修改用户home目录
  • -s 修改用户默认shell程序
userdel删除用户
userdel 选项 用户名

选项:

  • -f 强制删除用户账号,即使用户当前处于登录状态
  • -r 删除用户,同时删除与用户相关的所有文件
  • -h 显示命令的帮助信息
passwd修改用户密码

root用户可以修改任何用户的密码,普通用户只能修改自身的密码,并且此命令需要root权限

passwd 选项 用户名

选项:

  • -n 设置修改密码最短天数
  • -x 设置修改密码最长天数
  • -w 设置用户在密码过期前多少天收到警告信息
  • -i 设置密码过期多少天后禁用账户
  • -d 删除用户密码
  • -S 显示用户密码信息
  • -f 强制执行
  • -k 保留即将过期的用户在期满后仍能使用
  • -g 修改群组密码
  • -e 使密码过期
  • -l 锁定用户密码,被锁定的用户不能登录
  • -u 接触用户密码的锁定状态
groupadd创建组
groupadd 选项 用户组名

选项:

  • -f 如果组已存在,则成功退出
  • -g 为新用户组所使用的GID
  • -h 显示此帮助信息并退出
  • -o 允许创建有重复 GID 的组
  • -p 为新用户组使用此加密过的密码
  • -r 创建一个系统账户
groupmod修改组
groupmod 选项 组名

选项:

  • -g 修改为要使用的GID
  • -h 显示此帮助信息并退出
  • -n 修改为要使用的组名称
  • -o 允许使用重复的 GID
  • -p 更改密码(加密过的)
groupdel删除组

**ps:**如果组内还有用户时则无法删除组,需要先将用户全部删除或移动

groupdel 选项 组名

选项:

  • -f 强制删除
  • -h 显示此帮助信息并退出
gpasswd关联用户和组

gpasswd可以用来添加或删除用户到组中

gpasswd 选项 组名

选项:

  • -a 向组 GROUP 中添加用户 USER
  • -d 从组 GROUP 中添加或删除用户
  • -M 设置组 GROUP 的成员列表
  • -A 设置组的管理员列表
  • -r 移除组 GROUP 的密码
  • -R 向其成员限制访问组 GROUP
  • -Q 要 chroot 进的目录
文件权限控制

文件的基本权限:读(r/4) 写(w/2) 执行(x/1)

文件权值的两种表示方法:

字符法:

表示说明
rwx读+写+执行
rw-读+写
r-x读+执行
r–
-wx写+执行
-w-
–x执行
无权限

字符法:

表示说明
rwx7
rw-6
r–4
r-x5
–x1
-w-2
-wr3
0

简单说明,查看文件权限时可以用

ls -l

查看

在这里插入图片描述
左边的就是权限,第一个rwx表示该文件拥有者的权限,第二个r-x表示同一个组的权限,第三个r-x表示其他人的权限

chmod修改权限控制
chmod 参数 权限 文件名

选项:

  • -R 对当前目录及其子目录进行递归更改
  • -c 只有在文件权限确实更改时才显示其更改动作
  • -f 如果文件权限无法更改,不显示错误信息
  • -v 显示权限变更的详细信息

例: 将1.txt文件设置为rwx:rwx:rwx权限

chmod 777 1.txt

例:

标题

将1.txt文件设置为rwx:-wx:–x权限

chmod 731 1.txt

在渗透中常用方法

用户账号数据库

/etc/passwd

/etc/shadow

组账号

/etc/group

禁用账号

sudo passwd -l username
chage -E 1990-01-01 kali
这个命令的作用是将用户 kali 的账户设置为在 1990 年 1 月 1 日过期。这意味着从那个日期开始,kali 用户将无法再登录系统,除非账户过期日期被更改或者用户密码被更新
passwd -S username
这个命令的作用是显示指定用户的密码状态

查看权限

ls -al /etc/passwd

更改文件所有者

chown root file
将名为 file 的文件或目录的所有者更改为 root 用户

修改文件权限

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

系统日志

ls -l /var/log

认证信息日志

sudo tail -3 /var/log/auth.log
使用超级用户权限查看 /var/log/auth.log 日志文件的最后3行内容

二进制日志

who /var/log/wtmp | tail -5
首先,who /var/log/wtmp 命令读取 /var/log/wtmp 文件,输出系统中所有登录和注销事件的列表,然后从这个列表中提取最后5行,即最近的5次登录记录。

dmesg

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

systemd日志相关命令

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

内存使用量

free -m

磁盘使用量

df -hT

文件或目录大小

sudo du ./* -hsc

查看磁盘分区

sudo fdisk -l

挂载分区

sudo mount /dev/sdb1/mnt/usb

基本网络工具

ifconfig
ip addr
sudo ifdown eth0
sudo ifup eth0   //eth0为网卡名

网络配置

/etc/network/interfaces
Networkmanager

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

网络连接

netstat -natup
ss -natup

二层地址

arp -en
arp -en 命令的意思是显示当前 ARP 缓存表中的所有条目,并且以数字地址形式显示,不进行主机名解析。

路由信息

route
iproute
sudo ip route add 10.13.37.0/24 dev eth1
traceroute offensive-security.com

SSH服务

启动服务
sudo systemctl start ssh
连接本地主机
ssh root@localhost
表示以root用户身份进行登录,并且连接到本地主机
配置文件
/etc/ssh/sshd_config
这个是SSH服务器的主要配置文件,这里面包含了各种参数如端口号,登录用户,认证方式等,可以通过编辑这个文件配置SSH服务器
客户端配置
hash knownHosts yes

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

远程拷贝

scp root@1.1.1.1:/home/kali/.bashrc Copiedbashrc
scp passwd -p kali ssh root@127.0.0.1

sep用于在不同主机之间安全的复制文件

root@1.1.1.1表示从IP地址为1.1.1.1的主机上以“root”用户进行操作

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

Copiedbashrc是目标文件名称或者目标路径

scp语法:

scp 源文件路径 目标路径

ps:如果是复制名为“passwd”的文件到ip为127.0.0.1的本地主机,可以写成

scp 远程用户名@远程主机ip:远程文件路径 本地目标路径

``

配置文件
/etc/ssh/sshd_config
这个是SSH服务器的主要配置文件,这里面包含了各种参数如端口号,登录用户,认证方式等,可以通过编辑这个文件配置SSH服务器
客户端配置
hash knownHosts yes

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

远程拷贝

scp root@1.1.1.1:/home/kali/.bashrc Copiedbashrc
scp passwd -p kali ssh root@127.0.0.1

sep用于在不同主机之间安全的复制文件

root@1.1.1.1表示从IP地址为1.1.1.1的主机上以“root”用户进行操作

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

Copiedbashrc是目标文件名称或者目标路径

scp语法:

scp 源文件路径 目标路径

ps:如果是复制名为“passwd”的文件到ip为127.0.0.1的本地主机,可以写成

scp 远程用户名@远程主机ip:远程文件路径 本地目标路径

原文地址:https://blog.csdn.net/2301_80793533/article/details/143722355

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