Linux操作系统
一,操作系统:
- 操作系统是软件与计算机硬件进行交互的一个媒介
- 分类
- 1,桌面操作系统
- windows:用户量
- macos:苹果研发,主用设计
- linux:软件较少
- 2,服务器型操作系统
- linux:占用量达到90%
- windows server:微软开放的,收费
- 3,移动设备操作系统
- Android:安卓手机系统,开源,基于Linux
- iOS:苹果手机系统,闭源
- 嵌入式操作系统:Linux为主的,常见的摄像头,电饭煲等设备
二,Linux:
- linux是一款多用户,多任务的命令行式的服务器型操作系统
- 多用户:支持多个用户登录使用
- 多任务:支持多个任务同时运行
- 命令行式:使用命令的方式操作系统
- 服务器型:90%以上的服务器都会使用Linux系统
Linux优缺点
- 优点:开源,免费,运行速度快,安全性比较好,稳定行较高
- 缺点:软件比较少,界面比较丑陋,操作难度偏大,学习成本较高(命令行)
- 发行版本 Linux实际上是一个操作系统的内核,并不是一套完整的操作系统,一些厂商讲Linux内核与一些实用工具和操作手册打包在一起就形成看发行版本,并且,发行版本提供了便捷的安装界面以及配置工具
【主流发行版本】:
- Redhat:小红帽,企业版的Linux发行版本,收费
- centos:与小红帽有97%的相似,免费
- Ubuntu:界面比较美观
- suse:华为项目用的比较多
- 麒麟:国产系统
三,安装Linux
- 安装虚拟机软件
- VMware:
- 是一款虚拟机软件,可以模拟出一个/多个电脑,用来安装不懂的操作系统,安装centos
- 1,安装vmvare,找到虚拟机的安装包,双击--下一步--直到点击安装,打开虚拟机--输入密钥--完成/进入虚拟机--关闭打开的虚拟机,重新开启
- 2,打开虚拟机,进行虚拟机设置,备注:打开虚拟机报错解决方法:1.提示:无法连接mks:win+r--services.msc--打开v开头的虚拟机 程序.启动
- 2.提示inteI VT-x禁用:电脑重启--再关机后.重启时,一旦出现光亮,立即按F1,多按几次 --进入Blos界面--找到security--进入virtual(倒数第三个)--把DIsable修改成enable(空格健修改)--按F10--按YES(enter健)--就可以重新启动
- 3,找不到文件:虚拟机-主页-打开虚拟机-找到虚拟机存放文件夹--点击虚拟机 3,重新引导
- 连接工具:xshell
- 1,安装xshell
- 2,在Linux操作系统中ifconfig找到ip 3,打开xshell连接
- 登录界面认识
- [root @ xumeng ~]# 有一个超级用户root,登录了xumeng 这台计算机,在计算机的家目录的位置
- root:代表登录的用户名
- xumeng:代表计算机的名字
- ~ :代表登录后的位置,~代表家目录
- # :身份象征符,代表的是超级用户
- $ :代表的是普通用户
四,常用基本命令
- 常用目录
- /:根目录
- ~:家目录(root用户的家目录/root,但是普通用户是在/home/用户名)
- .:当前目录
- ..:上级目录 或者 父目录
- cd:切换路径(改变文件位置)
- whoami 查看当前登录用户
- pwd 显示当前所在位置[eg:/root/a 其中第一个/表示根目录,其他的/表示文件夹之间的分隔符]
- ls 查看当前位置的内容
- ls -a 查看当前位置的内容,包括隐藏内容
- ll 查看当前位置的内容(详情)
- ifconfig 查看IP位置
- clear 清除屏幕上的历史命令
五,路径
- 路径就是文件在系统中的存储位置
- 在Linux中,路径可以分为两大类:
- 1,绝对路径:以根目录开始的路径
- 2,相对路径:不以根目录开始的路径
- 练习一下:
- 1,当前在/,想进入b1目录
- 2.当前在b目录,想进入b2目录
- 3,当前在a1目录,想进入a2目录
- 4,当前在a2,想进入b2
六,目录操作
- 1,新建目录 make directory
- mkdir 目录名 --新建空目录
- mkdir -p 目录层级 --新建非空目录
- 2,删除目录
- rmdir 目录名 --删除空目录
- rm -rf 目录名 --删除非空目录[慎用]
- 3,复制目录 copy
- cp -r 目录名 路径 --将目录移动到某个路径
- 4,备份目录
- cp -r 目录名 目录名.bak --将目录备份
- 5,移动/剪切目录
- mv 目录名 路径 --将目录移动在某个路径
- 6,改名路径
- mv 旧目录 新目录 --给目录改名
- 7,查看目录大小
- du -sh 目录名
- 8查看目录结构
- tree 目录名 (备注:如果没有tree命令,要先安装:yum -y install tree)
- 举例:
- 1.mkdir a
- mkdir -p b/c
- 2.rmdir a
- rm -rf b
- 3.cp -r a /home/xumeng
- 4.cp -r a a.bak
- 5.mv a /
- 6. mv a b
- 7.du -sh a
- 8. tree a
- 练习:
- 1.在根目录下创建目录abc
- mkdir /abc
- 2.删除/home目录下的x目录
- rm -rf /home/x
- 3.将/opt目录下的y目录复制到/home
- cp -r /opt/y /home
- 4.将/opt目录下的y目录剪切到家目录
- mv /opt/y ~
- 5.将根目录下的目录abc改名为aaa
- mv /abc /aaa
七,文件操作
- 1.创建文件
- touch 文件名
- 2.删除文件
- rm -f 文件名
- 3.复制文件
- cp 文件名 路径
- 4.备份文件
- cp 文件名 文件名.bak
- 5.移动/剪切文件
- mv 文件名 路径
- 6.改名文件
- mv 旧文件名 新文件名
- 7.查看文件大小
- du -sh 文件名
- 8.查看文件内容
- cat 文件名 :一次性查看文件内容,适用于小文件
- more 文件名 :按空格键继续,按Q键退出--到了文件结尾会退出
- less 文件名 :按空格键继续,按Q键退出--到了文件结尾不会退 出,可以上下翻页
- head -n 文件名 :查看文件的前N行
- tail -n 文件名 :查看文件的后N行
- head -n 文件名 | tail -n :先从前面查N行,再从查询结果中后面取N行 备注:如果查看日志文件:tail -n 日志文件名
- 9.查看文件行数
- wc -l 文件名
- 10.查找文件/目录
- find 路径 -name 文件名
- 通配符: *
- 前模糊: *值
- 后模糊: 值*
- 前后模糊: *值*
- 备注:find可以将文件和目录都找出来
- find . -name '*a*' --查找当前位置下名字中包含a的文件或者目录
- --只查找文件
- find 路径 -type f :遍历
- ll | grep ^- :仅查找当前位置的文件
- --只查找目录
- find 路径 -type d
- 11,在文件中查找关键字
- grep 关键字 文件名 --显示关键字所在的行的内容
- grep -n 关键字 文件名 --显示关键字所在的行的内容的行号
- grep -i 关键字 文件名 --忽略大小写查找
- 12,覆盖文件
- cat x1>x2 --用x1覆盖文件x2
- >:定向输出符,把前面文件的内容定向输出到后面的文件中
- 九.网络命令
- 13,清空文件
- cat /dev/null>x2 :用空文件/dev/null清空文件x2
- 14,追加文件
- cat x1 >> x2 :将文件x1的内容追加到文件x2的后面
- >>:追加符,把前面文件的内容追加到后面的文件后
- 15,监控文件
- tail -f 日志文件 :监控日志文件
- tail -f -n 数字 日志文件 :监控日志文件的后n行
- tail -f -n 3 install.log :监控日志文件的后三行
- 练习:
- 1,查看文件1.nul的第五行至第十行
- head -10 1.nul | tail -6
- 2,查看文件1.nul的倒数第二行
- tail -2 1.nul | head -1
- 3,查看文件1.nul的倒数第五行到倒数第10行
- tail -10 1.nul | head -6
- 常用命令:
- clear:清屏
- ctrl + c :终止命令
- ctrl + z :撤销命令
八,编辑文件【vi编译器】
- vi编辑:是Linux的编辑器,可以对Linux的文件进行编辑
- vi编辑有三种模式 编辑模式 末行模式
- 如何进入vi编辑: vi 文件名 ----首先进行的命令模式
- 8.1 命令模式:
- gg --跳转到首页
- ngg --跳转n行
- G --跳转到最后一行
- ^ --行首
- $ --行尾
- yy --复制一行
- nyy ---复制n行
- dd --剪切/删除一行
- ndd --剪切/删除n行
- p(大写) --向上粘贴
- p(小写) ---向下粘贴
- u --撤销操作
- x --删除当前字符
- /字符 --向下查找字符,按n健继续查到下一个
- ?字符 --向上查到字符,按n健继续查到下一个
- 练习题:
- 1,将一行复制到最后一行
- gg -- yy -- G -- p(小)
- 2,将第五行移动到到倒数第二行
- 5gg -- dd -- G -- p(大)
- 3,将6-9行放到文件的最后
- 6gg -- 4dd -- G -- p
- 4,将5-10行放在文件的最前面
- 5gg -- 6dd -- gg -- p
- 8.2 编辑模式
- a:在光标后插入内容
- i:在光标前插入内容
- s:替换当前字符插入
- o:另起一行插入nr
- 8.3 末行模式
- :set nu ---显示行号
- :set noun --取消行号
- :w --只保存,不退出
- :q --只保存,不退出(对于未修改的文件)
- :wq --保存退出
- :q!--强制退出(如果有改动,会提示使用!)
- :wq!--强制保存退出(文件所有者通过 wq!可以保存只读文件)
- :%s:值1:值2 --将每一行的第一个 值1 替换为值2
- :%s:值1:值2:g --将每一行的每一个的 值1 替换为值2
- :数字1,数字2s:值1:值2 --将数字1到数字2的每一个 值1 替换为为值2
- :数字1,数字2s:值1:值2:g --将数字1到数字2的每一个 值1 替换为值2
- 举例:
- :%s:abc:aaa --将每一行的每一个abc替换为aaa
- :%s:abc:aaa:g --将每一行的每一个abc替换为aaa
- :3,5s:abc:aaa --将3-5行的每一个abc替换为aaa
- :3,5s:abc:aaa:g --将3-5行的每一个abc替换为aaa
九,用户操作
- useradd tracy 创建用户,叫tracy
- cat /etc/passwd 查看用户信息
- usermod -1 lily tracy 修改用户tracy为lily(usermod -1 新用户 旧用户 -1 :login)
- usermod -u 505 lily 修改用户lily的用户id为505
- usermod -g 500 lily 修改用户lily的用户id为500(组id要存在)
- useradd -g 500 lucy 创建一个用户lucy,把他指定添加500的组(组id要存在)
- passwd lucy 修改用户lucy的密码
- id lucy 查看lucy的用户信息
- su - lily 切换到用户lily,并拥有lily的权限
- exit 退出用户
- userdel lily 只删除用户,不删除用户的文件
- userdel -r lucy 彻底删除用户,包括用户的文件
- 备注:没创建一个用户,Linux会自动创建以用户命名的组,以及家目录文件
十,组的操作
- groupadd abc 创建一个组叫abc
- cat /etc/group 查看组的信息
- groupmod -n aaa abc 把abc的组改名为aaa(groupmod -n 新组名 旧组名)
- groupmod -g 502 abc 把组abc的id更改为502 (groupmod -g 新组id 组名 -- 组id是没有组使用的id)
- groupdel abc 删除组abc
十一,打包压缩
- zip:
- zip:可以对文件和目录及进行压缩,可以一次压缩多个,压缩完之后,源文件还存在---以.zip结尾
- zip -r 压缩包名.zip 文件/目录 --对文件/目录进行压缩
- unzip 压缩包.zip ---解压
- unzip 压缩包.zip -d 路径 --将压缩包解压到指定路径
- 举例:
- zip x.zip x1 x2 a --将x1 x2文件和目录一起压缩成x.zip
- unzip x.zip --解压x.zip
- unzip x.zip -d .. ---将x.zip压缩包解压到上级目录
- 备注:
- 1.zip只压缩文件或者单层目录,可以用zip 压缩包名 文件/目录名
- 2.zip压缩非空目录,要用 zip -r 压缩包名 目录名
- gzip:
- gzip:对文件进行压缩,一次只能压缩一个文件,压缩之后源文件消失--以.gz结尾
- gzip 文件名 --对文件进行压缩
- gzip -1 文件.gz --查看压缩比例
- gunzip 文件.gz 解压文件
- gzip -d 文件.gz 解压文件
- gzip -n 文件 --按照指定压缩等级压缩文件gzip -n 文件 --按照指定压缩等级压缩文件[n表示压缩等级,是一个1-9的数字,数字越大,表示压缩机别越 高]
- 举例:
- gzip x --对文件x进行压缩,会自动生成x.gz
- gzip -l x.gz --查看x.gz的压缩包
- gunzip x.gz --解压x.gz
- gzip -n 文件 --按照指定压缩等级压缩文件[n表示压缩等级,是一个1-9的数字,数字越大,表示压缩机别越 高]
- tar:
- tar:打包,可以将多个文件或者目录打包成一个,打包后的文件不改变大小 -- 以.tar结尾
- tar -cvf a_x1_x2.tar a x1 x2 --将a 和x1 x2 打包成a_x1_x2.tar
- tar -tvf a.tar --查看包a.tar
- tar -xvf a.tar --解包 a.tar
- 因为打包后的文件大小不变,如果要压缩还需要进一步操作,所以延伸为打包压缩:-以.tar.gz
- tar -czvf a.tar.gz a x1 x2 --将a目录和x1 x2文件打包压缩成a.tar.gz
- tar -tzvf a.tar.gz --查看压缩包a.tar.gz
- tar -xzvf a.tar.gz--解压解包 a.tar.gz
- tar -xzvf a.tar.gz -C /home --将压缩包解压解包到/home目录
十二,权限
- 12.1,linux里面的权限类型:r w x
- r:read 读
- w:write 写
- x : execute 执行
- 12.2,权限对应的对象有:
- u :user 用户自己
- g :group 组内
- o :other 其他人
- a :all 所有人,指 ugo
- 12.3,查看权限
- ls -l :以列表的形式显示当前目录下所有内容信息,包含文件类型,权限,大小等
- ll :等同于 ls -l
- ls -lh:等同于ls -l ,只是文件大小以kb为单位,当文件很大是会以M或者G显示
- drwxr-xr-x. 2 root root 4096 4月 26 16:12 a
- 第一位:代表文件类型,d表示目录,-表示文件
- 2-10位:表示文件的权限
- 2: 表示硬链接的个数(了解)
- root:所属用户--这个文件属于哪一个用户
- root:所属组--这个文件属于哪一个组
- 4096:文件大小,以字节为单位
- 4月 26 :表示创建日期
- 16:12 :表示最后修改时间
- a :表示文件或者目录的名字
- rwxr-xr-x:
- 前三个:代表用户的权限
- 中间三个:代表组的权限
- 后三个:代表其他人的权限
- 备注:权限的顺序必须是 rwx,针对的对象的顺序也必须是有序的:用户 组内 其他人
- 没有的权限就用 - 表示
- 12.4,chmod修改权限
- chmod :change mode
- chmod g+w aa ---给文件aa修改权限:组内人增加写的权限
- chmod u+x,o-r aa ---针对文件aa给自己增加执行权限,其他人减少读的权限
- chmod u-x,g+w,o-r c --针对C目录,自己减少执行权限,组内增加写的权限,其他人减少读的权限
- chmod u=rwx,g=rw,o=x b --修改b目录的权限为自己读写执行,组内读写,其他人执行chmod 761 b
- chmod u=rw,g=wx,o=rx b --修改b目录权限为:自己:读写 组内:写执行 其他人 :读执行
- chmod 635 b
- 12.5,权限的数字表示法
- r:读 4
- w:写 2
- x:执行 1
- chmod u=rw,g=wx,o=rx b --修改b目录权限为:自己:读写 组内:写执行 其
- 他人 :读执行
- 等同于
- chmod 635 b
- chmod 63 b ===chmod 063 b --自己没有权限,组内人有读写权限,其他人写执行权限
- chmod 7 b —自己和组内人没有权限,其他人有读写执行的权限
- chmod -R 653 a.bak --将目录a.bak以及子内容的权限都修改为自己读写,组 内读执行,其他人写执行
- 12.6,chown 修改文件所属用户
- chown lily x1 --将x1文件的所属用户更改为lily
- 备注:更改的用户一定要存在
- chown -R lily a --将a以及子内容的所属用户修改为lily
- 12.7,chgrp 修改文件所属组
- chgrp 修改文件所属组
- chgrp -R abc a.bak --将a.bak以及子内容的所属组修改abc
- chown lily:abc b.unl --同时修改b.unl文件的所属用户为lily,所属组为abc
- chown -R lily:abc a.bak --同时修改a.bak以及子内容的所属用户为lily,所属组为abc
十三,网络命令
- 1.查看ip地址
- ifconfig
- 2.查看网络是否连通
- ping ip地址 --如果有返回值,表示网络连通,否则不是
- 3.查看端口
- netstat -an —查看系统目前在使用的端口
- netstat -an | grep 端口号 --查看端口是否被占用
- 4.启动网卡
- ifup eth0
- 启动第三张网卡
- ifup eth2
- 5.关闭网卡
- ifdown eth0
- 6.重启网络
- service network restart
- 7.修改ip地址
- 1.setup---网络设置中修改--保存--重启网络 —永久修改ip地址
- 2.ifconfig eth0 ip地址 netmask 子网掩码 ---临时修改ip
十四,系统命令
- 关机:
- halt
- init 0
- shutdown -h now —立即关机
- shutdown -h 00:00 —12:00关
- 重启:
- reboot
- init 6
- shutdown -r now --立即重启
- ps -ef --查看进程
- ps -ef | grep java --查看java的进程
- kill pid(进程id) ----杀掉进程
- kill -9 pid ---强制杀死进程
- yum -y install 服务名 ---安装程序
- 举例:
- yum -y install httpd
- service httpd start/restart/stop/status --apache服务启动/重启/停止/查看状态
- free -m --查看内存
- df -h --查看磁盘
- top --动态查看系统资源
- vmstat 2 3 --每2秒打印一次系统资源,一共打印3次
- env --查看环境变量
- date --查看时间
- date -s '2020-04-28 11:00:00' --修改时间
- cal --查看日历
- 查看系统版本:
- cat /etc/centos-release
- 远程复制:
- scp -r root@192.168.0.130:/opt/x1 .
- --从ip为192.168.0.130的root用户的/opt目录下将x1复制到当前位置
- scp -r /opt/x1 root@192.168.0.130:/
- -将自己的/opt/x1复制到ip为192.168.0.130的root用户的根目录下
- scp -r 别人的用户名@别人的ip地址:要复制的文件的路径 目的地路径--从别人那复制给自己
- scp -r 要复制的文件的路径 别人的用户名@别人的ip地址:目的地路径 --从自己这里复制给别人