linux基础篇

linux虚拟机软件

VMware Fusion 11 版本

因为可以较好的兼容macOS 10.14版本

linux系统映像版本CentOS-7.5版本

远程连接虚拟机工具

mac可使用终端指令即可 也可以下载iterm更加方便

win电脑可以下载xshell7软件进行连接

常见问题处理

无法连接网络

解决:查看是否有ip地址 如果没有手动设置网卡路径

vi /etc/sysconfig/network-scripts/ifcfg-eth0

vi /etc/sysconfig/network-scripts/ifcfg-ens33

进入到网卡配置页面

插入数据IPADDR = 10.0.0.200

重启网卡 systemctl restart network

xshell连接不上虚拟机
1.先确定虚拟机的ip地址
2.连接虚拟机(ip地址 用户信息)

命令提示符

[moongod@localhost ~]$

moongod表示当前登录账户名
localhost表示为主机名称
$代表普通用户身份
#代表为管理员身份

切换管理员命令 su root
然后输入管理员密码即可

命令格式语法规范 :linux中命令严格区分大小写,还有空格

查询文件目录结构:一切都从根目录开始一级一级向下查询
路径信息查找⽅法
 	绝对路径:从根开始查找 /etc /etc/hosts
     缺点:如果层级⽐较多的时候,利⽤绝对路径查找数据会⽐较麻烦
     优点:定位查询数据的准确性更⾼
      
相对路径:不从根开始进⾏查找, 相对于当前路径⽽⾔, 进⾏查找数据
     优点:如果层级⽐较多的时候,利⽤相对路径查找数据会⽐较⽅便
     缺点:路径信息不正确,数据⽆法有效查询到

系统运行命令

查看命令的使用方法
man 命令名称

关机命令  shutdown
    shutdown -h 10  # 指定多少分钟后进行关机
	  shutdown -h now # 立即关闭虚拟机
 
重启命令
    shutdown -r 10  # 指定多少分钟后重启
    shutdown -r now # 立即重启虚拟机
    
    shutdown -c     # 取消定时任务

快捷命令大全

1. 显示历史输入命令信息
   方向键 上 下
 
2. 清除所有屏幕信息
   ctrl+1
   clear
    
3. 取消正在执行的命令
   ctrl + c 
   cancel
    
4. 光标快速移到行首
   ctrl + a

5. 光标快速移到行尾
   ctrl + e
  
6. 光标所在位置到行首位置 剪切
   ctrl + u
   将光标所在位置到⾏尾的信息进⾏删除(剪切)
   ctrl + k 
  
07.将剪切内容进⾏粘贴回来
 	 ctrl + y
08.锁定系统窗⼝信息状态
 	 ctrl + s
   解锁系统窗⼝信息状态
 	 ctrl + q
09.系统命令补全快捷⽅式(重点)
 	 tab
10.命令⾏中快速移动光标
 	 ctrl + ⽅向键 左 右 (按照英⽂单词进⾏移动光标)

目录结构相关命令

1.显示当前所在路径位置
  pwd
  
2. 切换所在目录位置
   cd 子路径名字
   cd ..    # 返回父级目录
   cd ../.. # 返回上级的上级
   cd -     # 快速切换返回到上次的目录位置

3. 快速切换路径
   cd # 直接返回用户家目录
   cd / 直接返回根目录
   
4.创建目录
  mkdir 文件名  # 在当前目录下创建一个文件
  mkdir -p /oldgirl/oldbaby/a.txt #一次性创建多级目录

文件与文件夹相关命令

'''
执行任何有危险的命令时
可以先制作系统快照  虚拟机面板 虚拟机-快照
这样即使操作有误 也可以回退到快照的时候
'''

1.创建文件
  touch
  # 创建一个空的文件
2.查看当前下所有目录
  ls
  ls -l a.txt
  # 显示⽂件/⽬录数据 创建时间
  ls -lt
  # 按照日期排序查看所有文件
  
3.查看文件里面内容
  cat 文件名
  cat a.txt > b.txt
  # 将a.txt的内容写入b.txt中 并把b.txt的内容清除覆盖 wb写入模式
  
4.在空的文件中写入信息
  echo
  echo hello world > a.txt 
  # 将hello world 写入 a.txt中 wb写入模式 会把之前的内容清除
  
  写入文件
  echo a.txt > b.txt
  # 将a.txt的内容写入b.txt中 并把b.txt的内容清除覆盖 wb写入模式
  echo a.txt >> /b.txt/c.txt
  # 多级目录
  
