Linux基础
Linux的目录结构
Bin binary储存可运行的二进制文件
Dev 储存外接设备(不可直接使用,需要挂载)
Etc 储存配置文件
Home 普通用户家目录
Proc 储存Linux运行时的进程
Root 超级管家家目录
Sbin 只能由超级管家(root)运行的二进制文件
Tmp 储存系统运行时产生的临时文件
Usr 储存用户自己安装的文件
Var 储存程序/系统日志文件
Mnt 外接设备挂载目录
Linux基础指令(11个)
1.ls 指令 查看目录下的文件
语法:ls -lha 文件路径
2.pwd (print working directory) 指令 查询当前工作目录/路径
3.cd 指令 切换路径/目录
4.mkdir 指令 创建目录(文件夹)
语法:mkdir 【-p】路径
5.touch 指令 创建文件
语法:touch 文件路径1/文件名1 【文件路径2/文件名2】(可同时创建多个)
6.cp (copy) 指令 复制文件/文件夹
语法:cp 【-r】要复制的文件/文件夹路径 要复制到路径
7.mv (move) 指令 移动文件/文件夹
语法:mv 原文件路径 移动到的文件路径
8. rm -rf(remove)指令 删除指令
语法: rm -rf 文档路径1 【文档路径2】
其中-r 表示递归删除,删除文档时必须添加,-f表示强制(force)
9.vim 指令 文本编辑器
语法:vim 文件路径
I键 输入内容
Esc键 退出输入
直接退出:shift键 +冒号+q+回车键
保存退出:shift键 +冒号+wq+回车键
10.>或>> 输出重定向 把指令输出结果保存到指定文件
(>表示覆盖原文档,>>表示在原文档末追加)
语法:任意有输出指令 >/>> 文件路径
Linux进阶指令(10个)
- df 指令 查看磁盘空间
语法:df 选项 -h 高可读性显示大小
2.free 指令 查看内存使用情况
语法:free 选项 -m以mb为单位显示, -h 高可读性显示
3.head 指令 查看文件前n行
语法:head 选项 文件路径 选项:-n(数字) 无选项默认前10行
4.tail 指令 查看文件后n行
语法:tail 选项 文件路径
选项:-n(数字) 无选项默认后10行
-f 查看文件动态变化(变化内容不能手动添加)(CTRL键+c键退出查看)
5.less 指令 以指定方式查看文件(执行指令后配合辅助键使用)
语法:less 文件路径
辅助功能键:数字+回车键 往后看n行
方向⬆/⬇ 键 往前/后看1行
空格键 翻页
q键 退出查看
6.wc 指令 统计文件信息
语法:wc 选项 文件路径 (无选项则默认统计行数/单词数/字节数)
选项: -l 统计行数(常用)
-w 统计单词数
-c 统计字节数
7.date 指令 读取/设置日期时间
语法1: date 输出形式:Wed Apr 13 12:15:20 CST 2022
语法2:date +%F 或 date ‘+%Y-%m-%d‘ 输出形式:2022-04-13
语法3:date ‘+%F %T’或date ‘+%Y-%m-%d %H:%M:%S’ 输出形式:2022-04-13 12:22:54
语法4:date -d ‘+/-1day/month/year’ ‘+%F %T’ 表示在当前时间加/减1日/月/年
8.cal 指令 操作日历
语法:cal 选项
选项:-1 省略选项或数字1表示显示当月日历
-3 表示显示当月及前后两月共三个月日历
-y 1993 表示显示1993年整年的日历
9.clear指令 将当前终端内容全部上移(相当于快捷键CTRL+L)
10.管道(|)一般可用于过滤,配合有输出结果的指令一起使用
管道配合head、tail指令可提取文件指定的行:head -5 b.txt|tail -1 查看文件第5行内容
Linux高级指令(20个)
1.hostname 指令 查看服务器主机名
语法:hostname -f 输出当前主机名中的FQDN(全限定域名),省略选项-f表示输出完整主机名。
2.id 指令 查看用户基本信息(用户id,用户组id,附件组id)
语法:id 用户名 不指定用户名则默认为当前用户
3.whoami 指令 查看当前登录用户的用户名(一般用于shell脚本,方便记录日志)
4.ps -ef 指令 查看进程 一般配合管道使用 ps -ef|grep java
UID:执行进程的用户名
PID: 进程id
PPID:进程父进程的id
C:CPU占用率
TTY:终端设备,发起该进程的设备,‘?‘表示进程不是由终端发起的
TIME:进程执行耗用时间
CMD: 进程名称或路径
5.top 指令 查看进程占用的资源(动态显示)
快捷键:M表示将结果按占用内存降序显示
C表示将结果按CPU使用率降序显示
1(数字1)表示显示各个CPU的详细信息
q 退出查看
PID:进程id USER:执行进程的用户名 PR:优先级
NI: 用户进程空间内改变过优先级的进程占用CPU百分比
VIRT:虚拟内存 RES:常驻内存 SHR:共享内存 (实际占用内存=RES-SHR)
S: 进程状态(S为睡眠,R为运行)
%CPU:CPU占用率 %MEM:内存占用率 TIME+:执行持续时间
COMMAND:进程名或路径
6.du -sh 指令 查看目录实际大小(查看目录占用磁盘空间)
语法:du -sh 路径(省略-s则表示查看路径下所有文件夹的大小)
7.find 指令 查找/搜索文件/文件夹
语法:find 路径范围 选项 选项值
选项 -name 按文件/文件夹名称进行查找(支持模糊查询)
-type 按类型进行查找 (选项值f表示文件 d表示文件夹)
8.service 指令 服务的开启/停止/重启(适用于centos7.0以下版本) (在centos7.0及以上,该指令相当于systemctl Start/stop/restart 服务名
语法:service 服务名 start/stop/restart
9.kill 指令 杀死进程
语法:kill 进程PID(PID可以通过ps -ef |grep 进程名 指令查询)
杀死进程另一种便捷方式:killall 进程名
10.ifconfig 指令 查看服务器网卡信息(IP地址)
11.reboot 指令 重启
语法:reboot 【选项】无选项表示立即重启,选项-w表示模拟重启,实际不重启,只写入重启日志
12.shutdown 关机
语法:shutdown -h now/12:00 【‘关机提示语‘】 立即/定时关机 设置‘关机提示语’
Centos7.0以下版本取消关机可按快捷键CTRL+c
Centos7.0及以上版本可输入指令shutdown -c 取消关机
其他关机命令:init 0 ,halt , poweroff (关机命令在实际工作中一般很少用,因为我们通常是远程连接服务器,关机之后我们无法自行重新开机)
13.uptime 指令 查看服务器自上一次登录后持续工作时长
14.uname 指令 获取服务器操作系统相关信息(内核版本信息)
语法:uname -a
15.netstat 指令 查看网络连接状态
语法:netstat 选项(-tnlp)
选项:-t 只列出tcp协议的连接
-n 将地址从字母组合转换成IP地址,将协议转换成端口号来显示
-l 过滤出‘state’列中值为l(LISTEN 监听)的连接
-p 显示发起连接的进程PID和进程名称
16.man 指令 手册(用于查看命令的使用方法)
语法:man 指令
17.ln -s指令 创建软连接(相当于windows下的快捷方式)
18. lsof -i:端口号 指令 查看某个端口对应的进程号和程序
19.dirname指令 获取上级目录(路径)
语法:dirname指令 路径
dirname /export/server/hadoop-3.3.2/etc/hadoop/core-site.xml
dirname /export/server/hadoop-3.3.2/etc/hadoop/
20.basename 获取当前目录/文件名称
basename /export/server/hadoop-3.3.2/etc/hadoop/core-site.xml
basename /export/server/hadoop-3.3.2/etc/hadoop
Linux vim编辑器
Vim编辑器的三种模式:命令模式/末行模式/编辑模式
Vim打开文件的方式:
语法1:vim 文件路径 打开指定的文件
语法2:vim +数字 文件路径 打开指定文件并将光标移至指定行
语法3:vim +/关键词 文件路径 打开指定文件并高亮度显示关键词
语法4:vim 路径1 路径2 。。。 打开多个文件
1.命令模式(默认进入)
移动光标:
行首:^ 行末:$ 首行:gg 末行:G
翻页:上翻 CTRL+b 下翻CTRL+f
移动指定行:数字 G (末行模式中输入数字按回车即可)
上/下移n行:数字 ⬆ 或数字 ⬇
左/右移n字符:数字 ⬅或数字 ➡
粘贴:p
复制:复制光标所在行 yy
复制保护光标所在行向下n行 n yy
可视化复制:CTRL+v 选择要复制区块 按yy即可
剪切/删除:删除光标所在行:dd(删除后下一行上移)
删除光标所在行起向下n 行 n dd
删除光标所在行:D(删除后下一行不上移)
撤销:u (或在末行模式中输入u后按回车)
恢复:CTRL+r
2.末行模式(按英文冒号进入)(输入指令后需要按回车键完成操作)
保存:w [路径] (加上路径则表示另存为) 保存退出:wq
强制退出(不保存):q!
调用外部命令:!命令
查找:/关键词 (N/n切换上/下一个查找结果)
替换:%S/原关键词/替换关键词/g 替换整个文档符合条件的内容
%s/原关键词/替换关键词/g 替换光标所在行所有符合条件的内容
取消高亮:nohl
显示行号:set nu 取消行号:set nonu
代码着色:syntax on 取消着色:syntax off
Vim打开多个文件时文件间的切换:
查看已打开的文件 files
切换 open 文件名 或bn/bp(切到下/上一个文件)
3.编辑模式
进入方式:
在光标所在字符前开始插入:i
在光标所在字符后开始插入:a
计算器的使用:ctrl+R输入= 光标会移至末行 在末行输入计算内容按回车即可
4.vim的配置
个人配置文件:可在家目录下自行创建.vimrc文件即~/.vimrc 进入文件写入相关配置即可
全局配置文件:/etc/vimrc
其中个人配置文件优先级高于全局配置文件,即两者有冲突则以个人配置文件为准
5.vim异常退出(文件因意外情况未保存退出)
解决办法:删除交换文件 .文件名.Swp(可通过ls -a查找)即可恢复
6.别名机制(自定义命令)
找到映射文件:~/.bashrc 修改映射后重新登录用户即可
7.加密文件
X 密码 回车即可 (x表示如果文件有修改则保存修改退出,无修改则直接退出(不改变文件最近修改时间))
Linux的运维
1.Linux的运行级别
Init 0 :关机 init 3:命令行模式 init 5:桌面模式 init 6:重启
设置系统默认模式可用语法
systemctl set-default multi-user.target 设置默认开机模式为命令行模式
systemctl set-default graphical.target 设置默认开机模式为桌面模式
2.Linux的用户管理
重要文件:etc/passwd 存放用户信息
etc/group 存放用户组信息
etc/shadow 存放用户密码信息
图表 1 passwd文件结构
图表2 group文件结构
图表 3 shadow 文件结构
添加用户 :
语法:useradd 选项 用户名
选项:-g 指定用户的用户组,值可以是组id或组名
-G 指定用户的附加组,值可以是组id或组名
-u 指定用户的用户id,系统默认从1000后分配
语法:usermod 选项 用户名
选项: -g 修改用户的用户组
-G 修改用户的附加组
-u 修改用户的id
-l 修改用户名
修改/设置密码,锁定/解锁用户:
语法:passwd 选项 用户名
选项: -l lock 锁定用户
-u unlock 解锁用户
无选项则表示修改/设置密码
切换用户 :
语法:su 用户名
删除用户 :
语法:userdel 选项 用户名
选项:-r 同时删除用户家目录
3.Linux用户组的管理
添加用户组:
语法: groupadd 选项 用户组名
选项: -g 自定义用户组id ,不指定默认从1000开始分配
修改用户组:
语法:groupmod 选项 用户名
选项: -g 修改用户组id
-n 修改用户组名
删除用户组:
语法:groupdel 用户组名
用户授权:
sudo命令
sudo命令不能使用,报错:xxx is not in the sudoers file.This incident will be reported.
解决方案:
① 切换到root用户下:
执行命令su -输入超级管理员密码。
② 添加sudo文件的写权限,命令是:
chmod u+w /etc/sudoers
③ 编辑sudoers文件
vi /etc/sudoers
找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
ps:这里说下你可以sudoers添加下面四行中任意一条
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
④ 撤销sudoers文件写权限,命令:
chmod u-w /etc/sudoers
这样普通用户就可以使用sudo了。
Linux的网络配置
1.网络配置文件:/etc/sysconfig/network-scripts/ifcfg-ens33
重点配置:
TYPE="Ethernet" # 网络类型为以太网
BOOTPROTO="static" # 配置成静态IP
NAME="ens160" # 要跟文件名一致
DEVICE="ens160" # 要跟文件名一致
ONBOOT="yes" # 是否随网络服务启动
IPADDR="192.168.1.103" #主机ip地址
GATEWAY="192.168.1.1" # 网关
NETMASK="255.255.255.0" # 子网掩码
DNS1="114.114.114.114" #DNS2也可以配置成8.8.8.8
重启网络服务:输入指令:systemctl restart network
停止/开启指定网卡:ifdown/ifup 网卡名
Linux 的ssh服务(secure shell 安全外壳协议)
1.作用:远程连接,远程传输文件
2.配置文件:/etc/ssh/ssh_config (ssh协议默认端口号为22)
3.ssh协议服务的启动/停止/重启:
方式1:service sshd start/stop/restart
方式2:systemctl start/stop/restart sshd
方式3:/etc/init.d/sshd start/stop/restart
4.使用ssh服务的远程终端(远程终端是用于操作服务器的工具)
常用软件:Xshell/Putty/secure CRT
Xshell 远程连接服务器的方法(Xshell内置了远程传输文件工具,我们使用时把文件拖拽到窗格就可以实现传输)
-通过工具栏新建会话,输入服务器IP地址 端口号 用户名 密码 即可连接
-在命令行中输入 ssh 服务器ip地址 端口号 (省略端口号则默认为22)按回车 输入用户名 密码 即可连接
-在命令行中输入 ssh 用户名@服务器ip地址 按回车 输入密码即可连接
退出登录:输入exit或logout
5.使用ssh服务的远程传输文件工具(了解)
常用软件:Filezilla(可视化界面传输工具)
PSCP.EXE(命令模式传输工具,需要在CMD中打开使用,注意需要配置环境变量或者将这个软件放置在C:/windows目录下)
PSCP常用命令:pscp [-r] 用户名@Linux服务器IP地址:资源路径 本地地址(下载)
pscp [-r] 本地地址 用户名@Linux服务器IP地址:资源路径 (上传)
选项-r 在上传或下载文件夹的时候需要添加,不添加只能上传或下载文件
案例:pscp -r root@192.168.173.100:/etc/sysconfig/network-scripts/ C:/桌面
pscp -r D:/centos root@192.168.173.100:/root