Linux基础知识

 一、shell的种类

  1 - 标准shell
  2 - bash
  3 - ksh
  4 - csh

二、关机命令

  poweroff
  halt
  init 0

三、 vi编辑器

  1 - 三种操作模式

    命令模式【属于刚进入时的缺省状态;不能输入;用来控制光标的移动;字符的删除,粘贴,复制;可以进入插入模式和底线模式】

      光标移动

        G【移到文件的最后】

        gg【移动到文件的开头】
        0/^【移动到所在行的行首】
        $【移动到所在行的行尾】
        ctrl+f【往下翻页】
        ctrl+b【往上翻页】
      删除

        x/X【3x表示删除光标及其后面的三个字符,包括光标本身】x表示删除后面,X表示删除前面的
        dw【删除光标所在处到词尾的内容】
        dd【删除光标所在的行】【3dd表示删除光标所在的行及其后面三行,包括光标所在行】
       复制

        yw【复制光标所在的位置】
        yy【复制光标所在的行】

      粘贴【p】

      撤销【u】

       替换

        r【表示替换当前】
        R【一直替换知道按ESC停止】

    插入模式概念【对文件内容进行编辑】

      i- 从当前光标位置插入字符
      a - 从当前光标位置的下一个字符串开始插入
      o - 表示插入新的一行,从行首开始  

    底线模式

      - 查找

        / 关键字【n - 向下连续查找;N - 往上查找】

      - 定位

        set nu【行号】
        #: 指定的行号【跳转到指定的行号】【例如:跳转到第100行 ---> 100:】

      - 字符替换

        :1,$s/Youth/You/g【将全文的Youth替换成You】
        1,$【从第一行到最后一行】
        s【表示替换】
        g【表示每行全部替换】

      - 保存/保存退出/另存为

        保存【:q】
        保存退出【:wq】
        另存为【:w 文件名称】

      - 查看当前文件名称【:file】

      - 强制退出【:q!】

      - 强制写入【:w!】

      - 打开另外一个文件【:edit 文件名称】

四、目录结构

  /【根目录】
  /etc【系统管理和配置文件】
  /home【用户的主目录】
  /home/user【名为user的用户的主目录】
  /boot【内核文件】
  /sbin【系统管理命令】【系统管理员使用的管理程序】
  /root【系统管理员的主目录】
  /bin【常用可执行文件】
  /dev【设备文件】
  /usr【用户级别应用程序和文件】
  /proc【虚拟文件系统】【放置的数据都是在内存之中】
  /tmp【公用的临时文件储存点】
  /mnt【让用户临时挂载其它的文件系统】
  /lib【一些库文件】

五、文件/目录的基本操作

  1. 查看文本文件内容

    cat 文本文件路径【属于短文件】
    less 文本文件路径【属于查看长文件】
      k - 向上一行  j - 向下一行  q - 退出

  2. 查看文件属性/目录内容

    ls
    -R【表示查看所有子目录】
    -l【详细信息】

  3. 创建文件

    touch 文件名称【空文件】

  4. 创建目录

    mkdir 文件目录  -p [递归创建]

  5. 复制文件

    当前文件复制【cp 1.txt 2.txtx】
    复制到别的目录,文件名称不变【cp 1.txt /tmp】
    复制到别的目录,文件名称改变【cp 1.txt /tmp/2.txt】
    多个文件复制【cp 1.txt 2.txt /tmp】

  6. 复制目录

    当前目录复制【cp 1.txt 2.txtx -r】
    复制到别的目录,目录名称不变【cp 1.txt /tmp -r】
    复制到别的目录,目录名称改变【cp 1.txt /tmp/2.txt -r】
    多个目录复制【cp 1.txt 2.txt /tmp -r】
  7. 移动/重命名文件或者目录   mv

  8. 删除文件、目录

    删除一个文件【rm 1.txt】
    删除多个文件【rm 1.txt 2.txt】
    删除目录【rm cat -r】
    强制删除【rm cat 1.txt -rf】
    删除当前文件下所有目录和文件【rm * -rf】

  9. 硬链接和软链接

    硬链接【ln cat cat_hard】
    软连接【ln -s dog dog_soft】