5.对文件或目录进行拷贝
  cp
  cp/etc/hosts /moon01/
  # 将cp/etc/hosts路径下的文件 复制到 根目录下moon01文件夹中
  如果根目录下没有这个文件 这会生成一个
  
  如何复制整体的所有的目录文件
  cp -r /etc/sysconfig/ /moon01/
  
  
6.cp主要功能备份
  cp moon01.txt moon01.bak
  # 提前将数据复制备份了一份
  # 如果需要数据再复制回来就好了
  cp moon01.bak moon01.txt
  
     常⻅问题:
     在复制⽂件时,不要在⽂件名称后⾯加上/ ⼀般只有⽬录后⾯有/
     ⽂件没有存在会直接复制,如果已经存在会提示是否覆盖
     cp -a
     -a == -d + -r + -p
     -d 和链接⽂件有关
     -R 进⾏递归复制
     -p 保持属性不变 
      
      
7.对文件或目录进行移动
  mv
  mv 参数 要移动的文件 移动到什么位置
  1.先验证是否有对应的⽬录 ⽆则先创建
  2.确认⽆误后再移动
  mv /etc/selinux/config /moon01/config
  # 不要移动系统核心文件,只操作自己创建的文件即可
  
8.对文件重命名
  mv hosts hosts001
  
9.文件删除命令
  rm
  re 参数 要删除的文件
  '''rm操作最好是切换到⽬标数据所在位置删除不推荐使⽤绝对路径'''
  re hosts01
  # 删除当前目录下的hosts01文件
  如果有报错可以尝试强制伤处
  re -r hosts01
  
  # 如何强制删除数据信息
  rm -f olddog.txt 不提示
  rm -rf jason 不提示
  

文件编辑命令

vi(系统自带的)与vim(第三方工具)

yum install vim tree bash-completion -y
vim下载命令

编辑文件步骤
1.利用vi/vim 命令打开文件
  vi moon.txt
2.进入文件后 按键盘上的小写字母 i
  进入编辑模式insert
3.进行编辑文件
4.编辑完成后退出编辑模式 esc
5.:wq保存并退出 

如果不想保存直接退出 :!q 即可

编辑相关快捷方式

1.光标快速移动快捷⽅式
     如何将光标快速移动到最后⼀⾏ # ⼤写字⺟ G
     如何将光标快速移动到第⼀⾏ # ⼩写字⺟ gg
     如何快速移动光标到中间指定⾏ # ⼩写字⺟ 10gg
     如何快速移动光标到⼀⾏的⾏尾 # 符号信息 shift+$
     如何快速移动光标到⼀⾏的⾸部 # 数字信息 0
 
2.移动光标转为编辑状态
     如何快速移动光标到下⼀⾏并进⼊编辑状态 # ⼩写字⺟ o
     如何快速移动光标到⼀⾏的⾏尾并进⾏编辑 # ⼤写字⺟ A
     如何快速删除光标所在位置到⼀⾏⾏尾所有信息并进⼊编辑状态
    # ⼤写字⺟ C
     如何清空当前⾏的所有内容信息并进⼊编辑状态 # ⼩写字⺟ cc
 
3.快速编辑⽂本内容信息
     如何复制⽂本信息 ⼩写字⺟ yy
     如何复制多⾏信息 3yy
     如何粘贴⽂本信息 ⼩写字⺟ p
     如何粘贴多⾏信息 3p
     如何删除⽂本信息 ⼩写字⺟ dd 实际是将指定⾏信息进⾏
    剪切
     如何删除多⾏信息 3dd
     将光标所在⾏到最后⼀⾏都删除 字⺟ dG
4.特殊操作⽂本内容⽅式
     如何显示⽂本⾏号信息/如何取消⾏号 :set nu/:set nonu
     如何撤销编辑信息 ⼩写字⺟ u undo
     如何取消撤销操作 ctrl + r redo
     快速搜索⽂件信息 /待搜索内容
     按n查找下⼀个匹配项 shift+n上⼀个匹配项
5.批量操作⽂本内容
     批量删除操作
     第⼀个步骤:移动光标到相应位置 
     第⼆个步骤:进⼊到批量编辑模式(视图块模式)
     ctrl + v
     第三个步骤:选中多⾏信息
     ⽅向键选中
     第四个步骤:进⾏删除
     ⼩写字⺟ d 或者 x(删除光标选中的内容)

