Linux学习笔记

Linux学习

常用命令:

​ 命令中的空格很重要!ctrl +l清屏,tab自动补全

  1. pwd 查看当前路径

  2. ls 显示当前目录下的所有文件夹和文件 ls / 绝对路径 显示根目录下的文件

  3. ls -a 可显示隐藏文件

  4. ll(ls -l)的简写 显示当前目录下的所有文件和文件夹的具体信息

  5. cd 切换路径 如 cd / 表示回到根目录 cd …回到上级目录

  6. touch 创建文件 如touch demo 表示在当前目录下创建demo文件;可加绝对路径创建 如touch /aaa/b1 表示在根目录下aaa目录中创建b1文件

  7. mkdir 创建目录 如mkdir aaa 表示在当前目录下创建aaa目录;可加绝对路径创建 如mkdir /aaa/b2 表示在根目录下aaa目录中创建b2目录

  8. mkdir -p 递归创建,可连续创建目录 如mkdir -p /a1/b1/c1 表示在根路径下连续创建a1目录,a1目录下再创b1目录,在创c1目录

  9. cp 源文件路径 目标文件夹 表示复制文件 如cp /a1/b1/c1/d1 /a1 表示将/a1/b1/c1下的d1文件复制到/a1目录下

  10. cp -r 源文件夹 目标文件夹 表示把源文件夹下的所有东西拷贝到目标文件夹 如 cp /a1/b1 /home 表示将b1文件夹下的所有 包括b1拷贝到/home文件夹下

  11. mv 源文件路径 目标文件夹 移动文件 用法与cp相似,如 mv /a1/b1/c1/d1 /a1 表示将/a1/b1/c1下的d1文件移动到/a1目录下;mv还能更改文件名 如 mv /a1/b1/c1/d1 /a1/d2 表示将/a1/b1/c1下的d1文件移动到/a1目录下并改名为d2;mv /a1/d2 /a1/d3表示将/a1目录下的d2文件名更改为d3

  12. cat 文档路径 表示查看文档内容 如cat /aaa/a.txt 表示查看根目录下aaa目录中的a.txt文件

  13. vim 文档路径 表示编辑文档 如vim /aaa/a.txt 进入根目录下aaa目录中的a.txt文件,按i键进入编辑文本模式,
    yy键复制光标指向的一行,p键粘贴,可多行复制,如3yy;
    dd删除光标所在的一行,可多行删除,如3dd;

    u撤销;

    hjkl:光标左下上右移动

    0、$:光标移动过到本行的行首行尾

    G:光标移动到文本最后一行

    gg:光标移动到文本第一行

    3g:光标移动到文本第三行

    编辑完后按esc键进入命令模式,:wq命令退出并保存! :q 退出不保存

    /str (n:下翻;N:上翻):查找字符 如/qqq:查找qqq字符

  14. cat/proc/cpuinfo 查看cpu信息

  15. cat/proc/meminfo 查看内存信息

Linux目录:

在这里插入图片描述

  1. bin 二进制目录,存放普通用户使用的命令
  2. sbin (super bin)管理员使用的命令
  3. dev 设备文件
  4. root root用户的Home
  5. home 存放普通用户的家目录
  6. tem 存放临时文件
  7. dev 硬件驱动
  8. etc 配置文件
  9. run 缓存
  10. boot 存放系统启动内核

文件类型

  1. -开头的为普通文件,包括图片,文本文件…
  2. d开头的为文件夹

用户组信息存储的文件

  1. 用户基本信息文件:/etc/passwd

    • root:x:0:0:root:/root:/bin/bash 7列以:分隔
      • root表示用户,X为用户密码,0为UID(用户ID),0为GID(组id),root描述,/root为root用户的家目录,/bin/bash为shell
  2. 用户密码信息文件:/etc/shadow
    在这里插入图片描述