六、文件/目录的常用操作

  1. 查找文件

     find /tmp -name 'abc'    参数 -name 名称(可以使用通配符) -type 文件类型

  2. 比较文本文件的差异

    diff -y 1.txt 2.txt
      输出:  | 显示每个文件不同的行  < 左边比右边多出来的  > 右边比左边多出来的

  3. 文本关键字搜索【grep 】

  4. 文件内容统计

     wc -l /etc/passwd【这个文件有多少行】    wc -c /etc/passwd【这个文件有多少个字符】
  5. 查看文件/目录的磁盘空间

    du -sh /home/ly【显示指定目录整体磁盘暂用率】    du -ah /home/ly【显示目录以及所有子目录和文件的磁盘暂用率】
  6. 文件分割操作

    split
      -b 表示文件大小  -l 表示几行  -a 指明后缀长度    例如:split -b 300k /etc/passwd abc.txt
七、 用户管理

  1. 用户类型【用户信息存储在/etc/passwd中】

    超级管理员用户【root】
    普通用户【由root用户创建并授权】
    系统用户【系统内自己创建了。例如email等,有些不可以进行登录】

  2. 创建用户【只能root用户创建】

    1、创建  useradd 用户名称  

        -d 指明家目录    -s用户登录使用的shell    -g用户所属组    -c备注文字

    2. 修改用户密码  【passwd 用户名称】

    3. 修改用户信息【usermod】

  3. 用户查询

    who 当前在线的用户  whoami 用户身份查询  groups 用户所属组  id 当前用户信息

  4. 用户之间的切换【su】

  5. 删除用户【userdel (加上-r表示家目录一起删除)】

  6. 用户组

    groupadd【增加组】  groupdel【删除组】

八、文件权限管理【ls -l 可以查看文件的权限】

  1. 文件的访问权限

    1. 读 - r【对于文件具有读的权限;对于目录是否可以查看文件夹里面的内容】
    2. 写 - w【对于文件具有写的权限;对于目录是否可以创建和删除文件的权限】
    3. 执行 - x【对于文件具有可执行的权限;对于目录是否可以使用该目录下的文件例如cd】

  2. 用户类型

      1. ower【一般来说,谁创建就是谁】
      2. group【文件所属用户组】
      3. other【其它用户】

  3. 改变文件访问权限

    chnod u+x file1    u 拥有者    g 所属组    o 其它    a 所有      例如:【ug+w】【chmod u=wrx,g=rw,o=x file1】【chmod 777 file1(r4w2x1)】
九、进程管理

  1. 进程的基本概念

    程序运行起来,就是操作系统那存储介质上的可执行文件,加载到内存里面运行,这个运行的程序称之为进程(比如shell就是一个进程)

  2. 进程的创建

    进程是由另一个进程创建的;第一个进程为init,进程ID为1
    创建者 PPID 被创建者 PID【如果父进程死了,init会变成子进程的父进程】
    进程的创建方法【系统调用fork,exec】
  3. 查看进程的命令

    ps  参数 -ef 【e表示所有,f表示full-format】  axu 【ax表示所有,u表示user-oriented】
  4. 后台运行进程

    前台进程【正在执行的和用户进行交互的进程】
    后台进程【后台运行的进程】
      nohup python runtime.py &&   让它在后台运行
      nohup表示当父进程挂掉或者关掉的时候,子进程不会收到父进程发送的sighup信号,子进程不会因为父进程而停止进程

  5. 前后台进程切换

    列出系统中所有的后台进程【jobs】
    将后台进程切换到前台 【fg 任务号】【任务号就是jobs会输出的对应ID】
    将前台进程挂起 【ctrl + Z】 【此时处于stopping】
    将进程在后台执行 【bg 任务号】

十、重定向和管道

  1. 标准输入,标准输出,标准错误

    用户通过终端与shell进程进行交互,shell进程会缺省打开三个文件句柄
      - 标准输入 stdin【进程从stdin读取用户输入】
      - 标准输出 stdout【从stdout输出正确信息】
      - 标准错误 stderr【从stderr输出错误信息】

  2. 重定向

    1 - 覆盖重定向 【ps -ef > 1.txt】
    2 - 追加重定向 【ps -ef >> 1.txt】
    3 - 重定向到这个文件路径里面,相当于放在垃圾桶中,找不到【/dev/null】
    4 - 重定向【0 表示标准输入;1 表示标准输出;2 表示标准错误】
        例如:2> 输出标准错误重定向到文本文件中
    5 - 同时重定向stdout,stderr到同一个文件【例如 ---> ps > file1 2>&1】 理解:首先将开始标准错误和标准输出都是指向终端,后来ps标准输出指向了file1,之后标准错误指向 标准输出,也就是file1,即所有的标准都指向file1
    6 - 同时重定向stdout,stderr到不同的文件【例如---> ps > out.log 2>error.log】
    7 - 重定向-标准输入【<】

  3. 管道

    ps -ef | grep python【表示查找前一个命令中输出的内容中含有python的】【管道可以连续】

  4.shell 环境变量  (特殊意义的变量,用来影响进程的信息,可以传递给子进程)    printenv【查看当前的环境变量】