linux系统文件目录结构

bin目录
	存放二进制命令文件
sbin目录
	存放管理员二进制命令文件
etc目录
	存放系统或者服务的配置文件
mnt目录
	临时挂在目录(资源的入口)
opt目录
	存放第三方软件(通常情况下就是软件的压缩包)
proc目录
	内存相关信息
tmp目录
	临时存放数据
var目录
	经常变化的文件(日志文件)
usr目录
	用户相关程序

目录结构说明

结构特点说明
 1) linux根下⾯的⽬录是⼀个有层次的树状结构
 2) linux每个⽬录可以挂载在不同的设备(磁盘)上 挂载
 
 磁盘-设备(房间) 想存储东⻄ 从⻔进⼊>:⽬录(挂载
点)
 磁盘设备 《-- 挂载 --》 ⻔(⽬录)
 
 实践操作实现挂载过程
 第⼀个⾥程:拥有⼀个存储设备(光驱)
 第⼆个⾥程:找到相应光驱设备
 [root@jasonNB ~]# ls /dev/cdrom
 /dev/cdrom
 [root@jasonNB ~]# ls -l /dev/cdrom
 lrwxrwxrwx. 1 root root 3 Dec 6 09:07 /dev/cdrom -> sr0
 第三个⾥程:进⾏挂载操作
 mount /dev/cdrom /mnt/(挂载点⽬录⼀定存在)
⽬录结构说明
 第四个⾥程:确认是否挂载成功
 ls /mnt
 第五个⾥程:取消挂载
 umount /mnt

重要目录数据

1.⽹卡配置⽂件
 /etc/sysconfig/network-scripts/ifcfg-eth0 ens33
 # 编辑⽹卡⽂件时可以先提前备份⼀份
 cp xxx /tmp/xxx.bak
 ps:esc + . 调⽤上⼀个命令最后⼀个参数信息
 # ⽹卡⽂件修改后,必须重启⽹络服务
 systemctl restart network
 
 初始化软件安装 yum install -y vim tree bashcompletion(提供命令参数补全功能 systemctl)
"""
BOOTPROTO=none 启动协议 获取IP地址的⽅法 ⾃动获取 dhcp⼿动
设置
DEFROUTE=yes 开启了默认路由 ⽹络(默认路由 动态路由 静态路
由)
NAME=eth0 ⽹卡逻辑名称
UUID=... 在虚拟化软件标识⼀些硬件设备信息
DEVICE=eth0 ⽹卡设备名称
ONBOOT=yes 确保⽹卡是否处于激活状态
IPADDR=10.0.0.200 IP地址设置
PREFIX=24 设置⼦⽹掩码确保⼀个局域⽹⾥⾯可以连接多少台主机默
认253
GATEWAY=10.0.0.254 ⽹关信息 不同局域⽹之间进⾏通讯的必经
关卡 需要和虚拟编辑器中nat⽹卡设置保持⼀致
IPV6_PRIVACY=no
DNS=114.114.114.114 DNS 域名解析服务 
"""
2.DNS服务设置⽅法
 ⽅法⼀:设置为阿⾥云dns服务器地址
 223.5.5.5
 223.6.6.6
 ⽅法⼆:通⽤dns服务器地址
 114.114.114.114
 114.114.114.119
 ⽅法三:利⽤移动dns服务器(⾕歌dns服务器)了解即可
 8.8.8.8
 ⽅法四:使⽤⽹关地址充当dns服务器地址
 10.0.0.254
 
3.⽹卡域名解析配置⽂件
 /etc/resolv.conf
 vi /etc/resolv.conf
 nameserver 114.114.114.114
 nameserver 223.5.5.5
 PS: 配置完成,⽴即⽣效 ⽹卡的dns配置优先于resolv.conf⽂
件中的配置
4.主机名称配置⽂件
 centos6 /etc/sysconfig/network 主机名称配置⽂件
 centos7 /etc/hostname 主机名称配置⽂件
 修改主机名称
 第⼀个⾥程:利⽤命令修改主机名称 # 临时修改
 hostname jasonNB
 ps:修改完成,需要重新连接,才能命令⽣效
 第⼆个⾥程:编辑修改配置⽂件 # 永久修改
 vi /etc/hostname
 centos7有特殊修改主机名称⽅式
 hostnamectl set-hostname oldboyds05
 
