操作系统
- Windows 10
操作系统的分类
- 桌面操作系统
- 服务器操作系统
- 嵌入式操作系统
- 移动设备操作系统
桌面操作系统
- Window 系列
- macOS
- Linux
服务器操作系统
- Linux
- Windows Server
嵌入式操作系统
- Linux
Linux分类
- 商业版 Redhat
- 稳定版 6.4 6.6 6.8 7.0(偶数)
- 开发板 6.5 5.7 6.9 (奇数)
- 免费版 CentOS
- 稳定版6.4 6.6 6.8 7.0
- 开发板 6.5 5.7 6.9
界面最好的
- Ubuntu
国内的
- 红旗
- 中标麒麟
Linux 系统需要记住的目录
- /etc: 系统配置,启动程序
- /home:普通用户的家,目录默认数据存放目录
- /mnt:临时挂载储存设备的挂载点,u盘插入光驱无法使用,需要挂载然后使用
- /opt:额外的应用软件包
- /root:Linux超级权限用户root的家目录
- /tmp:临时文件目录,这个目录被当作回收站使用
文件夹的增删改查
添加:mkdir 文件夹名
mkdir –p 文件夹名删除:rm –rf 文件夹路径
修改:mv 要修改的文件夹路径(名) 修改后的文件夹路径 (名)
查询:ll [-a]
ls [-a] [-l]复制:cp [-a/-r] 原文件夹 目标文件夹
文件的增删改查
添加:touch 空文本
echo ‘内容’ > 或 >> 文本删除:rm –rf 文件路径(名)
修改:mv 修改前文件路径(名) 修改后文件路径(名)
查询:ll [-a]
ls [-a] [-l]查看内容
前10行:head 文件名
head -10 文件名
后10行:tail -10 文件名
后n行:tail -n 文件名查看所有
cat 文件名数据过滤
grep [参数] 关键字 文件名编辑:vi 或者 vim
其他
- 当前所在的目录:pwd
- 清空屏幕:clear
- 软连接:ln -s 目标文件绝对路径 快捷方式路径
- 帮助文档:命令+ --help
- &&:前面的命令执行成功再执行后面的。
- ||:前面的命令执行失败再执行后面的。
Vi编辑器的常用命令
VI编辑器的三种模式
- 命令模式
- 编辑模式
- 末行模式
末行模式
- 保存并退出 :wq 或者 x!
- 不保存强制退出 :q!
行内移动
- 以单词为单位向后移动 w
- 以单词为单位向前移动 b
- 光标移动到行首 0 或者 ^
- 光标移动到行尾 $
行数移动
- 移动到首行 gg
- 移动到尾行 G
- 定位到某一行 数字gg 或者 数字G 或者 :数字
段落
- 以段落为单位后移 }
- 以段落为单位前移 {
撤销
- 撤销命令 u
- 取消撤销/恢复撤销 Ctrl+r
删除文本
- 删除多行 数字dd
- 删除一行 dd
- 在光标所在的位置删除至行尾 D
- 在光标所在的位置删除至行首 d0 或者 d^
- 剪切 x
复制
- 复制多行 数字yy
- 复制一行 yy
- 粘贴 p
替换的命令
- 替换的是光标所在的位置以及后面的数据 R
- 只替换光标右侧的第一个字符 r
文件夹内查找
- 通过文件名指定路径查找 find 路径 -name *.txt
- 通过文件名在当前路径查找 find -name *.txt
文件内查找
- /查找的内容
- 向上查找 N
- 向下查找 n
文件内替换
- :%s/旧文本/新文本/g [c]
压缩命令
gzip
压缩文件 tar zcvf 压缩文件名.tar.gz 被压缩的文件/文件夹
解压压缩文件 tar zxvf 压缩的文件名.tar.gz -C 路径bzip2
压缩文件 tar jcvf 压缩文件名.tar.bz2 被压缩的文件/文件夹
解压压缩文件 tar jxvf 压缩的文件名.tar.bz2 -C 路径
关机
- halt
重启
- reboot
用户权限
drwxr-xr-x. 2 root root 4096 9月 14 23:15 aa (如下解释)
d:表示文件夹
rwx:当前用户具备的权限
r-x:当前用户所属的组具备的权限
r-x:其他用户所具备的权限
root:文件所属的用户
root:文件所属的用户所属的组
4096 :文件大小
9月:文件创建的月份
14 23:15:文件创建的日期
aa:文件名
读权限:数字表示4
写权限:数字表示2
执行权限:数字表示1
读写执行能够构成的数字和是1、2、3、4、5、6、7
用户和组的添加
组的操作
- 添加组 groupadd 组名
- 删除组 groupdel 组名
- 查询当前所有的组 cat /etc/group
- 修改组 chgrp 组名 文件/目录名
用户的操作
- 添加用户同时指定组 useradd -g 组名 用户名
- 添加用户 useradd 用户名 【未指定组时,创建一个与用户名相同的组】
- 删除用户(删除家目录):userdel –r 用户名
- 查看当前用户 cat /etc/passwd
- 为用户设置密码 passwd 用户名
用户切换
- Su 用户名
- Root用户 切换到普通用户无需密码,普通用户之间切换需要密码
- 退出用户 exit
- 普通用户临时借用root权限使用sudo 命令【普通用户已经添加到/etc/sudoers文件中】
修改权限
- chmod [-R] 777 文件名/文件夹名
- chmod +/- rwx 文件名|目录名
- chmod -R u=rwx,g=rwx,o=rwx 文件名|目录名
修改文件所属的组
- chown -R 新用户:新用户的组 文件名/文件夹名
其他命令
- 获取当前日期:date
- 更新当前日期:date -s “yyyy-MM-dd HH:mm:ss”
- 查看磁盘空间:df -h
- 查看某一目录所占空间大小:du -h
- 查看进程详细信息:ps aux
- 查看cpu内存等使用情况:top
- 杀死某一进程:kill [-9] 进程号
- 查看内存使用率:free –h [-m/-g]
Cut
- 按照字符提取 head -2 1.txt | cut -c 5
- 指定分隔符 head -2 1.txt | cut -d ‘:’ -f 1,2
Sort
- 文本排序 sort 文件名
- 文本排序反转 sort -r 文件名
- 文本排序去重 sort -u 文件名
- 数值按大小排序 sort -n 文件名
- 指定分隔符、指定排序列 sort -t ‘分隔符’ -k2nr 文件名
Wc
- 查看文件基本信息 wc 文件名
- 查看文件行数 wc – l 文件名
- 查看文件单词数 wc -w 文件名
- 查看文件字节 wc -c 文件名
- 查看多个文件信息 wc 文件1 文件2 文件3
Uniq
- 与sort连用
- 排序、去重 cat 5.txt | sort | uniq
- 排序、去重计算总数 cat 5.txt | sort | uniq -c
Tee
- 数据定位到多个文件 cat 5.txt | tee a.txt b.txt c.txt
Tr
- 小写i 替换成 echo “itheima” | tr ‘i’ ‘I’
- 把 HELLO 转成 小写 echo “HELLO” |tr ‘[A-Z]’ ‘[a-z]’
- 删除数字 echo ‘abc1d4e5f’ | tr -d ‘[0-9]’
Split
- 按照文件大小切分 split -b 10k 被切分的文件
- 按照行数进行切分 split -l 1000 被切分的文件
Awk
- 模糊查询 awk ‘/条件/’ 文本名
- 按照分隔符拆分,根据角标显示
awk -F ‘,’ ‘{print $1, $2, $3}’ 1.txt
按照分隔符拆分,根据角标显示并指定分隔符
awk -F ‘,’ ’ {OFS="==="}{print $1, $2, $3}’ 1.txt支持函数
_awk -F ‘,’ '{print toupper($2),$3_100}’ 1.txt
If判断语句
- awk -F ‘,’ ‘{if($4>60) print $1, $4, “及格”; else print $1, $4, “不及格”}’ score.txt
Shell编程
Shell 脚本的解释器
- /bin/sh
- /bin/bash
- /sbin/nologin
- /bin/dash
- /bin/tcsh
- /bin/csh
脚本的编写规范
- 首行描述解释器 #!/bin/bash
执行脚本的三种方式
- bash 脚本名称 脚本参数
- sh 脚本名称 脚本参数
- /脚本名称 脚本参数【./脚本名称之间没有空格】【chmod 777 脚本名称】
变量的声明
- 变量名=”值”【中间不能有空格】
- 变量名要求 字母或下划线或数字(开头不能是数字)构成
变量的引用
- 使用$ 或 ${}引用变量
- 删除变量 只读变量
- 删除 unset 变量名
- 只读 readonly 变量名
字符串使用
- 双引号(””):内部可以使用变量
- 单引号(‘’):内部所有的原样输出
- 反引号(``):表示可执行
字符串长度及截取
- 长度: echo ${#skill}
- 截取: echo ${str:2:2} 【在第二个字符开始截取截取两位】
脚本参数传递
- bash 脚本名 参数1 参数2 参数3 。。。。。。
- 脚本内
- $0 脚本名称
- $1 参数1
- $2 参数2
- $n 参数n
- $* 所有参数
- $# 参数的个数
算数运算符
- 加法计算
expr 2 + 2
- 乘法计算
expr 2 \* 2
流程控制if
- if [ $a -gt 10 ];then
代码1
elif [ $a -lt 10 ];then
代码2
else
代码3
fi
关系运算符
- 大于:-gt
- 小于:-lt
- 大于等于:-ge
- 小于等于 :-le
- 小于:-eq
- 不等于 :-ne
循环
For 循环:
For aa in XXXX
do
循环体
doneWhile循环:
While 条件 ;
do
循环体
done
跳出循环
- 跳出所有循环:break
- 跳出当前循环,进入下一次循环:continue
case ()
- case 值 in
结果1)
结果1对应的操作;;
结果2)
结果2对应的操作;;
结果3)
结果3对应的操作;;
esac
接收控制台数据
- read 变量名
函数的使用
- 函数声明:
[function] 函数名(){
函数体
$参数1
$参数2
$参数3
}
函数调用
- 函数名 参数1 参数2 参数3
数组
- 数组声明: 数组名称=(元素1 元素2 元素3 元素4)
数组的使用
- 单个使用 echo 数组名[角标] 【角标从0开始】
- 遍历数组
for var in ${my_arr[*]}
do
echo $var
done
文件加载
在文件中添加 . 脚本名称 或者 source 脚本名称
#!/bin/bashsource ./test1.sh :加载test1.sh 的文件内容