Linux
开源的操作系统,一切皆文件!
nohup sh xxx.sh &
目录结构
- 根目录(只有一个)
- bin 动态库
- dev 设备管理
- home 家目录
- opt
- medila 挂载的文件夹
- root等
实操
查看ip地址
6: ipconfig
7:ip address
阿里云 : curl ifconfig.me
1. VI和VI编辑器
Linux 内置 vi和vim编辑器,vim一般为vi的增强
-
三种模式
-
正常模式
vi 加文件,正常模式下可以使用快捷键,,上下左右 复制粘贴!
-
插入模式 i 进入 , esc退出
按下 i o a r 进入编辑模式
-
命令行模式 :进入 , esc退出
-
:wq 保存退出 :X 也是
- q 不保存退出
:q ! 强制退出
-
-
快捷键使用
- 拷贝:yy
- 粘贴:p
- 删除行 :dd
- 查找 : /关键字 n 就是下一个 N 是上一个
- 设置行号(需要命令行下 ) set nu 取消 set nonu
- 文档最末行 G 最首行 gg
- 撤销 u
2.开机,重启,注销
- 关机
- shutdown
- shutdowm -h now 立即关机
- shutdowm -h 1 一分钟后关机
- shutdowm -r now 立即重启
- halt:关机
- reboot :重启系统
- sync 把内存数据同步到磁盘 防止数据丢失
- shutdown
3.用户管理
用户组的概念(多个权限的集合)
用户家目录的概念:/home—有各个用户下的用户目录,用户登录后会自动进入自己的家目录
-
添加用户
- useradd 【选项(可不写)]】用户名------未指定组,会自动创建个组
- useradd -d 目录 用户名 -----指定目录
- useradd -g 组名 用户名 -----创建用户时直接指定用户组
-
指定密码或者修改密码
- passwd 用户名
-
删除用户
- userdel 用户名;保留了家目录
- userdel -r 用户名 ; 同时删除家目录
-
查询用户信息
- id 用户名
-
切换用户
- su - 用户名
- 权限高的用户切换到权限低的用户不需要输入密码
- 权限低的用户切换到权限高的 需要输入密码
- exit : 重新回到上一个用户、
- su - 用户名
-
查看当前用户
- who am i
1.用户组
可以对有共性的多个用户共同管理,类似于池的概念
- 增加组
- groupadd 组名
- 删除组
- groupdel 组名
- 修改用户组
- groupmod -g 组名 用户名
2.用户和组的相关文件
- /etc/passwd 文件中用户信息
- /etc/gorup 用户组信息
- /etc/shadow 密码信息(加密的)
4.实用指令
1.运行级别
运行级别的配置文件为 etc/inittab 文件
基本语法:
init 0123456
- 0 关机 init 0
- 1 单用户(找回用户密码)
- 2 多用户无网络服务
- 3 多用户有网络
- 4 保留级别
- 5 图形界面
- 6 重启
面试题: 如何找回root的密码?
进入单用户级别模式,root不需要密码就可以登录。
在装linux 服务器的电脑上进行操作
2.帮助指令
当对某个指令不熟悉时,可以使用帮助指令来了解该指令的使用方法
- man[命令或者配置文件] man[ls]
- help 帮助
3.文件目录类
-
pwd 当前目录 , fpwd 在ftp下的 下载地址
-
ls 当前目录下文件
- ls -a 目录、文件 (显示所有的)
- ls -l 能查看文件的权限
-
cd 切换指令
-
mkdir 创建目录和文件
- mkdir -p 创建多级目录
-
touch 创建空文件
- touch 文件名
-
cp指令 拷贝
- cp -r 原路径 现路径
-
mv 移动文件、重命名
- mv old new 同一个目录下,修改名
- mv 当前文件夹 新文件夹
-
rm -f 强制删除不用提示
-
cat 查看文件内容,只能浏览但是不能修改
- cat -n 显示行号
-
more 分页显示
- cat -n 文件 | more 分页展示,结合使用
-
less
- 查看大型文件使用该命令
-
输出重定向和追加
- ‘>’ 输出重定向
- ‘>>’ 追加
- ls -l 》 a.txt 将显示的文件 重定向到a.txt中
-
echo 输出内容到控制台,一般输出环境变量
- echo “111111111”
-
head 显示文件的开头内容
- head -n xxxx(行数)
-
tail 显示动态的文件
- tail -f xxxx
-
history 历史指令
- history 10 查看最后十个指令
4.时间日期类指令
- date 显示当前时间
- date +%Y 当前年
- date +%m 当前日, %d %S
- date “+%Y-%m-%d %H:%M:%S”
- date -s 设置日期
- date -s “2020-12-06 22:48:00”
- cal 显示日历指令
5. 搜索查找类
- find 遍历指定目录下的文件路径
- find 文件目录 搜索文件名
- loacte 快速定位文件目录
- 使用之前,需要创建locate数据库 updatedb指令
- update 文件名
- grep 指令,管道符 |
- 从hello.txt 中查找 abc 并显示行号
- cat hello.txt | grep -ni abc 带着i 不区分大小写
6.压缩 解压缩
-
tar 指令用的多 打包指令 tar.gz
-
tar 指令 xxxx/tar.gz 打包内容
-
<1> 将a b文件压缩为 a
tar -zcvf a.tar.gz a.txt b.txt
<2> 将a.tar.gz 解压
tar -zxvf a.tar.gz
5.组管理与权限管理
1.linux 组基本概念
用户必须在组内,不能独立与组外
- 用户的所有者
- 创建这个文件的创建者 ls -ahl
-
2.权限管理
- 文件的权限
1.后面的 rw 是属于该用户对于该文件的权限 rw----读写权限
2.r-- 用户所在组的权限
3.后面的 r-- 文件所在组的用户权限
6.任务调度
- crontab 定时任务
- crontab -l 查看存在的定时任务
- crontab -e 编辑定时任务
- crontab -r 删除 ----- 一般不使用 全部删除
- crontab -l 查看存在的定时任务
案例:每隔一分钟查看文件并且输出到a.txt中
crontab -e 进入编辑
*/ * * * * ls -l /home > a.txt
关于任务调度的时间设置
- 五个* 之间需要空格隔开
- 第一个 一个小时中的第几分钟 0—59
- 第二个 一天中的第几个小时 0—23
- 第三个 一月的第几天 1–31
- 第四个 一年的第几个月 1—12
- 第五个 一周中的星期几 0—7 0和7都是周天
*代表任意时间
,代表不连续的时间 *0 8,23 ------------第八个小时低二十三个小时的 0分钟
-代表连续的时间 *0 5 * * * 1-6 代表周一到周六的五点0分
/n 代表每隔多级执行一次
给编写的shell脚本设置可执行权限
- chomd 744 xxxx.sh
7.分区基础知识
- mbr分区
- 四个主分区
- 系统只能装在主分区
- 扩展分区要占一个主分区
- mbr 分区最大支持2TB
- 扩展分区要占一个主分区
- 系统只能装在主分区
- 四个主分区
- gpt 现在的主流分区
- 支持无限多个主分区
- 最大支持18E的大容量
- Windows 7 64位之后 支持gpt
Linux分区(挂载点)
> 无论有多少个分区,只有一个主目录
- lsblk -f 查看硬盘 老师不离开(谐音梗)
- 查看分区和挂载的情况
磁盘情况查询
- df -h 查看指定目录 磁盘占用
- df -lh 查看全部的
进程管理
- ps
- ps -aux 显示所有进程
- ps -ef 查看父进程
- kill 终止进程
- kill -9
- service 进程
- start
- stop
- restart
- reload
- status
- top 进程动态监控
Shell编程
#### shell快速入门
每一句执行结束之后不需要分号
sh xxx.sh 该脚本不需要 权限 chmod 744 xxx.sh
1.脚本首先由 #! bin/bash 开头
2. echo “hello world!”
shell变量
系统变量与用户自定义变量
-
系统变量 set 显示所有变量
-
$HOME , $PWD , $SHELL , $USER
-
自定义变量
-
A=100
-
echo “$A” -----输出变量A
-
静态变量
-
ReadOnly A=100
-
设置环境变量
-
export 变量名=变量值
-
source 配置文件
-
echo $变量名
-
条件判断
-
基本语法
- 【 condition 】—前后都有空格,非空返回真
等于 = 或者 eq 大于 -gt 大于等于 -ge 小于 -lt 小于等于 -le 判断文件是否存在 【 -e 文件名 】
-
ok 是否等于ok
if 【 “ok”=“ok” 】 thrn echo "true" fi
-
流程控制
- if
if[ xxxxx ] then echo "if" elif [ xxxx ] then echo "else" fi
- case
- for
一: for 变量 in 值1 值2 do 程序 dono 二:
- while
while [ xxxx ] do 程序 done
工作中使用补充
- 从某些文件中查找出存在某个字段的文件
1. 从data目录下 的所有文件中 查找存在testabc字符串的文件
find /data -name “*” | xargs grep “test abc” -l -l只展示文件名称
2.从vi中全部替换
%s/文本1/需要替换成/g
3.两个服务器之间文件拷贝
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root
4.利用ftp 进行文件传输
在需要传输文件的目录下 ftp url
切换传输编码为二进制 bin
传输 put 文件名称
笔记来自于b站linux教学视频,手打并不完全。