一 文件系统
根目录结构
root root用户家目录
home 其他用户家目录
etc 系统配置目录
bin sbin 可执行二进制文件目录,sbin只有root可访问
opt 软件安装目录
usr 存放系统应用程序,/usr/local 本地管理员软件目录,用于yum安装软件
proc 内存的映射
mut 挂载存储设备,并能映射到指定路径
sys 系统相关
boot 引导文件目录
lib lib64 内核与核心依赖
dev 硬盘配置
tmp 存放各种临时文件
var 存放运行时需要改变数据的文件
lost found 当系统异常关闭时保存异常日志
media 多媒体
selinux 系统安全
基本文件命令
cd 完整路径/相对路径 切换文件目录
-
/ 根目录ss
-
../ 父目录(可连续使用)
-
./ 当前目录
-
~ 用户家目录(root用户家目录在/root 其他用户分别在/home/ )
-
参数-a 显示隐藏文件
-
无目标路径则切换至家目录
mkdir 文件夹
创建文件夹
-
mkdir ~/sxt
-
mkdir /sxt
-
mkdir -p ~/a/b/c -p 自动创建多级父文件夹
-
mkdir ~/sxt{1,2,3}a 创建sxt1a,sxt2a,sxt3a文件
rmdir 文件夹
删除空文件夹
cp 文件/文件夹 目标路径
复制文件(夹)到目标路径下
-
cp -r haha ../ 参数r 表示文件夹表遍复制(将文件夹中的内容一起复制)
-
cp -f haha ../ 参数f 表示若存在重复文件则覆盖
-
cp -rf ~/aaa/* ../ 将aaa文件加下所有内容复制到父目录中 rf参数组合使用
-
cp aaa/bb* ../ 将aaa文件加下所有bb前缀的内容复制到父目录中
mv 文件/文件夹 目标路径
剪切文件(夹) 重命名(连同内容)
-
mv -f haha ../ 参数f 表示若存在重复文件则覆盖
-
mv haha hehe 相同目录下的移动也就是重命名
rm 文件(夹)
移除文件或文件夹
-
rm -f install.log 参数f 强制删除,不确认
-
rm -rf sxt 参数r 遍历删除文件夹
-
rm sxt* 支持模糊匹配,删除所有sxt开头的文件 ,一般用前后的*匹配
-
rm *.zip 输出zip结尾文件
touch 文件
-
创建文件(若已存在,则不再创建)
-
更新文件的元信息中的时间
ll 查看当前文件夹下的详细内容
-
ls -l --color=auto的别名
-
-a 参数查看隐藏文件显示
ls 查看当前文件夹下的内容
-a 参数查看隐藏文件显示
find 查找文件
-
find 文件夹 -name 文件名 在某文件夹下查找某文件路径
-
find 查找路径 -name p*(匹配文件名,适用通配) 在根目录下查找p开头的文件 *p 查找p结尾的文件
pwd 查看当前路径
stat 查看文件状态
-
Inode: 2097164 文件的物理位置编号(唯一)
-
Access: 2019-08-02 18:03:53.632972412 +0800 访问记录
-
Modify: 2019-08-02 18:03:24.688978095 +0800 数据修改记录(元数据随数据一同修改)
-
Change: 2019-08-02 18:03:24.688978095 +0800 元数据修改记录
-
touch会同时修改三个时间记录
du 查看某个文件或文件夹的大小
-
参数-a 能够查看到内部的文件信息
-
参数-h 格式友好
df 查看硬盘分区状况 参数-h 格式友好
文件查看命令
cat 查看文档的最后一屏 tac 倒序显示第一页内容
head 查看文件的前若干行
head -N 文件 查看文件的前N行
tail 查看文档最后若干行
-
tail -3 file 查看文件最后3行
-
tail -f 文件 参数-f 实现监控文件的改变,注意这是一个持续状态
head -5 文件 | tail -2 组合使用查看第4,5行
more 和 less 分屏查看文档内容
-
回车 下一行
-
空格 下一页
-
b 上一页
-
h 帮助
-
q 退出
ln文件链接
软链接
ln -s 文件 链接
-
软链接直接显示与源文件的链接
-
若源文件删除则软链接失效
-
显示ll时显示连接属性
硬链接
ln 文件 链接
-
硬链接与真实数据连接,指向物理地址
-
源文件删除不影响硬链接
-
硬链接不显示与源文件的链接
二 系统及命令
系统命令
yum install 软件名 -y 安装软件
poweroff 关机
reboot 重启
shell 主机名(ip) 远程连接其他主机,也是外部工具远程调用的方式
exit 用户退出登录
who 查询系统当前登录用户
whoami 查看当前用户
pwd 查看当前位置
config 查看系统配置
ifconfig 查看网络配置
echo $PATH 查看环境变量
锁屏与解锁
ctrl+s 锁屏,但是可以输入
ctrl+q 解锁
命令辅助指令
命令查询网站https://man.linuxde.net/
type 命令 判断命令类型内部/外部/别称
-
cd is a shell builtin 内部命令
-
ping is /bin/ping 外部命令,存在文件位置
-
ll is aliased to `ls -l --color=auto' 别名
-
if is a shell keyword 关键字,非命令
help 命令 内部命令帮助
man 命令 外部命令帮助(可能需要yum安装)
-
yum install man -y
-
命令等级1-8
-
查看:回车 下一行 空格 下一页 b 上一页 h 帮助 q 退出
whereis 程序名 查找命令/程序的相关位置
file 路径
-
查看命令文件的格式
-
ELF:Unix通用命令或者可执行文件的格式
-
64-bit :64位
-bash: java: command not found 没有这个命令,命令错误或未安装
命令格式
命令参数之间必须用空格隔开
命令及参数的大小写敏感
书写地址时尽量使用tab补齐
参数中若存在空格用""将参数括起来
" "会将字符串中变量转义 ‘ ’将字符串只识别为字符串
三 vi编辑器
打开命令
vi file 直接打开文件
vi +10 file 打开文档将光标定位到第10行
vi + file 打开文档将光标定位到最后一行
vi +/字符串 file 打开文档,将光标定位到搜索到的第一个匹配字符串上
三种模式及转换
编辑模式 通过esc键进入
输入模式 从编辑模式进入
-
i 当前字符之前
-
a 当前字符之后
-
o 当前字符下一行
-
I 行首
-
A 行尾
-
O 上一行
末行模式 从编辑模式通过 : 进入
编辑模式详解
光标跳转
G 光标跳行
-
G 光标跳至最后一行
-
30G 光标跳至指定行(行)
g 光标跳行
-
gg 光标跳至第一行
-
7gg光标跳转至第7行
w 光标跳转到下一个单词或特殊字符 (3w 向下跳3个字符)
b 光标跳转到上一个单词或特殊字符 (3b 向上跳3个字符)
^ 光标移动到行首
$ 光标移动到行尾
+- 光标下移上移
hjkl 光标上下左右移动
编辑操作
r 替换字符
-
r 字符 将当前光标所在字符替换成输入的字符
-
N r 字符 将从当前光标所在字符开始的N个字符替换为所输入的字符
dd 删除行
-
dd删除光标所在行
-
X dd 删除从光标所在行开始的X干行
dw 从光标位置开始,删除一个单词或特殊字符
-
注意是从光标位置开始的,光标在单词中间,前半部分不会删除
-
X dw 删除从光标位置开始的X个单词
u 恢复前一编辑操作
. 取消u的操作
x 剪切字符
-
x 剪切光标当前字符
-
N x剪切光标开始的N个字符
yy 复制行
-
yy 复制一行 到粘贴板
-
Xyy 复制X行 到粘贴板
yw 复制单词
-
yw 复制一个单词 到粘贴板
-
Xyy 复制X个单词或特殊字符,从当前字符开始 到粘贴板
p 粘贴 (不覆盖)可配合末行模式使用
-
字符:将粘贴板的字符插入到光标字符之后
-
单词:将粘贴板的单词插入到光标字符之后
-
行:将粘贴板的若干行插入到光标下一行或若干行
-
Xp 执行粘贴X次
P 粘贴 (不覆盖)可配合末行模式使用
-
字符:将粘贴板的字符插入到光标字符之前,不覆盖原先内容
-
单词:将粘贴板的单词插入到光标字符之前,不覆盖原先内容
-
行:将粘贴板的若干行插入到光标下一行或若干行
ZZ 退出编辑器
末行模式详解
-
删除(剪切)
-
X d 删除第X行:
-
X,Y d 删除第X行到Y行数据
-
X.+Y d 删除第X行开始的Y行数据
-
-
复制
-
X y 复制第X行:
-
X,Y y 复制第X行到Y行数据
-
X.+Y y 复制第X行开始的Y行数据
-
-
查询
-
:/XXX 查找文本中XXX
-
N下一个,n上一个
-
-
替换
-
:s/XXX/YYY/ 将光标之后第一个查找到的XXX替换为YYY
-
:s/XXX/YYY/g 将光标所在行的所有XXX替换为YYY
-
:X,Ys/XXX/YYY/g 将X-Y行中所有XXX替换为YYY
-
:X,+Ys/XXX/YYY/g 将X及其下的Y行中所有XXX替换为YYY
-
:g/XXX/s//YYY/g 将全文中的XXX替换为YYY
-
-
set nu 设置行号 set nonu取消行号
-
退出
-
q 退出
-
w 写入
-
q!取消保存并退出
-
qw 保存退出
-
若未正常退出,需要删除 .文件名称.swp
末行模式输入命令,可以用来复制
vim的安装
yum install vim -y
四 文件传输
linux互传
scp 文件 目标路径
-
远端拉到本地 scp root@192.168.163.100:/root/123.war /root(将远端123.war文件下载到本地)
-
本地文件发送到远端 scp /root/123.war root@192.168.163.100:/root/
参数-r 传输文件夹
scp复制文件会使得目标路径下的同名文件被覆盖
需要发送输入密码,可以通过免密码进行处理
linux传win
1 通过lrzsz 实现
-
yum install lrzsz -y
-
rz 接收win的文件
-
sz 向win发送文件
2 通过win安装ftp软件,远程连接实现
五 网络系统
ifconfig 查看网络配置 其中eth0为网卡1的配置 lo为环网配置。
ping 测试主机是否与目标主机连通
虚拟机连接模式
-
桥接:与主机处于相同ip端,能被外网访问,ip与其他主机易冲突
-
网络地址转换NTP:主机作为路由,所有虚拟机作为子IP,外网无法访问虚拟机
hosts文件内置DNS解析
-
liunx中 /etc/hosts
-
win中的地址为C:\Windows\System32\drivers\etc\hosts
netstat 当前网络信息
-
-anp 查看详细信息
-
-r 查看核心路由表
-
-l 仅列出监听状态下的服务
telnet 查看目标端口是否连通 用户查看软件端口是否打开
需要安装yum install telnet -y
telnet ip 端口号
-
结果1:Connected to 192.168.163.11. 连接成功
-
结果2:Connection refused 对方端口防火墙屏蔽或者没有监听
连接成功后退出:
-
退出按下 ^]
-
输入quit或q 退出
http请求:curl -X GET http://www.baidu.com/ 得到html文本需要输出到文件中
wget 下载网络资源,html等
六 权限系统及用户
用户
-
文件位置
/etc/passwd 保存用户信息及组信息
/etc/shadow 保存用户的密码信息
-
创建用户
useradd 用户名 创建用户,自动创建同名组
passwd 用户名 创建用户密码 需要两次输入确认密码
-
删除用户
userdel -r 用户名
-
修改用户,用户需离线才能执行
usermod -l 新用户名 旧用户名 修改用户名
usermod -L 用户名 锁定用户,无法登陆
usermod -U 用户名 解锁用户
-
用户切换
su 用户名
exit 退出切换
组
-
创建组命令:groupadd 组名
-
删除组命令:groupdel 组名
-
修改组名: groupmod -n 新组名 旧组名
-
查询用户所在组:groups 用户名 (若无参数则查询当前用户所在组)
-
为用户修改组或添加组,需要用户重新登录生效
usermod -g 组 用户 修改用户所属主组,只会将主组修改
usermod -G 组 用户 用户添加组
-
组信息文件位置:/etc/group 其中,自定义组的编号从500开始往后排
sudo
sudo使得其他用户具备root身份执行命令
-
执行格式:sudo 命令
以root身份执行命令,系统视为root用户执行
每15min验证一次身份
-
执行前需对/etc/sudoers只读文件修改,使得指定用户具备sudo权限
修改命令为visudo
进入文件后约99行位置添加以下内容,使得目标用户具备执行/usr/sbin目录下的所有命令
目标用户名 ALL=(root) /usr/sbin/*
文件权限
ll命令获取的文件信息
drwxr-xr-x. 7 root root 4096 Nov 11 20:19 sysconfig
-r---w-r--. 1 yw yw 1150 Nov 23 20:13 123.py
lrwxrwxrwx. 1 root root 14 Aug 1 19:33 system-release -> 123.py
信息包括:前缀,文件个数 ,所属用户 ,所属组,占用空间,修改时间,文件名,链接信息
前缀说明
-
第一位为文件类型
d 文件夹 - 文件 l 软链接
-
UGO模型
2-4位:u 用户权限
5-7位:g 组权限
7-9位:o 其他用户权限
-
rwx权限
UGO每种权限对应一组rwx权限
r 读 w 写 x 执行(文件必须拥有此权限才能执行)
修改文件权限
文件所属信息修改
-
chown 用户:组 file 修改文件的所属用户及组
-
chown 用户 file 修改文件的所属用户
-
chgrp 组 file 修改文件所属组
以上命令适用root用户
参数-R 遍历修改文件夹及其子文件的权限
chmod 权限修改
-
chmod [ugo]+/-[rwx] file 分别为ugo加减权限,适用集中修改
例1:chmod ugo+rwx file 添加全部读写执行权限
例2:chmod o-wx file 去除其他用户的写与执行权限
-
chmod 700 file 通过数组执行权限修改
三位数字分别对应ugo三种权限对象
将xwx视为二进制的111,范围0-7
r权重4 w权重2 x权重1
0 ---,1 --x,2 -w-,3 -wx,4 r--,5 r-x,6 rw-,7 rwx
七 进程proc
-
ps -ef 查看当前进程
-
UID所属用户
-
PID进程号
-
PPID父进程,若父进程关闭则改为父父进程
-
CMD为进程信息
ps -ef | grep xxx 查找xxx的进程号
-
-
kill -9 进程号 杀死指定进程
-
ps -aux 只查看当前用户的详细进程信息
-
top 查看实时的系统运行情况
-
jobs -l 查看当前终端中的后台进程
-
后台进程
-
格式:命令 & (实现命令后台执行,在新的子线程中执行,不会阻塞原线程)
-
后台进程执行一段时间后会被挂起
nohup 后台命令 (该命令不会被挂起)
-
nohup ping www. 163.com > 123 2>&1 &
重定向的命令需设成功失败两种输出方式,否则无法执行
-
八 管道与重定向
重定向
-
将数据输出方向转到指定方向,默认输出控制台
-
> 覆盖输出 >> 追加输出
-
输出种类 1>> 标准输出(默认) 2>> 错误输出 后缀2>&1全部输出
ls ~/aaa 1> info 将标准的命令结果覆盖输出到info 文件中
ls ~/aaa 2>> info 将错误的命令结果追加输出到info 文件中
ls ~/aaa >>info 2>&1 无论是否错误都将结果输出到info 文件中
-
默认是使用当前进程,会造成进程阻塞,&后台进程执行
ping www.163.com >> 123 使用当前进程
ping www.163.com >> 123 & 使用后台子进程执行
-
输入重定向 cat < info 输入重定向,符号反向。
-
命令 > /dev/null 数据输出到 /dev/null 信息黑洞自动丢失
管道
-
将前面命令的结果传递给后面的命令
-
ps -ef | tail -3 查看检查前3行
-
ps -ef | grep sshd 查看ssh相关的进程的行