5.本地域名解析⽂件 /etc/hosts
 ⽹站⻚⾯信息变更
 ⼩公司 直接调试线上服务器 夜⾥操作
 ⼤企业 直接调试测试服务器测试访问 模拟真实环境访问
 京东线上⽹站服务器地址 112.65.34.1
 京东线下⽹站服务器地址 10.0.0.200
⽹络不通排查流程
etc⽬录下重要的数据⽂件
 [root@jasonNB ~]# vi /etc/hosts
 10.0.0.200 www.jd.com # 指定映射关系

linux安装软件3种方式

rpm安装、yum安装、源代码编译安装

rpm安装类似于windows中的安装包,下载下来之后直接安装,缺点是不能自己解决安装包依赖的问题

yum安装基于rpm安装。相当于rpm安装的优化版,解决了安装包的依赖问题,缺点是无法自定义安装

源代码编译安装是通过编译源代码得到软件包,优点是可以自定义定制安装软件,缺点是无法解决安装包依赖问题

yum安装

1、安装
    yum install -y [软件包的名称] 

2、卸载
    yum remove -y [软件包名称] 

3、更新
    yum update -y [软件包名称]
注意:如果跟具体的软件包名称,就会更新指定软件包;如果没有指定,则更新系统所有的需要更新的软件包。  

修改下载源 默认源是国外的在国内速度可能较慢 可以更换源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.co
m/repo/Centos-7.repo
# 将源跟换为阿里云
yum repolist
# 重启yum生效

rpm安装

1、安装
    rpm -ivh [软件包名称]

2、卸载
    rpm -e [软件包名称]

3、更新
    rpm -Uvh [软件包名称]

var⽬录下重要的数据⽂件

日志相关文件所在目录
/var/log/messages
# 服务运行情况 异常等信息
/var/log/secure
# 用户登录相关信息

# 对于⽇志⽂件过⼤必须要做切割处理
 cat /etc/services >> a.txt # 连续追加
 cat a.txt # 查看出现卡顿
 secure-0k > secure-100k > ⼤⼩范围10M > 切割securebak01 secure
 ls -l /var/log/secure* # 查看默认切割策略 按天数切割


针对每个文件中某个字段筛选
 [root@jasonNB ~]# grep # 三剑客中⽼三 
 [root@jasonNB ~]# grep "Failed" /var/log/secure

添加普通用户和权限分布

使用管理员账号

 创建⽤户
 useradd moon01
# 创建用户名
 passwd moon123
# 对这个用户名设置密码

userdel 删除用户

向标准组中添加用户
gpasswd -a <用户账号名> <组账号名>
usermod -G <组账号名> <用户账号名>
从标准组中删除用户
gpasswd -d <用户账号名> <组账号名>

安全相关优化

'''1.selinux'''
1.修改selinux设置(国⼟安全局)
 限制皇帝root⾏为,但是实际应⽤不会使⽤它来显示root较为麻烦,
基本都是关闭

2.关闭selinux服务程序
 进入 vim /etc/selinux/config文件
 然后把文件中的SELINUX属性改为
 SELINUX=disabled
  
  ps:⽂件修改之后,配置不会⽴即⽣效,需要重启liunx操作系统
使之⽣效

3.关闭防火墙 学习期间建议关闭
  systemctl stop firewalld.service # 临时关闭防⽕墙
  
  systemctl disable firewalld.service # 永久关闭防⽕墙
  
 应⽤防⽕墙场景
 建议开启:服务器可以被外界访问(公⽹/外⽹ip)
 建议关闭:服务器可以被内部访问(私⽹/内⽹ip)
 建议关闭:服务器处于⾼并发状态(公⽹/外⽹ip) 软件防⽕墙关闭 硬件防⽕墙进⾏安全控制 

上传与下载

# 1、如何让linux 和 windows系统之间传输数据信息
"""
rpm查看安装的软件有时候可能查看不到(软件名称可能更⻓)
 rpm -qa|grep vim
"""
第⼀个历程: 安装和传输数据相关的软件
 yum install -y lrzsz
第⼆个历程:利⽤lrzsz软件将数据进⾏传输
 # linux上⾯数据 
 传输给 widows主机 sz -y 数据信息
 # windows上⾯数据 
 传输给 linux主机 rz -y
 PS:空⽂件是⽆法传递的 xshell⽀持拖拽上传
 
