总结:
一.操作系统概述
计算机基础
操作系统简介
二.linux安装:
版本:
- Linux操作系统=内核+系统软件+应用程序
- Linux 内核(kernel)版本
- Linux发行商,也称为发行套件:Slackware、Redhat、Debian、Fedora、SUSE、CentOS、Ubuntu、红旗 … …
- Redhat Linux:从Redhat9.0后,不再遵循GPL协议,收费(但是仍然开源)
- Fedora(Redhat另一个分支):仍然保持GPL协议,类似Redhat测试版
- CentOS(Redhat另一个分支):Community Enterprise Operating System。相当于以Redhat所发布的源代码重建成符合GPL的Linux,即Rduhat Linux的翻译版。CentOS是我们课程中使用操作系统的版本。
1.虚拟机
安装虚拟机:(选择vbox)
没有64位操作详情:安装Virtualbox虚拟机没有64位选项如何选择_JIE_ling8的博客-CSDN博客
注意如果ibos
3种网络模式:
(1)桥接模式 直接连接到实际的网络上。
(2)NAT模式 VMnet8连接虚拟机网卡,NAT service充当路由器左右
(3)主机模式 你能与宿主机进行通信,不能练到实际网络上。
2.安装xshell
通过虚拟机命令 ip addr找到虚拟机地址,连接。(用xshell可以复制粘贴,并便于鼠标控制操作)
三.常用命令操作
1.目录结构
2.常用命令:
1.关闭服务器:poweroff
2.重启服务器:reboot
3.查看当前登录用户:whoami
4.切换到lyj用户:su lyj
5.修改用户密码 passwd [username] 不写username默认root 普通用户只能修改自己的密码。
6.切换目录 cd /
7.查看目录 ls (-a查看隐藏文件夹)
8.查看当前路径pwd
9.在当前路径创建一个文件 touch a.txt
10.编辑文件 vi 文件名
进入时是命令行模式,只读
点击a,i,o进入编辑模式,进行编辑
在命令行模式下,输入:进入尾行模式,
:w 保存改动内容到当前正在编辑的文件 :w filename (输入 「w filename」将文章以指定的文件名filename保存) :wq (输入「wq」,存盘并退出vi) :q! (输入q!, 不存盘强制退出vi)
11.查看文件内容
cat 文件名
12.追加内容 echo "helloworld" >>hello.txt
echo “插入内容” >> study.txt 向后追加插入 > 覆盖插入
13.cp内容 cp -r /路径 /路径
14.移动内容 mv /路径 /路径
15.删除内容 rm /路径
rm -r /root/test递归删除 rm -rf /root/test递归删除 #强制快速删除,不进行对话
16.查看一篇文章前n行/后n行
head -10 /root/article.txt
tail -10 /root/article.txt
17.查找一下my.txt文件所在的位置
find / -name my.txt
18.过滤文件中含有的内容
方法一:grep '中国' /路径
方法二:sed -n '/中国/p' /路径
方法三:awk '/中国/ {print }' /路径
19.管道命令:命令| 命令 (右边命令执行前的内容为左边命令执行后结果)
20.cd到root家目录下之后,查看root家目录下的内容,过滤出my.txt文件并查看该文件中的内容。
错误:ls /root|grep my.txt|cat
正确: ls /root|grep my.txt|xargs cat
21.直接导入文件的工具 (lrzsz)
安装:yum install lrzsz
rz -bye 打开要导入文件的窗口
3.高级命令:
1. grep grep [参数] '匹配关键字' fileName
主要参数: grep --help可查看
-c:只输出匹配行的计数。
-i:不区分大小写。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
2.sed sed [参数] [动作]
-n:使用安静模式。在一般 sed 的用法中,所有来自stdin的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed特殊处理的那一行或者动作.才会被列出来。
-e:直接在命令列模式上进行 sed 的动作编辑。
-f:直接将 sed 的动作写在一个文件内,-f file 则可以运行 file内的 sed 动作。
-r:sed 动作支持的是延伸型正则表达式的语法。
-i:直接修改读取的文件内容,而不是输出到终端。
使用示例
********以"行"为单位的新增/删除********
<1> 将/etc/passwd的内容列出并且打印出行号,同时,请将第2-5行删除
命令 nl /etc/passwd | sed '2,5d'
说明:d就是删除动作
<2> 只删除第2行
命令 nl /etc/passwd | sed '2d'
<3> 删除第3行到最后行
命令 nl /etc/passwd | sed '3,$d'
<4> 在第2行后面加上"hello man!"字样
命令 nl /etc/passwd | sed '2a hello man!'
<5> 在第2行后面加上多行字符串"hello man!"和"yeah!,ok!"字样
命令 nl /etc/passwd | sed '2a hello man!\
yeah!,ok!'
说明:每一行之间都必须要以反斜杠[\]来进行新行的添加!
********以"行"为单位的替换与显示********
<1> 将2-5行的内容取代成"2-5行内容汇总"
命令 nl /etc/passwd | sed '2,5c 2-5行内容汇总'
<2> 仅列出/etc/passwd文件内的第5-7行
命令 nl /etc/passwd | sed -n '5,7p'
********数据的查找并显示********
<1> 搜索/etc/passwd有root关键字的行
命令 nl /etc/passwd | sed '/root/p'
注意事项:不管有没有命中搜索关键字,所有行均会原样进行输出。
<2> 使用 -n只打印匹配行
命令 nl /etc/passwd | sed -n '/root/p'
********数据的查找并删除********
<1> 删除 /etc/passwd所有包含root的行,只输出其他行
命令 nl /etc/passwd | sed '/root/d'
********数据的查找并执行命令********
<1> 匹配上"root"字符串后,搜索/etc/passwd,找到root对应的行,执行后面花括号的一组命令
命令 nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p}'
说明:每个命令之间用分号分隔。
********数据的查找并替换********
<1> 把/etc/passwd中的"root"替换成"rootUser"
命令 nl /etc/passwd | sed 's/root/rootUser/g'
********多点编辑********
<1> sed承接多个编辑命令,如:删除/etc/passwd第三行到末尾的数据,并把bash替换成blueshell
命令 nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'
********直接修改文件内容********
<1>在test.txt最后一行加入[This is a test]
命令 sed -i '$a This is a test' test.txt
3.awk awk '{pattern + action}' {filenames}
pattern就是要表示的正则表达式,用斜杠括起来。而action是在找到匹配内容时所执行的一系列命令。
4. seq
seq [选项] 尾数
seq [选项] 首数 尾数
seq [选项] 首数 增量 尾数
实例:
1.产生5以内的整数
seq 5
2.产生2-10的整数,步长为2
seq 2 2 10
3.产生98~101之间的整数,并且要求输出数字宽度相同,不足的用空格补足
命令 seq -f "%3g" 98 101
4.-s设置间隔符
5.-w固定宽度(输出同宽)-w,-f不能同时使用
5.cut
cut选项 参数. 选项 -b:仅显示行中指定直接范围的内容 -c:仅显示行中指定范围的字符 -d:指定字段的分隔符,默认的字段分隔符为“TAB” -f:显示指定字段的内容 -n:与“-b”选项连用,不分割多字节字 --complement:补足被选择的字节、字符或字段
例:cut -f 2 --complement test.txt
选项提取指定字段之外的列(打印除了第二列之外的列)
6.sort
sort选项.参数.
-b:忽略每行前面开始出的空格字符;
-c:检查文件是否已经按照顺序排序;
-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
-f:排序时,将小写字母视为大写字母;
-i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;
-m:将几个排序号的文件进行合并;
-M:将前面3个字母依照月份的缩写进行排序;
-n:依照数值的大小排序;
-o<输出文件>:将排序后的结果存入制定的文件;
-r:以相反的顺序来排序;
-t<分隔字符>:指定排序时所用的栏位分隔字符;
+<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
7. wc命令
统计文件中有多少行,多少字,多少字符
1.命令格式
wc [-lwm] filename
2.参数
-l:仅显示行数
-w:仅显示字数英文单词个数.
-m:字符数
3.常用示例
查看一个文件中有多少行
wc -l input.txt
四:扩展安装
3.linux 相关软件安装
-c 新建归档文件 -r 向归档文件末尾追加文件 -x 从归档文件中解出文件
- o 文件解开到标准输出 -v 处理过程输出相关信息 -f 对普通文件操作
- z 调用gzip压缩归档文件,与-x连用完成解压缩
- Z 调用compress来压缩归档文件,与-x连用解压缩
源码安装
1.导入本地安装包 rz -bye
2. 解压压缩 tar -jxvf xxx.tar.bz2 / tar -zxvf xxx.tar.gz
3. 校验环境 ./configure
4. 编译 make
5. 安装 make install
6. 清除临时文件 make clean
二进制安装 jdk
1.导入本地安装包 rz -bye
2. 解压压缩 tar -zxvf jdk
3.配置环境变量 vi /etc/profie
4.最后一行配置
JAVA_HOME=xx/x/ jdk…
JRE_HOME= $JAVA_HOME/jre
CLASS_PATH= .:$JAVA_HOME/lib:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME JRE_HOME CLASS_PATH
5.环境变量生效 source /etc/profile 验证 javac -version
yum安装 mysql
1.官网下载依赖 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
(如果没有wget则需安装 yum -y install wget)
2.使用yum安装mysql库 yum -y install mysql57-community-release-el7-10.noarch.rpm
3.安装mysql服务 yum -y install mysql-community-server
4.查看状态,开启服务 service mysqld status service mysqld start
5.获取首次登录密码 登录 cat /var/log/mysqld.log | grep password mysql -uroot -p
6.重置密码
7.打开端口号、关闭防火墙 lsof -i:3306 service firewalld stop
8.授权mysql远程连接服务
五.ssh密码登录
主机名
hostname 查看主机名
hostname tom 临时设置主机名为tom,重启后失效
hostnamectl set-hostname tom 永久生效
DNS域名系统,解决域名和ip对应查询问题
vi /etc/hosts
#配置主机名称和ip对应关系
192.168.0.108 mark
192.168.0.196 mark01
1、客户端A访问服务端B
在A生成秘钥对 ssh-keygen -t rsa 默认位置在~/.ssh/id_rsa(私钥)、 id_rsa_pub(公钥)
2、将A生成的公钥id_rsa_pub这个文件发送到B
scp -P 22 ~/.ssh/id_rsa_pub root@B的ip、主机名:~/
3、B接收到公钥id_rsa_pub文件,注册到授权列表
①、touch ~/.ssh/authorized_keys (创建注册表文件)
②、cat ~/.ssh/id_rsa_pub >> ~/.ssh/authorized_keys
4、测试
在A端 执行 ssh B的ip地址
如果没有提示输入密码并登陆进去了 那么说明配置免密成功
5.添加用户、分组、删除
useradd tianliang 新建用户
passwd tianliang 设置密码
id user 显示用户信息
groupadd tlgroup //新建tlgroup工作组
useradd -g tlgroup tianliang //新建tianliang用户并增加到tlgroup用户组。
其中-g所属组
usermod -g tlgroup tianliang //修改用户的gid,即修改所属组
gpasswd -a tianliang tlgroup //将用户追加到组tlgroup中
usermod -G tlgroup tianliang //将用户追加到组tlgroup中,tlgroup为非主组
userdel tianliang 删除用户
userdel -r tianliang 永久删除
gpasswd -d tianliang tlgroup 用户组中删除用户
groupdel tlgroup 删除用户组