十一、网络接口配置

  1. ​ 查看和修改网络接口

    显示全部的网络接口【ifconfig -a】
    禁用/启用网络接口【ifdown eth0/ifup eth0】

  2. 查看和设置IP地址

    1 - 查看主机的地址【ip addr/ip -4 addr】
    2 - IP地址的配置【ifconfig ens33 192.168.79.10】 【这种属于临时的】
    一块网卡可以配置多个IP地址  【ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0 up】
    3 - IP地址的配置-持久有效
      修改网络接口配置文件【修改/etc/sysconfig/network-scripts/ifcfg-eth0文件】随后需要重启【service network restart】

  3. 域名查询

    ping可以查看
    host www.baidu.com
    nslookup www.baidu.com

 十二、路由器与防火墙

  1. 路由信息的查看

      netstat -r    route    ip route

  2. 防火墙信息查看【iptables】

      什么是防火墙【协议,IP,端口】

      查看你防火墙设置【iptables -L --line-numbers】

  3. 添加删除防火墙规则

      防火墙增加规则
        插入规则 【iptables -I chain [rulenum] [matches...][target]】
        追加规则 【iptables -A chain [rulenum] [matches...][target]】
        Target 【ACCEPT DROP REJECT】
          例如:
            关闭ssh端口【iptables -I INPUT -p TCP --dport 22 -j DROP】
            开通ssh端口【iptables -I INPUT -p TCP --dport 22 -j ACCEPT】
            保存规则 【service iptables save】
            防火墙删除规则【iptables -D chain [rulenum]】

  4. netstat命令

    netstat -a 【显示所有连接中的socket】  netstat -t 【显示TCP的连接状态】  netstat -l 【显示处于listen状态的socket】  netstat -u 【显示UDP的连接状态】
    netstat -n 【显示端口数字而不是端口协议名称】  netstat -p 【显示建立连接的进程信息】  netstat -s 【显示网络数据包统计信息】

十三、linux网络操作

  1. 远程登录命令ssh【ssh [远程机器的IP地址]】

    使用场景
      工作主机是Linux机器/远程Linux主机不能直接登录

  2. 远程拷贝文件命令scp【本地linux机器和远程linux机器之间的文件拷贝操作】【会直接覆盖】

      本地拷贝到远程【scp 1.txt ly@192.168.92.101:/home/ly】
      远程的文件拷贝到本地【scp ly@192.168.92.101:/home/ly/out.log .】
      多个文件 - 本地拷贝到远程【scp 1.txt 2.txt ly@192.168.92.101:/home/ly】
      拷贝目录-本地拷贝到远程【scp -r dir1 ly@192.168.92.101:/home/ly】
        备注:SCP是通过ssh通道来传输文件的
            winscp【一个windows和linux文件传输的工具】

  3. 网络下载命令wget

十四、打包压缩与软件安装

  1. 打包和压缩

    打包【把文件和目录的结构和内容拷贝到一个文件里面】
        tar cvf files.tar 123.txt 4.txt 5.txt 打包-文件
        tar cvf files.tar dir1 打包-目录
        tar tvf files.tar 查看包内容
        tar xvf file.tar -C dir1 解开包
    压缩【指文件经过一些算法变成体积上更小的文件】
        gzip file1 file2[不能压缩目录]
        gzip -d file1.gz[解压缩]
      打包并压缩【tar zcvf file.tar.gz file1,dir001/tar zcvf file.tgz file1,dir001】


    解压缩【tar zxvf file.tar.gz】
    查看包【tar ztvf file.tar.gz】
    压缩【bzip2】  bzip2 file1 file2【压缩】


    bzip2 -d file2.bz2【解压】
    打包并压缩【tar jcvf file.tar.bz2 file1,dir001/tar zcvf file.bz2 file1,dir001】
    解压缩【tar jxvf file.tar.bz2】
    查看包【tar jtvf file.tar.bz2】

posted @ 2023-07-04 17:22  ly_123  阅读(527)  评论(0)    收藏  举报