用户

  1. useradd user01:新建用户 user01 ,新建用户的时候默认添加基本组
  2. id user01 查询用户命令
  3. passwd user01:更改user01密码
  4. userdel -r user01:删除用户,-r表示删除用户的时候把用户/home/user01目录一起删除
  5. usermod -s : 修改用户属性 如:usermod -s /sbin/nologin user01 表示禁用user01用户
  6. groupadd ccc :新建ccc组,这个组和其他用户无关,只有将用户拉入这个组后这个组才有用户
  7. usermod user01 -g ccc:修改user01用户的基本组,现在user01的基本组为ccc那个组
  8. usermod user02 -G ccc:将user02用户加入到ccc那个组,ccc为user02的附加组,user02的基本组不变
  9. gpasswd -d user02 ccc:将user02用户从ccc组里删除

用户提权和文件权限(r4w2x1)

  1. su - root :普通用户切换root用户(永久提权) su -user01:切换为user01用户
  2. 为user01提权:(临时提权)
    • 先在root账户中为user01提权–>usermod user01 -G wheel 即将user01用户扔到wheel组里
    • 然后登录user01账户,使用sudo命令即可,如:sudo useradd user02
  3. -rw-r–r–. 1 root root 0 11月 17 09:47 file01
    • -表示文件;rw- 文件属主(u)权限为读(r)写(w)-表示没有执行(x)权限;r–文件属组(g)权限为只读;r–其他用户(o)权限为只读;1表示链接数;root为主用户;root组;0表示文件大小;11月 17 09:47最后一次修改文件日期;file01为文件名
  4. chmod a=rwx /tem/file01.txt 给a(ugo)flie01文件的读写执行权
    • chmod 777 /tem/file01.txt给a(ugo)flie01文件的读写执行权 a表示所有,u表示主用户,g表示组,o表示其他用户 rwx对应421
    • chmod 000 /tem/file01.txt 所有用户都没权限
    • chown user01 /tem/file01.txt 表示把file01的属主用户改为user01
    • chown .hr /tem/file01.txt 表示把file01的组改为hr
  5. acl(access control lis)限制用户对文件得访问,acl是对ugo的补充
    • setfacl -m u:user01:rw /home/file01 设置文件访问控制 -设置 对象:对象名:权限(rwx) 文件路径
    • setfacl -m g:hr:rwx /home/file01 设置文件访问控制 -设置 组:组名:权限(rwx) 文件路径
    • getfacl /home/file01 查看file01文件的权限
  6. watch -n1 ‘ll /home/file01.txt’ 可以每隔1s查看file01.txt文件的权限状态 需要新开一个窗口
  7. chattr +i /home/file100.txt 给file100加上这个权限后所有用户都不能对file100进行操做 ;chattr -i /home/file100.txt 取消这个权限
  8. 目录默认权限为755;文件默认权限为644

进程管理

  1. 在这里插入图片描述

磁盘管理

  • 磁盘分区

    fdisk /dev/sdb
    #输入n为磁盘分区/输入d为删除磁盘分区
    #输入p为主分区/输入e为扩展分区
    #回车,指定分区大小回车
    #继续按n创建第二个分区....
    #创建完后按p查看分区,w保存退出
    
    partprobe /dev/sdb  #@创建完后刷新分区
    ls /dev/sdb* #查看sdb磁盘分区
    init 6 #重启计算机
    reboot #重启计算机
    lsblk #查看磁盘信息
    
  • 磁盘格式化

    mkfs.ext4  /dev/sdb1  #格式化磁盘分区	
    
  • 磁盘挂载

    #首先在/目录下创建一个目录,如mkdir /mount/disk1
    mount /dev/sdb1 /mount/disk1/  #将sdb1分区挂载到/mount/disk1/目录下
    df -h #查看磁盘信息
    umount /dev/sdb #卸载sdb磁盘,卸载后磁盘里面的数据不会丢失,相当于拔出u盘
    
  • 逻辑卷

    pvcreate /dev/sdc #创建物理卷
    vgcreate vg1 /dev/sdc #创建卷组vg1
    lvcreate -L 4g -n lv1  vg1 #创建逻辑卷 -L 4g为逻辑卷的大小,-n lv1为逻辑卷的名字为lv1  
    mkfs.ext4 /dev/vg1/lv1  #格式化逻辑卷 这里跟卷组名/逻辑卷名
    mount /dev/vg1/lv1  /mount/lv1  #挂载逻辑卷
    
    pvs #物理卷状态查询
    vgs #卷组状态查询
    
    #逻辑卷扩容
    pvcreate /dev/sdd #创建物理卷
    vgextend vg1 /dev/sdd #将创建好的pv添加到vg1卷组(扩容)
    lvextend -L +4g /dev/vg1/lv1 #将逻辑卷lv1扩容4g 
    resize2fs /dev/vg1/lv1 #相当于刷新逻辑卷lv1
    
    #逻辑卷扩容
      pvcreate /dev/sdd #创建物理卷
      vgextend vg1 /dev/sdd #将创建好的pv添加到vg1卷组(扩容)
      lvextend -L +4g /dev/vg1/lv1 #将逻辑卷lv1扩容4g 
      resize2fs /dev/vg1/lv1 #相当于刷新逻辑卷lv1
    

