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地址:目的地路径 --从自己这里复制给别人
上一篇:找到字符串中的所有字母异位词


下一篇:string abc = new String("abc")