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 | 执行 |
— | 无权限 |
字符法:
表示 | 说明 |
---|---|
rwx | 7 |
rw- | 6 |
r– | 4 |
r-x | 5 |
–x | 1 |
-w- | 2 |
-wr | 3 |
— | 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)!