Linux

第一天:

# 一. Linux历史

## 二. 虚拟软件安装

# 虚拟化技术:kvm,vmware,openstack,docker,k8s
# iaas,paas,saas
# openstack:iaas
# docker:paas
# k8s:容器编排,管理容器,不同机器上的容器
# 网络模式:NAT,桥接,仅主机
 桥接:虚拟机和宿主机属于同一个网段
    NAT:网络地址转换,
    
    
# 快照:相当于备份一下,以后如果出了问题可以恢复到快照的状态
```



## 三. centos 7.6安装

# 32位和64位操作系统

# DHCP :
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置
# dns:可以把域名地址转换成ip地址
# 主机名:生产环境,要有意义  地址+楼层+房间号+业务
# swap分区:交换分区
# 关于分区
linux 分区结构为树结构, windows 为森林结构,所以有C盘D盘之类的, 而linux /分区就是根分区, swap可以理解为虚拟内存, /boot 这是个目录, 可以分成一个分区,然后挂载到/boot目录, 也可以只用一个/分区, 里面会有boot目录的,保存的是引导文件,内核等等的东东
```



## 四. xshell安装和连接

# 重启网卡
systemctl restart network



## 五. bash shell 介绍和使用

### 1 什么是Bash shell(壳)

是一个命令解释器,就是一个软件  执行就是bash,可以在里面输入命令,做交互,exit退出


### 2 能干什么
原来在windows上点点点完成的是,它都能做到
使用Shell实现对Linux系统的大部分管理,例如:
1.文件管理(文件创建,移动,复制,删除,编辑…)
2.权限管理(不同用户不通权限)
3.用户管理(创建,删除….)
4.磁盘管理(挂载)
5.网络管理
6.软件管理
等等


### 3 平时我们如何使用Shell呢?

1 输入命令,低效
2 shell script:shell脚本  ,批量执行命令


### 4  shell提示符

[root@lqz ~]#
# root:当前用户
# @ :没有意义
#lqz:主机名
# ~:家目录
# #:表示超级用户
[lqz@lqz ~]$ 

### 5 Shell基础语法

#  命令  选项  参数   三部分组成
ls -a  /temp      
ls --all
# 以下三个一样
ls -l -a
ls -la
ls -al

### 6 命令补全

# 一下或者两下tab建
# 一下的话会直接找到你要用的命令
# 两下,可能会用到的全列出来

# ifconfig 在7的版本没有,需要装软件
yum insatll net-tools -y
yum insatll net-tools

# yum install bash-completion -y   补齐选项
ls - 两下tab建,所有的选项都会提示出来

### 7 命令快捷键
Ctrl + a    #光标跳转至正在输入的命令行的首部
Ctrl + e    #光标跳转至正在输入的命令行的尾部
Ctrl + c    #终止前台运行的程序   ##################
Ctrl + d    #在shell中,ctrl-d表示推出当前shell。
Ctrl + z    #将任务暂停,挂至后台
Ctrl + l    #清屏,和clear命令等效。  ##############
Ctrl + k    #删除从光标到行末的所有字符
Ctrl + u    #删除从光标到行首的所有字符
Ctrl + r    #搜索历史命令, 利用关键字,Tab建选中,只能找到最近的一条
Ctrl + w    #按单词或空格进行向前删除
Ctrl + 左右建 #按单词或空格进行向前向后跳

#在命令行前加面加 "#" 则该命令不会被执行

### 8 history

# history查看历史命令
# !数字   快速执行数字那一行,比如:!70,就会执行第70行的命令
# !yum    快速执行最近一条yum命令
# history -d 70  把历史记录的第70行删除
# history -c   清空所有记录(连到人家服务器,操作完了,执行一下)
# history -w   可以把 历史记录写到用户家路径的.bash_history文件中

 

第二天:

 1 设置别名(只在当前命令窗口生效)
 alias www='ls /'  只在当前bashshell中生效

 2 永久生效(全局,局部),
    echo "alias wk='ifconfig'" >> /etc/bashrc
    unalias wk     #取消别名

 3 如果写到配置文件中,取消的话unalias wk+去配置文件删除

 4 内置的别名:在环境变量的配置文件中放着
    alias ls
 5 /bin/ls -al /root   # ls 内置了别名

 6 命令 --help:

   此时会出来该命令的使用介绍

 7 man 命令

   此时也会出来该命令的介绍,但是会比上面那个更详细


2 目录介绍(相应操作目录的命令)

  1 linux 是单根 / 根路径,windows是多根
  2 bin和sbin:bin普通用户命令,sbin是放超级用户命令  都是usr下的文件夹软链接到根路径
  3 home 、root:home普通用户的家路径,home下的用户名的文件夹
      -用户一登录系统,是在自己的家路径 jack--》/home/jack


  2 目录之usr
  /usr,相当于C:Windows
  /usr/local,软件安装的目录,相当于C:Program
  /usr/bin/,普通用户使用的应用程序(重要)
  /usr/sbin,管理员使用的应用程序(重要)
  /usr/lib,库文件Glibc 32bit
  /usr/lib64,库文件Glibc 64bit

  1 df -h  # 查看系统中文件的使用情况,磁盘占用情况
  2 du -sh /usr/  #查看当前目录下各个文件及目录占用空间大小

# 补充:远程执行ssh命令:
  # ansiable:python写的,批量执行命令(速度比较慢,大量的主机,会卡顿),是自动化运维平台分发命令给其他客户端。
  # salstack:在客户端装agent,然后那些机器主动推送给运维平台,就比ansiable效率高。
  # zabbix:监控,php写的,监控mysql运行情况

# /boot
存放的系统启动相关的文件,例如:kernel,grub(引导装载程序)
1597720836482

