Linux再学!

第三篇Linux入门

一.linux基本指令

1.Linux根目录为/,后续路径用/分隔,如/home/admin

2.Linux命令

  • 基础格式:

    command: 命令本身
    -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
    parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等

  • ls命令

    ls表示展示当前目录下文件信息
    -alh为可选项
    -a:表示列出全部文件(包括隐藏文件)
    -l:以列表形式展示,并输出权限等更多信息
    -h:列出文件大小,更加便于阅读<必须搭配-l一起使用>

  • cd命令

    切换到指定路径下<需要有执行权限>

  • pwd命令
    语法就为:pwd
    查看当前所在工作目录<防迷路>

  • 特殊路径符
    . 表示当前目录 cd ./Desktop
    .. 表示上一级目录, cd .. 切换到上一级目录
    ~ 表示当前用户的home目录 cd ~

  • mkdir命令

    mkdir用于在指定路径下创建目录(文件夹)
    -p:表示自动创建不存在的父目录,适用于创建连续多层级的目录<递归创建文件>

  • touch命令

    用于创建文件<mkdir创建文件夹>

  • cat命令

    查看文件内容<文本格式>

  • more命令

    cat是直接将内容全部显示出来
    more支持翻页,如果文件内容过多,可以一页页的展示
    空格进行翻页,按q即可退出查看

  • cp命令

    可以用于复制文件\文件夹
    参数1,Linux路径,表示被复制的文件或文件夹
    参数2,Linux路径,表示要复制去的地方
    -r用于复制文件夹,递归复制文件夹内所有文件

  • mv命令

    用于移动文件\文件夹(或者重命名)
    参数1,Linux路径,表示被移动的文件或文件夹
    参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在

  • rm命令

    用于删除文件、文件夹
    -r 选项用于删除文件夹
    -f 表示force,强制删除(不会弹出提示确认信息)
    参数可多个,表示删除多个文件
    rm -rf /*

  • which命令

    可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里

  • find命令

    查找文件名叫做:test的文件,从根目录开始搜索: find / -name "test"<可以模糊查询>

  • find可选项还有"-size",格式如下:

    +、- 表示大于和小于
    n表示大小数字
    kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
    从根目录下查找小于10KB的文件: find / -size -10k

  • grep命令

    可以通过grep命令,从文件中通过关键字过滤文件行。
    选项-n,可选,表示在结果中显示匹配的行的行号。
    关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用””将关键字包围起来。
    文件路径,必填,表示要过滤内容的文件路径。

  • wc命令

    -c,统计bytes数量 count
    -m,统计字符数量 number
    -l,统计行数 line
    -w,统计单词数量 word count
    不带可选项则全部信息输出<分别为:行数,单词数,字节数>

  • 管道符|
    管道符的含义是:将管道符左边命令的结果,作为右边命令的输入

  • echo命令

    可以使用echo命令在命令行内输出指定内容<类似printf>
    PS:我们可以通过将命令用反引号(通常也称之为飘号)`将其包围被该符号包围的内容,会被作为命令执行,而非普通字符

  • 重定向符 > >>
    单个>: 将左侧命令的结果,覆盖写入到符号右侧指定的文件中
    两个>>: 将左侧命令的结果,追加写入到符号右侧指定的文件中

  • tail命令

    可以查看文件尾部内容,跟踪文件的最新更改
    -f 表示持续跟踪文件,随时更新最后内容
    -num 表示查看尾部多少行,默认为10行(-3 -7 -5 ...)

二. vi/vim使用

  • 是Linux中最经典的文本编辑器。vim为加强版
  • vi\vim编辑器的三种工作模式:

    命令模式(Command mode):所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。
    输入模式(Insert mode):所谓的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。
    底线命令模式(Last line mode):通常用于文件的保存、退出。
  • 通过vi/vim命令编辑文件(vim + 文件名),会打开一个新的窗口,此时这个窗口就是:命令模式窗口,后续操作如下图切换模式。
  • 命令模式快捷键



    常用:
    i 进入编辑模式,esc回退到命令模式.:进入底线模式
    0 光标移到当前行开头,$移动到当前行结尾
    dd 删除光标所在行 ndd<删除光标以下n行>
    yy 复制光标所在行 nyy同理
    p 粘贴 u 撤回 ctrl + r反撤回
    gg跳转到首行 G跳转到尾行

三. Linux权限<用户与用户组>

  • root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。

  • su命令

    用于账户切换的系统命令
    -符号是可选的,表示是否在切换用户后加载环境变量,建议带上
    exit命令用于退出登录

  • sudo命令

    为普通的命令授权,临时以root身份执行
    但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

  • 为普通用户配置sudo认证
    切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
    在文件的最后添加:

    其中最后的NOPASSWD:ALL 表示使用sudo命令,无需输入密码
    最后通过 wq 保存

  • 用户组
    Linux中关于权限的管控级别有2个级别,分别是:
    针对用户的权限控制
    针对用户组的权限控制

  • 创建用户组
    groupadd 用户组名

  • 删除用户组
    groupdel 用户组名

  • 创建用户
    useradd [-g -d] 用户名
    选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
    选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名

  • 删除用户
    userdel [-r] 用户名
    选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留

  • 查看用户所属组
    id [用户名]
    参数:用户名,如果不提供则查看自身

  • 修改用户所属组
    usermod -aG 用户组 用户名,将指定用户加入指定用户组

  • getent passwd
    可以查看当前系统中有哪些用户

    共有7份信息,分别是:
    用户名:密码(x 隐藏):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

  • getent group
    可以查看当前系统中有哪些用户组

    包含3份信息,组名称:组认证(显示为x):组ID

  • 文件权限信息
    通过ls -l 可以以列表形式查看内容,并显示权限细节

    序号1,表示文件、文件夹的权限控制信息
    序号2,表示文件、文件夹所属用户
    序号3,表示文件、文件夹所属用户组
    d rwx rwx rwx <用户 用户组 其他用户>

  • chmod命令
    修改文件、文件夹的权限信息

    选项:-R,对文件夹内的全部内容应用同样的操作<表递归>
    PS: chmod u=rwx,g=rx,o=x hello.txt ,将文件权限修改为:rwxr-x--x
    将一组看成二进制三个1, 111 101 001 -> 751 -> chmod 751 hello.txt

  • chown命令
    可以修改文件、文件夹的所属用户和用户组

    -R,同chmod,对文件夹内全部内容应用相同规则
    : 用于分隔用户和用户组<: 前为用户, 后为用户组>
    chown root hello.txt,将hello.txt所属用户修改为root
    chown :root hello.txt,将hello.txt所属用户组修改为root

四. 实用技巧

1.常用快捷键

  • ctrl + c 强制停止
  • ctrl + d 退出或登出<su命令登出>
  • history查看历史命令
  • ctrl + r,输入内容去匹配历史命令
  • ctrl + a,跳到命令开头
  • ctrl + e,跳到命令结尾
  • ctrl + 键盘左键,向左跳一个单词
  • ctrl + 键盘右键,向右跳一个单词
  • ctrl + l,可以清空终端内容

2.软件安装

  • yum命令

    用于自动化安装配置Linux软件,并可以自动解决依赖问题。
    -y,自动确认,无需手动确认安装或卸载过程
    install:安装
    remove:卸载
    search:搜索
    PS:需要root权限,需要联网

  • apt命令

    为ubantu的自动化软件安装
    用法一致

3.服务控制

  • systemctl命令

    服务<软件>控制指令,使用systemctl命令控制:启动、停止、开机自启
    start 启动
    stop 关闭
    status 查看状态
    enable 开启开机自启
    disable 关闭开机自启
    Ps:部分软件安装后没有自动集成到systemctl中,我们可以手动添加。

4.软连接

  • ln命令

    -s选项,创建软连接<类似Windows中快捷方式>
    参数1:被链接的文件或文件夹
    参数2:要链接去的目的地

5.日期时间

  • date命令

    通过date命令可以在命令行中查看系统的时间。
    格式化字符串:通过特定的字符串标记,来控制显示的日期格式。
    %Y 年
    %y 年份后两位数字 (00..99)
    %m 月份 (01..12)
    %d 日 (01..31)
    %H 小时 (00..23)
    %M 分钟 (00..59)
    %S 秒 (00..60)
    %s 自 1970-01-01 00:00:00 UTC 到现在的秒数
    ex.
    -d选项,可以按照给定的字符串显示日期,一般用于日期计算
    ex.

  • Linux修改时区
    将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可.

  • ntp程序
    我们可以通过ntp程序自动校准系统时间
    安装ntp:yum -y install ntp
    启动并设置开机自启:
    systemctl start ntpd
    systemctl enable ntpd
    当ntpd启动后会定期的帮助我们联网校准系统的时间
    也可以手动校准(需root权限):ntpdate -u ntp.aliyun.com

6.IP地址

  • ifconfig命令
    查看本机的ip地址,如无法使用ifconfig命令,可以安装:yum -y install net-tools

  • Linux修改主机名
    hostname查看主机名

    命令:hostnamectl set-hostname 主机名,修改主机名(需root)

7.网络传输

  • wget命令

    wget是非交互式的文件下载器,可以在命令行内下载网络文件
    -b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
    url,下载链接

  • curl命令

    可以发送http网络请求,可用于:下载文件、获取信息等
    -O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
    url,要发起请求的网络地址

  • nmap命令
    语法:nmap 被查看的IP地址
    安装nmap:yum -y install nmap

  • netstat命令
    语法:netstat -anp | grep 端口号,安装netstat:yum -y install net-tools

8.进程管理

  • ps命令

    -e,显示出全部的进程
    -f,以完全格式化的形式展示信息(展示全部信息)
    一般就使用 ps -ef

    从左到右分别是:
    UID:进程所属的用户ID
    PID:进程的进程号ID
    PPID:进程的父ID(启动此进程的其它进程)
    C:此进程的CPU占用率(百分比)
    STIME:进程的启动时间
    TTY:启动此进程的终端序号,如显示?,表示非终端启动
    TIME:进程占用CPU的时间
    CMD:进程对应的名称或启动路径或启动命令

  • kill命令

    通过kill命令关闭进程
    -9 表示强制关闭

9.主机状态

  • top命令<任务管理器>
    直接输入top即可,按q或ctrl + c退出,默认每5秒刷新一次

    第一行:
    top:命令名称,14:39:58:当前系统时间,up 6 min:启动了6分钟,2 users:2个用户登录,load:1、5、15分钟负载
    第二行:
    Tasks:175个进程,1 running:1个进程子在运行,174 sleeping:174个进程睡眠,0个停止进程,0个僵尸进程
    第三行:
    %Cpu(s):CPU使用率,us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,si:CPU软件中断率,st:强制等待占用CPU率
    第四、五行:
    Kib Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用
    KibSwap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,buff/cache:buff和cache占用

  • top命令更多

    PID:进程id
    USER:进程所属用户
    PR:进程优先级,越小越高
    NI:负值表示高优先级,正表示低优先级
    VIRT:进程使用虚拟内存,单位KB
    RES:进程使用物理内存,单位KB
    SHR:进程使用共享内存,单位KB
    S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
    %CPU:进程占用CPU率
    %MEM:进程占用内存率
    TIME+:进程使用CPU时间总计,单位10毫秒
    COMMAND:进程的命令或名称或程序文件路径

  • top交互式选项
    当top以交互式运行(非-b选项启动),可以用以下交互式命令进行控制

  • df命令
    语法:df [-h]
    可以查看硬盘的使用情况
    -h,以更加人性化的单位显示

  • iostat命令
    语法:iostat [-x] [num1] [num2]
    查看CPU、磁盘的相关信息
    -x,显示更多信息
    num1:数字,刷新间隔,num2:数字,刷新几次

  • sar命令
    语法:sar -n DEV num1 num2
    查看网络的相关统计
    -n,查看网络,DEV表示查看网络接口
    num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)

10.环境变量

  • env命令
    语法: env
    可查看当前系统中记录的环境变量
    环境变量是一种KeyValue型结构,即名称和值,如下图

  • \(符号 在Linux系统中,\)符号被用于取”变量”的值。
    环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。
    取得环境变量的值就可以通过语法:$环境变量名 来取得
    比如: echo $PATH
    就可以取得PATH这个环境变量的值,并通过echo语句输出出来。

  • export命令<临时>
    语法:export 变量名=变量值
    用户自行设置环境变量
    若想永久生效:
    针对当前用户生效,配置在当前用户的: ~/.bashrc文件中
    针对所有用户生效,配置在系统的: /etc/profile文件中
    并通过语法:source 配置文件,进行立刻生效,或重新登录FinalShell生效

11.上传和下载<需要终端机 如xshell, finalshell>
可以通过:yum -y install lrzsz,安装。

  • rz命令
    语法:直接输入rz即可

  • sz命令
    语法: sz 要下载的文件
    文件会自动下载到桌面的:fsdownload文件夹中。

12.压缩与解压

  • tar命令

    -c,创建压缩文件,用于压缩模式
    -v,显示压缩、解压过程,用于查看进度
    -x,解压模式
    -f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
    -z,gzip模式,不使用-z就是普通的tarball格式
    -C,选择解压的目的地,用于解压模式
    tar命令均可以进行压缩和解压缩的操作
    常用:
    tar -cvf xxx.tar {打包压缩文件集合} <仅打包,不压缩>
    tar -zcvf xxx.tar.gz {打包压缩文件集合} <打包并且压缩>
    tar -xvf xxx.tar <解包>
    tar -zxvf xxx.tar.gz <解压压缩包>
    tar -xvf test.tar -C /home/itheima <-C + Path 指定解压路径>
    -f选项,必须在选项组合体的最后一位
    -z选项,建议在开头位置
    -C选项单独使用,和解压所需的其它参数分开

  • zip命令

    -r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致<表示递归>
    常用:
    zip xxx.zip {打包压缩文件集合} <压缩文件,不包含文件>
    zip -r xxx.zip {打包压缩文件集合} <压缩文件,且包含文件>

  • unzip命令

    -d,指定要解压去的位置,同tar的-C选项
    常用:
    unzip xxx.zip,<将xxx.zip解压到当前目录>
    unzip xxx.zip -d /home/itheima,<将xxx.zip解压到指定文件夹内(/home/itheima)>


END!

posted @ 2023-04-27 21:08  gonghw403  阅读(30)  评论(0编辑  收藏  举报