Linux操作系统

1.Linux概述和目录介绍

Linux 系统启动过程_w3cschool

安装教程:Linux安装教程(超超超级详细)_Junior Tester L的博客-CSDN博客

推荐使用yum 安装,yum是在线安装

2.Linux文件基本操作

  • 第一天学习目标:
    • 安装虚拟机并且搭建Linux环境
    • 安装并学会使用SSH软件,可以远程连接Linux
    • 了解Linux操作系统的特点、分类、版本等
    • 熟悉Linux目录结构和重要目录的作用
    • 学会Linux命令结构和常用的基本命令
    • 掌握Linux快捷键
       
  • 1.Linux概述
    • Linux是一个多任务多用户的网络服务器开源操作系统。
    • 1.1操作系统
      • 操作系统是一套管理软件和硬件的平台级软件。
      • 桌面:Windows、mac os
      • 移动端:Android、ios、鸿蒙
      • 服务器:Linux、unix、Windows Server
      • 嵌入式和工业领域:Linux
    • 1.2Linux用途
      • 互联网产品服务器领域,大型互联网企业基本都是Linux
      • 嵌入式、工业制造业都有应用
    • 1.3Linux特点
      • 开源、免费
      • 安全性高
      • 稳定高
      • 性能好
    • 1.4Linux组成
      • 内核:操作系统最核心的那部分程序,内核也有不同的版本。仅有内核是无法使用的,我们平时用的版本都是基于内核封装的发行版本。
      • shell:翻译过来就是壳。可以理解为包裹在内核外的一层壳,也是一种编程语言,用于跟内核进行交互的。
      • 应用程序:基于操作系统之上的各类应用软件
      • 文件系统:指的是操作系统对文件的组织管理方式。Linux跟Windows有很大不同,最大的特点是:一切皆文件,包括硬件,也是以文件方式来管理存储的。Linux只有一个根目录:/
         
    • 1.5Linux版本
      • 内核版本:开发版本和稳定版本
      • 发行版本:顾名思义,就是在内核版本上加了很多常用的软件的版本,可以拿到市场上发行的,方便消费者直接使用。有免费的有收费的。
        • red hat红帽:这是收费版本的主流,发行的公司就叫红帽,一般大型公司都在用,它的性能好,有售后。
        • centos:这是社区开源版本,也属于红帽公司。这个是基于红帽衍生出来的版本,性能跟红帽接近,一般中小型公司使用。这个是免费的,我们接下来学习的版本就是centos7
        • Ubuntu:这是一个带图形化界面的版本,主要给个人用户使用。跟Windows操作习惯很像,是Linux进军个人桌面市场的产品。
           
    • 1.6为什么要学Linux
      • 你将来工作中很可能用得到
      • 你将来有可能直接在Linux上做开发
         
    • 1.7如何使用Linux
      • 桌面可视化操作,仅限于带图形界面的版本,企业中不会这么用。
      • 使用shell命令行
        • 企业中,会通过SSH工具远程访问操作Linux服务器
        • 个人学习,一般会在电脑上安装一个虚拟机,然后使用SSH工具连接虚拟机上的Linux服务器
        • shell分为好多个版本,各有各的用途,cenos默认的shell版本bash shell
      • 常用的SSH工具,SSH是远程安全连接协议,默认使用22端口
        • 命令行SSH工具:xshell(商业版收费)、putty(开源免费)等等
        • 文件传输工具:xftp(商业版收费)、winscp(开源免费)等等
          • 在Windows和Linux之间传输文件,使用xftp或winscp可视化操作即可。
          • 在Linux操作系统之间进行文件传输,要使用scp命令
            • 从本地将文件复制到远程:scp 本地文件 远端服务器用户名@远端服务器IP地址:远端服务器的具体目录位置,输入完这个命令后,需要再输入远端服务器的密码
            • 从远端服务器复制文件到本地,只需要调换scp后面的操作对象位置即可。
            • 举例:scp /root/hello.sh root@117.23.45.112:/opt
               
  • 2.Linux系统目录结构
    • Linux所有目录都源于一个根目录:/
    • /home:家目录,对于家目录,系统会用~来代替,所谓家目录,就是系统给用户分配的目录,当普通用户登录系统的时候,会默认切换到用户对应的家目录。root用户的家目录在/root
    • /mnt:挂载目录,/media也是挂载目录。什么是挂载,因为Linux操作系统会把一切当作文件管理,包括硬件,所以当有新的硬件接入的时候,需要进行挂载操作,挂载到挂载目录下,否则硬件无法使用。
    • /opt:option的缩写,选项的意思。这个目录叫做可选目录,这个目录可以用来自由操作,给里面安装一些应用程序。
    • /root:管理员的家目录
    • /tmp:临时目录,存放临时使用的文件,重启后会删除。
    • /var:var是variable的缩写,变量的意思。这里面存放快速变化增长的一些数据,一般我们会把日志文件放在这个目录。
    • /usr:存放系统应用程序的目录,应用程序也可以安装到opt下。类似于Windows的program files这个目录。一般来说管理员root会把程序安装到/usr/local
    • 以下目录都不要随便乱动
    • /bin:bin是binary的缩写,二进制的意思。存放可以直接执行的命令文件。
    • /boot:里面是开机启动的系统基础引导文件。
    • /dev:设备device的缩写,存放的是各个硬件设备的目录。Linux会把硬件也当作文件来管理。
    • /proc:process的缩写,记录系统进程相关的信息。
    • /sbin:存放管理员可以执行的命令
  • 3.Linux常用基本命令
    • 3.1Linux命令格式
      • 命令关键字 参数1 参数2... 操作对象
      • 注意:Linux区分大小写,参数有多个的时候,可以分开写,也可以合并写,参数如果用简写使用-开头,如果写单词全拼,用--开头。
      • 命令帮助:对于不熟悉的命令和参数,可以使用帮助来查看。
        • 如:命令 --help
        • 除了--help之外,还有一个帮助命令,这个命令显示的信息更完整,这个命令是:
          • man 命令
    • 3.2Linux常用基本命令
      • 新建用户:useradd 用户名,给新建的用户添加密码:passwd 用户名
      • 删除用户:userdel -r 用户名
      • 切换用户:su 用户名,切换到用户名所代表的用户,su是switch user的缩写
        • 切换用户的另外一种情况,加一个参数:-
        • 加-参数之后,代表的是另外一种切换,这种切换不仅切换了用户身份,还切换到了用户的家目录。这是一种更完全的切换。
      • 系统时间命令
        • 查看当前系统时间:date
        • 设置修改系统时间:date -s "20230503 16:17:30"
        • 推荐的方式是连接时间服务器来同步时间:ntpdate 时间服务器的地址
      • yum方式安装软件命令
        • yum是一种在线安装软件的方式,使用起来很方便
          • 安装:yum install 软件名
            • 使用-y参数,可以在安装的时候,一路点yes,而不需要给我提示。比如:yum -y install ntpdate
          • 搜索有哪些软件版本可以安装:yum search 软件名
          • 卸载:yum remove 软件名
          • 查看目前已经安装的软件有哪些:yum list installed
      • 查看系统版本:cat /etc/*release
      • 关机和重启命令
        • 立刻关机:poweroff
        • 高级命令:shutdown,配合不同参数可以实现关机、重启、定时关机重启
          • 关机:shutdown -h 指定时间,此处-h参数是halt的缩写。
            • 如:shutdown -h now 代表立刻关机
            • 如:shutdown -h 10 代表10分钟以后关机
            • 如:shutdown -h 20:00:00 代表晚上八点整关机
          • 重启:换成-r参数即可,-r是reboot的缩写,代表重启,reboot本身也是一个重启命令
            • 如:shutdown -r now 代表立刻重启
          • 如果使用了定时关机重启任务,需要手动取消
            • shutdown -c 可以取消
      • 注销命令
        • exit或者ctrl+d
  • 4.Linux常用快捷键
    • 上下方向键可以翻阅历史命令
      • 使用history命令可以查看使用过的所有命令历史记录,每个命令前面有个编号,使用!编号可以再次执行这个命令
    • tab键可以自动不全名称
    • CTRL+c 终止当前进程(不是复制)
    • clear或者CTRL+l可以清屏
    • 复制粘贴命令:复制CTRL+insert 粘贴shift+insert
    • 快速定位命令位置:CTRL+a光标移动到命名行首,CTRL+e光标移动到命令行尾巴。CTRL+鼠标左键移动到鼠标指向位置。
    • 删除部分命令字段:CTRL+u删掉光标处到行首的所有字符,CTRL+k删除光标处到行尾的字符。
  • 第二天学习目标:
    • 掌握系统信息和性能查看命令,理解各参数和查询结果含义
    • 掌握Linux网络相关命令,学会查看和配置网络
    • 掌握Linux目录和文件的相关操作命令及参数
  • 1.系统信息和性能查看
    • 查看磁盘的占用情况:df -Th 这是参数连着写。相当于df -T -h
      • -T:代表type类型,可以查看到磁盘的类型
      • -h:代表human人类,就是以人们熟悉的单位来表示磁盘大小,如K、M、G。如果不加这个参数,默认以KB字节单位显示,可读性差。
      • 查询结果含义:size代表磁盘总大小,used代表已使用的空间,avail代表剩余可用空间。我们重点关注根目录的磁盘使用情况即可。

    • 查看当前目录占用的空间大小:du -h
      • -a:显示当前目录和子目录占用的大小,包括了隐藏文件。如果不加-a,显示的是默认目录里面的情况。

    • 查看内存使用情况:free -m
      • -m:代表以M为单位查看内存大小
      • 查询结果的含义:
        • total列:代表总内存大小,used代表已使用的内存,free代表空闲的内存。
        • mem行:代表内存的情况,
        • swap行:代表内存的交换分区情况(不用关注)

    • 动态监控系统状态:top
      • top命令是一个持续运行的进程,需要按q退出,数据没3秒更新一次。

      • 查询结果含义:
      • 第一行:top -后面:当前系统时间 up 系统连续运行的时间,当前登录的用户数,load average(系统的平均负载值):第一个值代表1分钟内的平均负载值,第二个值代表5分钟的平均负载值,第三个值代表15分钟的平均负载值。
        • 关于平均负载值的含义:
          • 理解这个值,首先确定一个标准值,条件如下:
            • 1个cup并且1个核心的情况下,负载值为1的时候达到满负载。
          • 根据以上标准,当cup的数量和核心数量改变的时候,满负载也对应改变。比如:现在变成2个cpu,每个cpu也是1核心,这时候满负载值就称为2,如果还是1个cpu,但是有两个核心,满负载值也是2
        • 查看cpu的数量:
          • cat /proc/cpuinfo
            • 这个文件含义如下:
            • 每一行model name代表一个cpu
            • 每个cpu的核心数,通过cpu cores来看
      • 第二行:进程的具体运行情况:tasks:代表进程任务:tatal代表进程的总数量,running代表正在前台运行的进程数,sleeping代表休眠进程数,stoppped代表停止的进程数,zombie代表僵尸进程数。
      • 第三行:cpu的占用情况,百分比表示。us代表用户空间占用情况,sy代表内核空间占用情况,ni代表改变过优先级的进程的占用情况,id代表空闲cpu情况。后面的wa,hi,si,st不必关注。
      • 第四行、第五行代表内存使用情况:参考内存查看命令free即可。额外关注一点,交换分区的used数据,如果为0,说明内存够用,不需要使用交换分区。如果有值,就说明内存不够用了,一直在用交换分区。
      • 进程列表部分:
        • PID列:进程id,每个进程有唯一的id号
        • USER列:代表进程的所有者
        • PR列:进程优先级
        • NI列:跟优先级相关的值,nice的缩写,这个值越低优先级越高。
        • VIRT\RES\SHR:都是关于内存的虚拟内存、共享内存等详细的参数,我们不用关注。
        • S列:代表进程状态,status的缩写。有如下几种状态:
          • S:休眠
          • R:运行中
          • T:停止
          • Z:僵尸进程
        • %CPU:代表进程占用cpu百分比
        • %MEM:代表进程占用内存百分比
        • TIME+:代表进程使用cpu的时间总计
          • 单位如下:从右到左看,单位分别是百分之一秒,十分之一秒,秒,十秒,分钟。
        • COMMAND:即命令,也就是这个进程的名称或者命令。
  • 2.Linux网络相关命令
    • 网络查看命令
      • 查看网络配置的基本信息:ifconfig,Windows上是ipconfig。ens33代表当前的网卡。

      • 测试网络的连通性:ping IP地址或者域名,这个命令使用Ctrl+c退出

      • 查看网络端口:
        • lsof -i:端口号 查看当前端口号的文件信息,此命令用于查看某个端口号是否被占用。如果有内容就说明被占用了。
        • 查看结果的含义:
          • command列:进程名称(重点关注)
          • pid列:进程的id(重点关注)
          • user列:进程拥有者
          • fd列:文件标识符
          • type列:文件类型
          • device列:磁盘名称位置编号
          • size列:大小
          • node列:节点
          • name列:文件名称

      • 查看当前系统有哪些端口正在被使用:
        • netstat -lntp

        • 重点关注这几列:
          • Local Address代表本地地址,是个IP地址,IP地址后冒号后的就是端口号,说明这个端口号被占用。
          • PID/Program name代表占用本端口的进程id和命名名。
  • 3.Linux目录和文件操作命令
    • 3.1目录操作命令
      • 进入目录:cd 目录名称或者一个目录的路径 cd是change directory的缩写
        • 比如:cd /home/test01
      • 打印当前工作目录的完整路径:pwd,全称是print word directory
      • 查看目录的内容:ls,全称是list。直接ls代表查看当前目录的内容,ls后面也可以跟上路径,代表查看这个路径下的内容。比如:ls /home/test01
        • 参数-a:all的缩写,查看目录下所有内容,包括了隐藏文件
        • 参数-l:list的缩写,以详情的形式查看目录
        • 参数-h:human的缩写,以人们容易理解的单位查看大小
      • 绝对路径和相对路径
        • 绝对路径:就是从根目录/开始的一个路径,可以准确定位到一个位置,比如:/home/tommy
        • 相对路径:相对于你当前位置的一种表现方式
          • . 代表当前位置
          • .. 代表上级目录
          • ~ 代表当前用户的家目录
          • - 代表上一次所在的目录
      • 创建目录:mkdir 目录名或者路径 mkdir全称是make directory。
        • mkdir支持同时创建多个目录,如:mkdir a b,默认在当前目录下创建,也可以使用路径指定一个创建位置,如:mkdir /root/test01
        • mkdir支持创建多级目录,使用 -p 参数即可,-p参数是parent的缩写。如:mkdir -p dir1/dir2
      • Linux文件和目录的特点
        • 名称是区分大小写的
        • Linux的文件是没有专用后缀名的。当你看到类似后缀名的表示,其实那也属于文件名的一部分。之所以这么写是为了区分文件属于什么类型,是一种约定的写法。比如:anaconda-ks.cfg这个整体就是一个文件名,.cfg不是后缀名。
      • 以树状形式来展示目录结构:tree
    • 3.2文件操作命令
      • 创建文件
        • touch命令可以在当前位置创建一个空白文件,可以同时创建多个,空格分开。比如:touch file1 file2
        • 使用vi编辑器命令也可以创建文件,并且同时打开文件进行编辑,如:vi file_vi
      • 查看文件
        • cat:一次性显示文件的所有内容,当文件内容较多时,会快速滚动屏幕,直到最后一屏。所以cat命令适合查看短文件。如:cat file1
          • 参数-n:n是number的缩写,用于显示行号
        • tac:倒过来查看文件,就是对文件进行倒叙排序后再查看
        • more:一次性显示一屏内容,并且在底部有一行提示信息,给出当前的位置百分比。
          • 快捷键:空格显示下一屏内容
          • 快捷键:回车显示下一行内容
          • 快捷键:q 可以手动退出,否则显示完毕后自动退出
        • less:这个命令跟more相似,但功能更全面,more只能往下看,不能回看。less支持回看。
          • 快捷键:空格显示下一屏内容
          • 快捷键:回车显示下一行内容
          • 快捷键:j、k可以上下翻行
          • 快捷键:翻页键(pageup、pagedown)可以实现上下翻页
          • 快捷键:q 退出,注意less不会自动退出
          • 快捷键:/ 支持在文件中查找内容,查找的内容关键字写到/后面即可
        • head:从头开始查看
          • 参数:可以指定查看的行数,默认只显示10行。如:head 文件名 显示这个文件前10行。head -30 文件名 代表显示文件的前30行。
        • tail:从尾部开始查看
          • 参数:可以指定查看的行数,默认只显示10行。如:tail 文件名 显示这个文件后10行。tail -30 文件名 代表显示文件的后30行。
          • 参数-f:代表实时查看文件,监控文件的最新变化,也是查看尾部,默认显示10行,是一个连续运行的程序,需要ctrl+c退出。这个命令很常用,主要用来查看日志,因为日志的内容会经常更新,而更新的内容都写在了尾部。
    • 3.3目录和文件通用操作
      • 复制文件或目录:cp,copy的缩写
        • 格式:cp 源 目标。源可以是多个文件 ,可以是绝对路径或相对路径。目标如果是一个目录,那么会在这个目录下产生同名文件,完成复制。目标如果是一个文件,那么复制以后会再进行重命名。相当于改名另存为。
        • 参数-r:这个参数代表递归的意思,可以实现操作目录的每一级,直到最下面一级。这样就可以实现对一个目录的完整复制。所以当你复制的是一个目录的适合,需要-r参数,否则只能复制文件。
      • 剪切移动文件或目录:mv,move的缩写
        • 格式:mv 源 目标。源和目标如果相同,都是一个位置,相当于重命名。如果源和目标位置不同,就是移动。
      • 删除文件或目录:rm,remove的缩写
        • 格式:rm 要删除的文件或目录
          • 参数-r:代表递归,用于删除目录,如果不加-r参数,只能删除文件。
          • 参数-f:代表强制删除,不需要跟我确认。
        • 注意:这个命令 rm -rf 是很危险的,代表着直接强制删除后面的一个目录,如果删错了就无法恢复,一定要慎用,一定要确认好你删除的对象。
    • 3.4查找和搜索以及Linux文档处理三剑客
      • 通配符:* 可以匹配0到多个任意字符 ?匹配一个任意字符
      • 查找文件:find
        • 按照名称查找:find 目录名 -name 文件名
          • 如:find . -name file2 代表在当前目录下查找file2文件。
          • 通配符查找:find /etc -name "*ens33" 代表在/etc目录下查找以ens33结尾的文件
        • 按类型查找:find 目录名 -name 文件名 -type d(目录) f(文件) l(链接,相当于快捷方式)
      • 文档处理三剑客
        • grep命令
          • 用于在文件中查找字符,它是通过正则表达式的语法查找的。
          • 格式:grep 关键词 文件名 代表在文件中查找对应的关键字,关键字部分可以替换成正则表达式。
          • 参数-i:忽略大小写
          • 参数-n:显示匹配的行,同时加上行号
          • 参数-v:显示不匹配的行
          • 使用正则表达式匹配
            • grep "^a" 文件名,代表在文件中查找以a开头的字符
            • grep "n$" 文件名,代表在文件中查找以n结尾的字符

3.Linux文件操作

Linux 命令大全(看这一篇就足够)_linux命令-CSDN博客

4.文本分析

5.压缩打包

  • Linux第三天第四天目标
    • 掌握Linux文档处理三剑客
    • 掌握vi/vim编辑器的使用
    • 掌握权限管理命令
    • 掌握打包相关命令
    • 掌握重定向、管道符和进程管理命令
    • 了解shell脚本的简单使用
  • sed命令
    • sed可以按照脚本指令来处理编辑文本文件。主要用来对文件进行增删改操作。
    • 格式:sed [参数][动作指令] 文件名
      • 参数:
        • -e:可以同时指定多个指令,每个-e后面可以跟一个指令
        • -n:取消默认的输出,这个参数一般配合p(print)一起使用,可以打印指定的内容
        • -i:会修改源文件。如果不加,sed做的所有操作都不会修改源文件。
      • 动作指令
        • a:新增
        • d:删除
        • c:替换行
        • i:插入
        • p:打印,一般和-n参数一起使用
        • s:替换指定的字符串
      • 实例
        • 新增a
          • sed '2a test' test.txt 在第二行后面新增一行内容test
          • sed '1,3a test' test.txt 在第1行到第3行每一行后面都增加一行内容test
          • sed '$a test' test.txt 在最后一行增加一行内容test,$代表最后一行
        • 替换行c
          • sed '2c test' test.txt 将第二行内容整体替换成test
          • sed '1,3c test' test.txt 将1-3行整体替换成test
        • 删除d
          • sed '2d' test.txt 删除第2行
          • sed '1,3d' test.txt 删除第1-3行
        • 插入i
          • sed '2i test' test.txt 在第二行前面插入一行内容test
          • sed '1,3i test' test.txt 在第1-3行每行前面插入一行test
        • 打印p
          • sed '2p' test.txt 在默认输出的情况下,打印第二行,相当于第二行打印了两遍
          • sed '1,3p' test.txt 在默认输出的情况下,打印第1-3行,相当于第1-3行各打印了两遍
          • sed -n '2p' test.txt 通过-n参数取消默认输出,只打印第二行
          • sed -n '1,3p' test.txt 通过-n参数取消默认输出,只打印第1-3行
          • 我们还可以使用正则表达式去匹配我们要找的内容,然后打印出来
            • sed -n '/user/p' test.txt 使用正则表达式匹配user字符所在行,并打印出来,正则表达式放在两个/中间
            • sed -n '/user/!p' test.txt 在上面命令p指令前加!,代表取反操作,就是打印不匹配的行
        • 替换指定的字符串s
          • sed 's/old/new/' test.txt 替换old为new,默认只替换每一行第一个匹配结果
          • 如果希望全部替换,需要加g参数,g代表global(全局)如:sed 's/old/new/g' test.txt
          • sed 's/OLD/new/gi' test.txt 又增加了一个参数i,代表忽略大小写。
          • sed '1,3s/old/new/g' test.txt 指定范围内进行替换,只替换第1-3行的内容
      • 使用-e参数同时指定多个指令
        • sed -e 's/old/new/g' -e '2d' test.txt 先用s指令完成替换,然后再用d指令删除第二行
  • awk命令
    • awk是一个强大的文本分析工具,简单来说就是把文件逐行读入,默认以空格作为分隔符,然后进行分隔切片,切片后的部分是一列,然后再进行处理输出。
    • 语法:awk [option]'pattern{action}'{filename} 注意:只能用单引号
    • 默认情况下,awk是逐行处理文本的,也就是先处理当前行,再处理下一行,这种模式是默认模式,也叫空模式。如果指定了条件,awk在处理文本时,只有满足条件的行才会被处理。这里说的其实就是模式pattern。
      • options选项:常用的是-F,用来指定分隔符
        • 案例:指定分隔符为逗号,然后进行分隔,分隔之后就有了多列,然后打印前两列。
        • awk -F, '{print $1,$2}' test.txt
        • 案例:指定多个分隔符,比如先使用空格分隔,然后再对分隔出来的列继续使用逗号分隔
        • awk -F'[ ,]' '{print $1,$2}' test.txt
      • pattern模式:其实就是执行指令动作需要满足的条件,有点像if(pattern){动作指令脚本};
        • awk命令主要有以下几种模式:
          • 空模式:也是默认模式,即不指定匹配条件,一行一行去处理文本内容。
          • BEGIN模式:即在文本处理之前,需要执行的操作,比如定义一些变量,给后面使用,或者打印一个表格的表头。
          • END模式:在处理完文本所有行之后,需要执行的操作。
            • awk 'BEGIN{print "lets begin"}{print $1,$2}END{print "end"}' test.txt 开始处理每一行内容之前,先打印了lets begin,然后处理每一行,并且打印前两列,处理完全部行之后,打印了end
            • awk 'BEGIN{print "定义一个变量line",line=0}{line+=1}END{print line}' test.txt 开始处理文档之前,先打印了一句话,并且定义了一个变量line,给它初始化为0,然后每次处理一行的时候,给line+1,最后处理完毕后,打印出line的值。
          • 关系运算模式:就是在指定条件时,使用关系运算符。
            • 如:我们取指定的行进行操作
            • NR时表示行号的默认变量,我们使用这个变量来对行进行逻辑运算。
            • 如:取第一行只分隔,不做任何动作:awk 'NR==1' test.txt 注意:'NR==1'是指定的执行条件,不是脚本指令本身,所以不能放到{}中。
            • 如:awk 'NR==1 {print $1}' test.txt 取第一行,然后分隔,然后打印分隔后的第一列。
            • 如:取多行,取第2到第4行 awk 'NR>=2&&NR<=4' test.txt
          • 正则模式:把正则表达式当作条件,满足正则表达式匹配的行才处理。正则表达式放在//中
            • 如下:
              • 找出有指定关键字的行来处理:awk '/old|hello/' test.txt 代表找出含有old或hello字符的行
      • action动作指令:就是你要执行的操作
        • 输出完整的内容:awk '{print $0}' test.txt
        • 打印指定的列:awk '{print $1,$3}' test.txt 打印第一列和第三列
        • 打印最后一列:需要用到一个变量NF,代表最后一列。awk '{print $NF}' test.txt
        • 输出总共有多少列:awk '{print NF}' test.txt
        • 输出总共有多少行:使用行数变量NR,如:awk 'END{print NR}' test.txt
  • vi/vim文本编辑器
    • vim是vi的增强版,vi是系统自带的。以下命令在vi/vim中通用:
      • 刚打开的默认模式
        • 快捷键:gg跳到文件开头,G跳到文件最后一行。
        • 快捷键:0跳到行首,$跳到行尾。
        • 快捷键:dd删除光标所在行
        • 删除多行:首先进入底线模式,输入显示行号命令:set nu,然后输入你要删除的行,再输入d,即可删除。如:5,10d 代表删除5-10行。
        • 撤销恢复操作:按u
      • 底线模式,在默认模式下,按:进入。按esc回到默认模式。
        • 命令:w保存,另存为一个新文件:w 文件名
        • 命令:q退出,如果你修改了文件直接退出会有提示,因为你没保存,这个时候想保存退出使用wq,如果不想保存,直接退出,需要加!来强制退出,如q!
        • 命令:wq保存并退出
        • 命令:set nu设置行号,有了行号之后可以输入行号直接回车,定位所在行。set nonu可以取消行号。
        • 命令:set ic 忽略大小写,set noic不忽略大小写
        • 搜索关键字命令:/关键字 即可完成对关键字的搜索,光标会定位到搜索结果的第一个位置,这个时候可以使用n和N在多个结果之间切换,n下一个,N上一个。
      • 插入模式,insert模式。按i、a、o都可以进入插入模式,i是在光标前插入,a是在光标之后插入,o是在光标位置的下一行另起一行插入内容。按esc回到默认模式。
  • Linux权限管理命令
    • 角色:u、g、o三种角色,u拥有者,g所属的组,o其他人。这三个分别是user、group、other的简写。还有一种简写:a,代表all,所有人,指代所有角色
      • 1.补充:组管理的相关命令
      • 1.1 添加组
        • groupadd 组名
        • groupadd devgroup:创建一个组devgroup
      • 1.2 删除组
        • groupdel 组名
        • groupdel devgroup:删除组devgroup
      • 1.3 将用户添加到指定的组、从指定的组中移除
        • gpasswd –a/-d 用户名 组名
        • gpasswd –a zhangsan test
        • gpasswd –d zhangsan test
      • 1.4 增加用户时,直接增加组
        • useradd -g 用户组 用户名
      • 1.5 修改用户的组
        • usermod -g 用户组 用户名
    • 权限类型:r读,w写,x执行
    • 通过查看文件目录的详情信息,来了解权限相关的部分。使用命令:ls -l 这个也可以简写成:ll

      • 第一列:一共10个字符位置,第一个字符代表类型,类型有以下几种:-代表普通文件,d代表目录,l代表链接。第二个到第十个字符,是三个一组出现的,每一组代表了一种角色的读写执行权限,第一组代表了u拥有者的权限,第二组代表了g所属组的权限,第三组代表了o其他人的权限。
      • 第二列:显示一个数字,如果是目录,这个数字代表这个目录下一级子目录的个数(包括了隐藏的当前目录.和上级目录..),如果是文件,这个数字代表这个文件的链接数。
      • 第三列:此文件或目录的所属用户
      • 第四列:此文件或目录所属的组
      • 第五列:显示文件或目录的大小,默认以字节单位显示
      • 第6-8列:显示的是最后修改时间
      • 第9列:文件或目录名称
    • 修改权限:chmod
      • 使用角色代号ugoa来修改权限
        • chmod o+w 文件或目录名,代表给其他人o这种角色增加w写权限
        • chmod ug+x 文件或目录名,代表给拥有者和所属组增加执行权限
        • chmod a-x 文件或目录名,代表给所有角色去掉执行权限
        • chmod u=rwx 文件或目录名,代表给拥有者直接赋予rwx权限
      • 使用数字模式来修改权限
        • 使用3位数字分别代表三种角色的三种权限,每个数字都可以表示三种权限,每个数字是由三位二进制数字转换而来。
        • 参照下表:

        • 举例:chmod 754 文件名,代表给这个文件754权限,7代表所有者具有读写执行权限,实际代表111二进制,5代表所属组具有读和执行权限,实际是101,4代表给其他人只读权限,实际是100
  • 打包、解包、压缩、解压缩命令
    • 统一使用tar命令,根据不同的参数完成不同的操作
      • 参数:
        • -c:新建打包文件,打包操作
        • -v:在操作过程中,显示被操作的文件名
        • -f:指定要操作的文件或目录,此参数要写在最后
        • -x:解包操作
        • -z:通过gzip(一种压缩格式)进行压缩或者解压缩操作
        • -j:通过bzip2(一种压缩格式)进行压缩或者解压缩操作
        • -C:将操作目录从当前目录(默认目录)改为指定目录
        • -P:将操作的结果文件,放到指定目录,否则会放在当前目录。
      • 常用参数组合:-cvf 打包,-zcvf打包同时压缩,-xvf解包,-zxvf解包同时解压。
        • 举例:打包tar -cvf file.tar a ana,代表对a目录和ana文件进行了打包,打包的结果文件命名为file.tar,默认都是在当前目录操作。
        • 举例:解包tar -xvf file.tar,代表对file.tar包文件进行解包,默认放在当前目录。
        • 举例:打包同时压缩tar -zcf file.tar.gz a ana,代表对a目录和ana文件进行打包同时压缩,结果文件命名为file.tar.gz
        • 举例:解包同时解压tar -zxf file.tar.gz,代表对file.tar.gz文件进行解包同时解压缩,默认在当前目录操作。
        • 举例:使用-P和-C参数 tar -Pzcf /home/tommy/new.tar.gz -C /root a ana,代表将操作结果放到/home/tommy目录下,这个需要使用-P参数完成。将操作对象从当前默认位置,改为指定位置/root,这个用到了-C参数。
      • 常见的打包压缩格式
        • 打包后缀名:.tar
        • 打包并且压缩的后缀名:.tar.gz,gzip格式压缩的
        • 打包并且压缩的后缀名:.tar.bz2,bzip2格式压缩的
        • 注意:什么样的格式压缩的,就要用什么样的格式解压。
  • 重定向和管道符命
    • 重定向:把命令的输出重新定向到指定的文件里面,默认是输出到屏幕的。
      • >覆盖重定向:举例date>file 代表把date命令的输出,从默认的屏幕,重定向到file文件中,每次都会覆盖file文件原来的内容。
      • >>:举例date>>file 代表不会覆盖file文件原来内容,而是在后面追加新内容。
      • >/dev/null:代表重定向到空设备,也就是不输出任何结果,只执行命令
    • 管道符:| 代表把一个命令的执行结果当作下一个命令的输入
      • 举例:yum list installed | grep python,这个命令代表查找当前已安装的软件,然后使用管道符把查询结果给到grep命令继续处理,grep命令来搜索里面跟python相关的关键词,再进行输出。这样我们就找到了跟python有关的软件。
  • 进程管理相关命令
    • 进程就是进行中的程序,此时程序就开始使用系统资源。
    • 查看进程的命令:ps 全称是process status
      • 参数-e:显示所有的进程。如果不加参数,默认显示当前用户当前终端的进程。
      • 参数-f:显示更完整的内容。
      • 常用的参数组合:ps -ef

      • uid:进程所属用户id,pid进程id,ppid进程的父进程id,parent的缩写,c代表cpu使用率,stime代表进程开始实际,tty是终端代号,time进程运行的总时间,cmd进程的命令名称
      • 一般配合管道符联合使用:ps -ef | grep python
    • 终止进程(只有root用户和进程的所有者才有权限终止进程)
      • 手动杀死进程:
        • kill 进程号pid,有时候这样会失败,因为有的进程不能这样直接杀死,因为这个进程可能还在被其他进程使用,有肯能还在被父进程调用。
        • kill -9 进程号pid,这样可以强制杀死进程。
  • 了解shell脚本的简单使用
    • shell脚本是shell script语法结合Linux命令的一个批处理文件。shell默认的版本bash shell。
    • 写一个简单的shell脚本:
      • 首先vi hello.sh新建一个shell文件
        • shell脚本第一行固定写法:#!/bin/bash
        • 第二行使用echo打印一句话:echo "hello shell"
        • 第三行写一个Linux命令:date
      • 然后保存退出
      • 执行这个shell脚本
        • 执行shell脚本有多种方式;
          • . hello.sh
          • source hello.sh
          • sh hello.sh
    • shell脚本语言基本语法:
      • 定义变量:
        • 注意:定义变量时等号左右两边不能有空格
        • 注意:定义变量时,可以使用单引号和双引号,但是有很大区别:单引号会原样输出,双引号会解析里面的命令和变量。一般推荐使用双引号。
      • 使用变量:
        • 需要在变量前面加$,还有一种写法就是在$后面加{},比如${author},修改变量的时候不需要加$
      • 举例:
        • #!/bin/bash
        • author="余华"
        • echo "《活着》的作者是:"$author
      • 删除变量:
        • 使用unset删除变量,如:unset author
      • 条件语句if:
        • 注意:条件和需要执行的代码需要使用((条件))括起来,其他的关键字有else,elif,fi
        • 举例:
          • read age
          • if (($age<18));then
            • echo "未成年"
          • elif (($age>=18 && $age<65));then
            • echo "已成年,努力工作"
          • elif (($age>=65));then
            • echo "退休了"
          • fi
      • while循环:
        • 举例:计算1-100累加和
          • #!/bin/bash
          • i=1
          • sum=0
          • while((i<=100))
          • do
            • ((sum+=i))
            • ((i++))
          • done
          • echo "1-100的累加和是:"$sum
      • for循环:
        • 举例:计算1-100累加和
          • #!/bin/bash
          • i=1
          • sum=0
          • for ((i;i<=100;i++))
          • do
            • ((sum+=i))
          • done
          • echo "sum is:"$sum
        • 举例:for循环的另外一种写法,for in语句
          • sum2=0
          • for n in {1..100}
          • do
            • ((sum2+=n))
          • done
          • echo "sum2 is:"$sum2
      • 函数:
        • 举例:
          • #!/bin/bash
          • function add() #function是关键字,代表定义一个函数
          • {
          • echo $(($1+$2)) #$1代表第一个参数,$2代表第二参数。当n>=10时,需要使用${n}来获取参数。如获取第十个参数需要${10}。
          • }
          • add 1 2 #调用函数并且传参
        • 主函数main
          • #!/bin/bash
          • function add()
          • {
          • echo $(($1+$2)) #$1代表第一个参数,$2代表第二参数
          • }
          • main()
          • {
          • echo "下面要调用add函数,执行结果是:"
          • add 1 2
          • }
          • main

查找文件(不知道目录情况下,获取他的路径): find -name 文件名.后缀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason 斯坦森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值