# 2、查看系统⽂件数据信息
 ⽐较⼤的⽂件 如何查看信息
 less 逐⾏ 或者 ⼀⻚⼀⻚进⾏查看
 more 逐⾏ 或者 ⼀⻚⼀⻚进⾏查看
 以上两个查看⽂件信息命令区别说明:
 1.是否可以使⽤快捷⽅式之间区别
 less 可以使⽤
 more 禁⽌使⽤
 2.是否可以实现查看完毕⾃动退出
 less 不可以使⽤
 more 可以实现

文件的相关命令

1.显示⽂件信息类型命令 file
 file jason.txt
2.显示命令绝对路径信息 which
 which cp
3.显示命令路径以及⽂件 whereis 
 whereis cp
4. 快速定位⽂件路径信息 locate
 touch oldgirl1212.txt
 updatedb # 更新数据库信息, 便于locate命令可以进⾏查找
 locate jason1.txt
5.快速查找数据信息命令 find # 重点掌握
 语法说明: find 区域 查找⼈的类型 具体的条件
 eg:
 1.寻找⼀个jason.txt
 find /temp -type f -name "jason.txt"
 2.寻找⼀个以.txt扩展名结尾的⽂件
 find /temp -type f -name "*.txt"
 3.按照⽂件数据⼤⼩进⾏查找⽂件 查找⼤于10k的⽂件 但⼩于
10M
 find /etc/ -type f -size +10k -size -10M # 默
认递归
 # 限制查找层级
 find /etc/ -maxdepth 1 -type f -size +10k -
size -10M
6.对数据信息进⾏压缩处理
 压缩数据的命令 tar
 tar 参数信息 压缩包信息(箱⼦) 物品01(数据信息) 物品02(数据
信息)
 eg:
 1.压缩/jason、/etc/hosts⾄/jason/jason.tar.gz
 tar -zcvf /jason/jason.tar.gz /jason /etc/hosts
 z 利⽤gzip⽅式进⾏压缩数据 rar zip
⽂件权限
 c 创建压缩包 create
 v 详细执⾏操作过程 verbose 
 f 指定需要压缩的⽂件信息 file 
 2.如何检查确认压缩数据
 tar -tf /jason/jason.tar.gz
 3.解压数据⽂件
 tar -zxvf /jason/jason.tar.gz
 tar -zxvf system.tar.gz -C /oldgirl # 解压⾄指定位置

文件权限

[root@jason /jason]# ls -l
# rwxr-xr-x 9位信息表示⽂件权限
# ⽂件权限有哪些
 r read 数值 4 是否可以读取⽂件: cat file 
 w write 数值 2 是否可以写⼊⽂件: echo vim sed
 x execute 数值 1 是否可以执⾏⽂件: sh python 
 - 空了 数值 0 ⽂件没有相应权限: 没有权限 
 eg:rwx r-x --x -w-
 7 5 1 2
# 权限每三位为⼀组
 第⼀位: 只表示是否有读权限
 第⼆位: 只表示是否有写权限
⽂件所属⽤户、⽤户组
 第三位: 只表示是否有执⾏权限 **** 
 rwxr-xr-x 9位信息表示⽂件权限
# 对⼀个⽂件说, 可以有很多⼈管理
 ⽂件(你) ⽂件的所属⽤户信息--属主信息(⽗⺟教育你) 
 由9位权限位的前3位决定属主权限
 属主信息: ⼀般创建⽂件的⽤户就是⽂件的属主信息
 ⽂件(你) ⽂件的所属⽤户组信息--属组信息(亲⼈) 
 由9位权限位的中间3位决定属组权限
 ⽂件(你) ⽂件的其他⽤户信息(隔壁⽼王) 
 由9位权限位的后3位决定其他⽤户权限

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

r --> 4  读
w --> 2  写
x --> 1  执行
- 代表 0  无

所有者 = rwx = 4+2+1 = 7

所属组 = rw- = 4+2 = 6

其他人 = r-x = 4+1 = 5

chmod命令使用字母修改文件权限

[root@localhost ~]# chmod u=rwx,go=rx bashrc

chmod +用户=权限 针对哪个文件修改


增加权限
chmod 用户=+权限 文件名称
# 例如:
        chmod g=+w test.txt

无任何权限
chmod 用户=+权限 文件名称
# 例如:
        chmod u=- test.txt
版权声明:本文为你好,少年原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/moongodnnn/p/17040850.html