3 目录之etc
  /etc,极其重要,后续所有服务的配置都在这个目录中
  /etc/sysconfig/network-script/ifcfg-,网络配置文件,IP地址,网关等信息可在这里修改
  /etc/hostname,系统主机名配置文件,主机名很重要,有些特殊服务要依赖主机名,没有主机名会报错起不来;修改了要重启:reboot
  /etc/resolv.conf,dns客户端配置文件,域名解析服务器,一般我们不配置,因为网卡的配置好了,会覆盖掉它,网卡的优先级高
  /etc/hosts,本地域名解析配置文件,域名解析,先找自己的hosts,再去域名解析

  (/etc/hosts对应Windows C:windows/system32/drivers/etc/hosts 可以配置10.0.0.100  www.baidu.com,这样你访问百度的时候,其实就会访问10.0.0.100这个域名对应              的网址,常用来做黑客钓鱼)

  

4 目录之var dev

1 cat /var/log/secure #查看用户登陆时间

/dev,存放设备文件,比如硬盘,硬盘分区,光驱,等等
/dev/sd 硬盘设备
/dev/null,黑洞设备,只进不出。类似于垃圾回收站
/dev/random,生成随机数的设备
/dev/zero,能远远不断的产生数据,类似于取款机,随时随地取钱


5 目录之proc
/proc,反映系统当前进程的实时状态 :process
加上跑着一个uwsgi---》id号,重启,id号会变,1这个永远不变,相当于从id为1这个进程慢慢衍生执行出其他id号代表的进程


#1 media:提供设备的挂载点,媒体文件
# linux 新增了盘符,需要手动挂载
# 把光盘里的数据,挂载到media目录
mount  /dev/cdrom /media/

# 2 mnt:提供设备的挂载点(同上)

# 3 opt:第三方工具,第三方软件默认安装的(mysql...)

# run :下有pid,log结尾的文件
  ls /run
  cat sshd.pid  # 进程运行的pid号,放在文件中
  ps aux |grep sshd

# .lock文件的作用,锁机制,只有哪个窗口抢到了锁才会执行这个命令,如果另一个窗口没抢到这个锁,那就会一直停住。
  # 假设现在执行
  yum install tree
  # 再开一个窗口执行相同命令
  yum install tree
  '''
  Another app is currently holding the yum lock; waiting for it to exit...
    The other application is: yum
      Memory :  71 M RSS (470 MB VSZ)
      Started: Tue Aug 18 00:26:31 2020 - 00:24 ago
      State  : Sleeping, pid: 6191
  '''
cat /run/yum.pid


6 路径定位

1 相对路径,. (一个点)是当前路径,..(两个点)是上一级路径

2 坑:带斜杠和不带斜杠
    cd /usr # 根路径下的usr
    cd usr  # 当前路径下的usr

3 执行当前路径下的某个文件(xx为文件名,直接在命令终端输入)
    ./xx            linux命令下
    xx              windows命令终端下
4 ~当前用户的家路径:root   /root   jack  /home/jack


7 mkdir touch rm mv

mkdir(创建文件夹)
# 选项:-v 显示详细信息  -p 递归创建目录
# mkdir dir1
# mkdir /home/od/dir1 /home/od/dir2
# mkdir -v /home/od/{dir3,dir4}        #显示创建这两个文件夹的详细信息
# mkdir -pv /home/od/dir5/dir6        #既显示又会有详细信息
# mkdir -pv /home/{od/{diu,but},boy}

 

touch(创建文件)
# touch file                    #无则创建,有则修改这个已经有了的文件的时间为目前
# touch file2 file3
# touch /home/od/file4 file5
# touch file{a,b,c}             #{}集合,等价 touch a b c
# touch file{1..10}
# touch file{a..z}
#选项:-r: 递归删除      -f: 强制删除         -v: 详细过程
# rm  file.txt      #删除文件, 默认rm存在alias别名,rm -i所以会提醒是否删除文件
# rm -f file.txt    #删除文件, 不提醒
# rm -r dir/        #递归删除目录,会提示
# rm -rf dir/       #强制删除目录,不提醒(慎用)

#1.rm删除示例
# mkdir /home/dir10
# touch /home/dir10/{file2,file3,.file4}
# rm -f /home/dir10/  //不包括隐藏文件 
# ls /home/dir10/ -a
. .. .file4

#2.rm删除示例2
# touch file{1..10}
# touch {1..10}.pdf
# rm -rf file 
# rm -rf .pdf
# rm -f file*
# rm -f *.txt


mv(重命名)
# mv file file1             #原地移动算改名
# mv file1 /tmp/            #移动文件至tmp目录:不一样mv file1 tmp 
# mv /tmp/file1 ./          #移动tmp目录的文件至当前目录
# mv dir/ /tmp/             #移动目录至/tmp目录下

# touch file{1..3}
# mv file1 file2 file3 /opt/    #移动多个文件或至同一个目录

# mkdir dir{1..3}
# mv dir1/ dir2/ dir3/ /opt     #移动多个目录至同一个目录



8 cp(复制然后将复制文件转移到路径下)

#选项: -v:详细显示命令执行的操作       -r: 递归处理目录与子目录           -p: 保留源文件或目录的属性
# cp file /tmp/file_copy
# cp name /tmp/name1         #修改名称,将name文件夹移到tmp下且将name修改为name1
# cp file /tmp/             #不修改名称
# cp -p file /tmp/file_p    #-p保持原文件或目录的属性
# cp -r  /etc/ /tmp/        #复制目录需要使用-r参数, 递归复制
# cp -rv /etc/hosts /etc/hostname /tmp  #拷贝多个文件至一个目录
# cp -rv /etc/{hosts,hosts.bak}

posted @ 2022-03-17 23:07  新入世界的小白  阅读(54)  评论(0编辑  收藏  举报