文件压缩与解压

  • 压缩

    #语法: tar 选项 压缩包名称 源文件
    tar -cf etc.tar /etc #将etc目录打包,-cf:create file
    tar -czf etc.tar.gz /etc #打成gzip包,这个包比tar包体积小 
    tar -cjf etc.tar.bz /etc #这个压缩后体积比gzip更小 bzip
    tar -cJf etc.tar.xz /etc #xzip
    
  • 解压

    #语法:tar -xf 压缩文件  
    tar -xf 111.tar #解压到当前目录
    tar -xf 111.tar -C /root/111/tmp  #解压到指定目录中
    

软件管理

  • yum核心配置目录
    在这里插入图片描述

     #将/etc/yum.repos.d/*打包移走
     tar -cf yum.repos.tar * #将/etc/yum.repos.d/*打包
     mv yum.repos.tar /tmp #将打包文件移动到/tmp目录中
    
    #自定义yum核心配置文件
    vi /etc/yum.repos.d/dvd.repo #文件后缀必须为.repo
    #baseurl=file:///mnt/cdrom表示本地源,系统安装光盘
    

    自定义dvd.repo文件内容

  • 挂载安装光盘

    先要将光盘放服务器上通电

    mkdir /mnt/cdrom #创建cdrom目录
    mount /dev/cdrom /mnt/cdrom/ #将光盘挂载到/mnt/cdrom/目录下
    ls /mnt/cdrom/ #能查看到光盘信息即可
    ls /mnt/cdrom/Packages/ |wc -l #查看目录下总共有多少个文件
    

    可以将mount /dev/cdrom /mnt/cdrom/ 命令写到/root/.bashrc目录里面,这样开机就能直接将将光盘挂载 到/mnt/cdrom/目录下,就不用每次重启后还需要重新挂载
    在这里插入图片描述

  • yum阿里源配置

    rm -rf /etc/yum.repos.d/* #1.删除本地源
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo #2.配置阿里源
    #每次更换完yum源后需完成3、4步
    yum clean all #3.清除yum缓存
    yum makecache #4.缓存软件包信息,提高搜索、安装软件包信息
    
    yum repolist #查看yum源信息
    yum provides vim #查看vim属于哪个软件,这个命令很重要
    yum remove vim #卸载vim
    
  • 软件安装

    #全新安装
    yum -y install httpd vsftpd #yum:主命令;-y:自动确认;install:安装;httpd:软件包1;vsftpd: 软件包2...
    #重新安装
    yum -y reinstall httpd #reinstall重新安装
    yum list httpd #查看包(httpd)是否安装 带@表示已安装
    
  • 源码包安装

    #以tengine源码包为例
    #1.在真机上下载tengine源码包 tengine-2.2.0.tar.gz
    #2.安装 lrzsz-0.12.20-36.el7.x86_64 
    yum install -y  lrzsz-0.12.20-36.el7.x86_64 
    #3.将真机上的源码包上传到虚拟机
    rz
    #4.安装源码包所需环境
    yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
    #5.解压tengine-2.2.0.tar.gz,并进入tengine-2.2.0/目录
    tar -xvf tengine-2.2.0.tar.gz
    cd tengine-2.2.0/
    #6.配置
    ./configure --prefix=/user/local/nginx
    make
    make install
    #7.启动
    /user/local/nginx/sbin/nginx
    
    

网络管理

  • 网络配置文件 /etc/sysconfig/network-scripts/ifcfg-ens33
    在这里插入图片描述
    ONBOOT=yes //是否启用,yes为启用,no为禁用
    BOOTPROTO=dhcp //获取IP地址的方式,dhcp为自动,none为手动
    改完配置文件后需要重启网络systemctl restart network

    ip a #查看所有ip
    ip route #查看路由,查看网关
    ss -tnl #查看端口号
    
  • 固定ip地址
    在这里插入图片描述

    #首先需要在虚拟机查看子网ip需要和设置的ip在同一网段
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static #这里改为static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=1ec7cb5b-4708-4b48-ac77-c10fd6e23f5d
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.85.137 #这里是固定的ip地址
    NETMASK=255.255.255.0 
    GATEWAY=192.168.85.1  # 设置默认网关为你的路由器地址   查看默认网关地址 ip route | grep default
    DNS1=8.8.8.8  # 设置第一个DNS服务器地址  查看DNS服务器地址:cat /etc/resolv.conf 
    DNS2=8.8.4.4  # 设置第二个DNS服务器地址
    
  • 更改主机名

    vi /etc/hostname  #主机名文件
    
  • 关闭防火墙

    systemctl stop firewalld #关闭防火墙(重启后不生效)
    systemctl disable firewalld #关闭防火墙,重启后也保持关闭状态
    systemctl status firewalld #查看防火墙状态
    setenforce 0 #临时关闭selinux
    vi /etc/sysconfig/selinux #SELINUX=disabled 永久关闭selinux
    
    firewall-cmd --zone=public --add-port=3306/tcp --permanent #给防火墙给指定端口放行
    systemctl restart firewalld.service #重启防火墙
    firewall-cmd --reload #重新加载防火墙
    
    #安装常用工具
    yum install -y lrzsz sysstat elinks wget net-tools bash-completion
    

文件服务

  • nfs
    1.在服务器1上安装,配置nfs服务器(192.168.197.129)

    #首先需要关闭防火墙,开启网络
    yum install -y nfs-utils #安装nfs工具
    mkdir /webdata #创建webdata目录
    echo "nfstest" > /webdata/index.html #编写测试网页文件
    vi /etc/exports #编写nfs配置文件  文件类容 /webdata 192.168.197.0/24(rw) 
    										#/webdata为发布资源的目录;192.168.197.0/24指允许访问nfs的客户机;(rw)可读可写
    systemctl start nfs-server #启动nfs服务
    systemctl enable nfs-server # 开机自启
    exportfs -v #查看暴露出去的目录,检查nfs输出是否正常
    

    2.在客户机1上安装httpd,nfs客户端(192.168.197.128)

    yum install -y httpd nfs-utils 
    systemctl start httpd #启动网站服务,可在客户机2中访问测试
    showmount -e 192.168.197.129 #查询nfs服务器可用目录
    mount -t nfs 192.168.197.129:/webdata /var/www/html #将nfs服务器挂载到/var/www/html中
    

    如果挂载成功将能看到

    3.客户机2(192.168.197.130)

    yum install -y elinks #安装elinks
    elinks http://192.168.197.128 #访问128服务器
    
  • ssh

    #语法: ssh 主机名@ip地址
    ssh  root@192.168.197.128 #远程连接主机
    

firewall防火墙

1、查看firewall服务状态

systemctl status firewalld

出现Active: active (running)切高亮显示则表示是启动状态。

出现Active: inactive (dead)灰色表示停止,看单词也行。

2、查看firewall的状态

firewall-cmd --state

3、开启、重启、关闭、firewalld.service服务

开启

service firewalld start

重启

service firewalld restart

关闭

service firewalld stop

4、查看防火墙规则

firewall-cmd --list-all

5、查询、开放、关闭端口

查询端口是否开放

firewall-cmd --query-port=8080/tcp

开放80端口

firewall-cmd --permanent --add-port=80/tcp

移除端口

firewall-cmd --permanent --remove-port=8080/tcp

重启防火墙(修改配置后要重启防火墙)

firewall-cmd --reload

  • 30
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值