zoukankan      html  css  js  c++  java
  • Linux命令

    常用命令

    su - root  # 登入管理员
    exit   # 退出
    init0  # 关机
    shutdown -h now  # 立即关机
    init6  # 重启
    
    ctrl+alt+f2  #  切换终端
    whoami  # 查看当前用户
    date  # 查看日期
    data 121215252019(月日时分年)  # 修改日期,按照月日时分年的顺序修改
    cal/cal 3 2019  # 查看当前日历/查看2019年3月份日历
    
    clear/ctrl+L  # 清屏
    passwd  # 修改密码
    echo 123 | passwd -- stdin root  # 修改用户密码为123

    目录操作

    # 增加目录
    mkdir /a  # 在根目录下创建a目录
    mkdir -p /b/g  # 使用了“-p”,可以直接在b目录下创建g目录或者文件
    
    #
    ls  # 查看根目录下所有文件
    
    #
    mv /a/b /a/f  # 将a下的b改为f
     mv /a/c /b  # 将a下的c移动到b文件夹下
    ctrl+c  # 取消运行
    
    #
    rm -r /b/g  # 可以直接删除b目录下的g(必须加上-r)
    rm -rf /b  # 直接全部删除,不会提示(j尽量不轻易使用)

    文件操作

    #
    touch a.txt  # 新增文件
    
    # 查看
    ls 
    
    # 修改
    mv a.txt b.txt  # 将a文件改为b文件
    
    #删除
    rm -rf b.txt  # 删除b文件

    用户管理

    cat etc/passwd  # 用户信息文件
    vim /etc/shaow  # 与用户密码先关
    cat /etc/group  # 组相关
    cat /etc/gshadow  # 组密码相关
    
    useradd 用户名  # 添加用户
    userdel用户名  # 删除用户,保留家目录
    userdel -r 用户名  # 删除用户,不保留家目录
    useradd -d 目录路径 用户名  # 指定家目录
    useradd -g 用户组名 用户名  # 指定用户组

    组操作命令

    groupadd 组名  # 增加组名
    groupdel 组名  # 删除组名
    usermod -g 组名 用户名  # 修改用户组名
    
    **前提:组内不能有用户,否则无法删除**

    ls命令

    ls  目录或文件  # 查看文件信息
    ls -a  # 查看所有文件和目录,包括隐藏的
    ls -l  # 以列表的方式显示

    cd命令

    cd # 路径
    cd ~ # 回到家目录
    cd ..  # 回到上一级目录

    cp命令

    cp test cat  # 拷贝test文件到cat文件中
    cp -r 源路径(test) 目标路径(cat)      # 拷贝文件夹
    cp [选项] 源路径 目标路径  # 取消提示,强制复制

    rm命令

    rm 文件路径  # 删除文件
    rm -r 文件夹路径  # 删除文件夹
    rm -f xxx  # 删除不再提示

    cat命令

    cat 文件路径  # 显示文件夹内容
    cat -n 文件路径  # 显示文件内容,并显示行号
    
    cat -n /etc/profile | more  # 正常情况为了方便阅读,我们会在cat指令最后加上管道符"
    |",把内容传给more,分页显示

     tail命令

    1、tail -f filename
    说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
    2、tail -n 20 filename
    说明:显示filename最后20行。
    3、tail -n +20 filename
    说明:显示filename前面20行。
    4、tail -r -n 10 filename
    说明:逆序显示filename最后10行。

     Vim命令

    1.拷贝当前行,并粘贴
        拷贝:yy    粘贴:p
    2.拷贝当前行向下5行,并粘贴
        拷贝5行:5yy
    3.删除当前行
        删除:dd
    4.删除当前行向下5行
        删除5行:5dd
    5.光标移至最后一行
        G
    6.光标移至首行
        gg
    7.移动到第7行
        7gg
    8.撤销
        u

    1.查找某个关键字
    /关键字
    2.取消高亮
    :nohl
    3.显示行号
    :set nu
    4.取消行号
    :set nonu

     

    more指令快捷键

    空格  # 向下翻一页
    Enter  # 向下翻一页
    q  # 立即离开
    Ctrl+F  # 向下滚动一屏
    Ctrl+B  # 向上滚动一屏
    =  # 显示当前行号
    :f  # 输出文件名和当前行号

    less指令快捷键

    空格  # 向下翻一页
    pagedown  # 向下翻一页
    pageup  # 向上翻一页
    /字符串  # 向下查找[字符串],n下一个,N上一个
    ?字符串  # 向上查找[字符串],n下一个,N上一个
    q  # 离开less

    关机/重启命令

    shutdown命令
        shutdown -h now :立即关机
        shutdown -h 2   :1分钟后关机
        shutdown -r now :立即重启
        shutdown -r 1    :1分钟后重启
    
    halt
        关机
    reboot
        重启
    sync:
        把内存的数据同步到磁盘

    特别注意:当关机或重启前,都应当先执行一下sync指令,把内存的数据写入磁盘,防止数据丢失

     

    问题

    如何找回 root 密码,如果我们不小心,忘记 root 密码,怎么找回。

    思路: 进入到 单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。

     

    开机->在引导时输入 回车键-> 看到一个界面输入 e ->  看到一个新的界面,选中第二行(编辑内核)在输入  e->  在这行最后输入1 ,再输入 回车键->再次输入 b ,这时就会进入到单用户模式。
    这时,我们就进入到单用户模式,使用 passwd  指令来修改 root  密码。

    find指令

    指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端

    find [范围] [选项]
    范围:指路径,不写默认从当前向下找,类似于windows的查找
    
    选项:
    -name 文件名  # 按文件名查找
    -user 用户名  # 查找属于该用户的所有文件
    -size  # 按文件大小查找
        +20M
        -20M
        20M
        20K

    “*.txt” 通配符要加引号

    练习:

    1.根据名称查找/home 目录下的 a.txt 文件
        find /home -name a.txt
        find /home -name "*.txt"

    2.查找/opt 目录下,用户名称为 lxx 的文件 find /opt -user lxx
    3.查找整个 linux 系统下大于 20M 的文件 find / -size +20M
    4.查询/ 目录下,所有.txt 的文件 find / -name "*.txt"

    grep 指令 和 管道符号 

    管道符:"|",表示将前一个命令的处理结果输出传递给后面的命令处理
    
    grep:过滤查找
    grep -n 过滤内容 # 显示匹配行及行号
    grep -i 过滤内容 # 忽略字母大小写
    例子:
    1.创建文件,写上多行,包含'yes''YES'
        
    2.查找'yes'所在行,并显示行号
        cat a.txt | grep -n "yes"
    3.忽略大小写,查找'yes'所在行
        cat a.txt | grep -ni "yes"

     

    压缩和解压

    gzip/gunzip 指令(只能用于文件压缩)

    用于压缩和解压文件

    gzip 文件路径  # 压缩
    gunzip gz 文件路径  # 解压

    zip/unzip 指令

    zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的

    zip [选项] xxx.zip 被压缩内容            # 压缩文件或者目录
        -r                             # 压缩目录
    
    unzip [选项] xxx.zip                 #  解压文件    
        -d 目录                #  指定压缩后的存放目录
    例子:
    1.将 /home 下的 所有文件进行压缩成 mypackage.zip
        zip -r mypackage.zip /home
        zip -r mypackage.zip /home/*
    2.讲mypackge.zip解压到/opt/tmp下
        unzip -d /opt/tmp mypackge.zip

    tar指令

    tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件

    压缩:
    tar -zcvf xx.tar.gz  被压缩内容(文件,文件夹,多个也行)                        #压缩
    tar -zxvf xx.tar.gz     -C 目标路径                                        #解压
    
    z:使用gzip格式压缩,否则是单纯打包
    c:压缩
    x:解压
    f:显示压缩解压过程
    v:显示提示信息
    例子:
    1.压缩多个文件,将  /home/a1.txt 和  /home/a2.txt 压缩成    a.tar.gz
        tar -zcvf a.tar.gz /home/a1.txt /home/a2.txt
    2.将/home 的文件夹 压缩成 myhome.tar.gz
    3.将  a.tar.gz    解压到当前目录
    4.将 myhome.tar.gz    解压到 /opt/ 目录下

    组管理和权限管理

    文件/目录 所有者

    一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

    查看文件的所有者

    ls -ahl

    修改文件所有者

    chown 用户名 文件名

    文件/目录 所在组

    当某个用户创建了一个当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。

    查看文件/目录 所在组

    ls –ahl

    修改文件所在组

    chgrp 组名 文件名

    其他组

    除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

    改变用户所在组

    在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户所在的组

    改变用户所在组

    usermod    –g    组名    用户名

    权限基本介绍

    ls -l
    -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
    
    0-9 位说明
    第 0 位确定文件类型(d,-,l)
    第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限
    第 4-6 位确定所属组(同用户组的)拥有该文件的权限
    第 7-9 位确定其他用户拥有该文件的权限

    rwx权限详解

    rwx作用到文件

    r  # 可读
    w  # 可写[可写不代表可以删除,删除一个文件的前提是对文件所在的目录有写的权限]
    x  # 可执行

    rwx作用到目录

    r  # 可读(可用ls查看目录内容)
    w  # 可写[可在目录内创建+删除+重命名文件或目录]
    x  # 可执行[可以进入目录]

    文件及目录权限实际案例

    -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
    
    - 表示类型为文件
    第一组rwx: 表示所有者 可读  可写 可执行
    第二组rw-: 表示同组用户  可读 可写 但不能执行
    第三组r--: 表示其他用户  只可读
    
    可用数字表示:
    r = 4
    w = 2
    x = 1
    因此rwx = 4+2+1 = 7

    修改权限

    chmod 权限变更格式 文件或目录路径
    
    权限变更格式一:
    u  # 所有者    
    g  # 所有组    
    o  # 其他用户    
    a  # 所有人
    
    
    1. u=rwx,g=rx,o=x
    2. o+w  # 其它用户增加w权限
    3. a-x  # 所有人减去执行权限
    例子:
    1.给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限
        chmod u=rwx,g=rx,o=rx abc
    2.给 abc 文件的所有者除去执行的权限,增加组写的权限
        chmod u-x,g+w abc
    3.给 abc 文件,所有用户添加读的权限
        chmod a+r abc
    权限变更格式二:
    r = 4   w = 2  x = 1    rwx = 7      rx = 5
    chmod u=rwx,g=rx,o=x   可以写成        chmod 751
    例子:
    1.将 /home/abc 文件的权限修改成    rwxr-xr-x, 使用给数字的方式实现
        chmod  755  /home/abc

    修改文件所有者

    chown newowner file  # 改变文件所有者
    chown -R newowner 文件夹  # 使得所有子文件或子目录生效

    修改文件所在组

    chgrp newgroup file  # 改变文件所有组
    chgrp -R newgroup 文件夹  # 使得所有子文件或子目录生效

    crond任务调度

        crontab -e  # bianji crontab定时任务
        crontab -l  # 查询crontab
        crontab -r  # 删除当前用户所有的crontab任务
    例子:
    每分钟执行查看一次/ect目录,把目录内容写进/tml/a.txt下
    
    具体实现步骤:
    1.crontab –e
    2.*/ 1 * * * * ls -l /etc >> /tmp/a.txt
    3.保存退出

     

    挂载的经典案例

    需求是给我们的 Linux 系统增加一个新的硬盘,并且挂载到/home/newdisk

    步骤:
    1.虚拟机添加硬盘
    2.分区
        fdisk /dev/sdb
        m    选择帮助
        n    增加分区
        p    划主分区
        1    主分区1
        1    默认
        w    写入分区信息并退出
    
    3.格式化
        mkfs -t ext4 /dev/sdb1
    
    4.挂载
        mount /dev/sdb1 /home/newdisk
    
    
    5.设置自动挂载
        vim /etc/fstab
        (内容如下)
        mount -a   立即生效

    磁盘情况查询

    查询系统整体磁盘使用情况

    df -lh

    查询指定目录的磁盘占用情况

    du      #  /目录
        -h  # 带计量单位
        -s  # 指令目录占用磁盘大小
        -a  # 含文件
        -c   # 列出明细,并显示汇总值
        --max-depth=1  # 子目录深度

    网络配置

    Linux网络配置原理图(NAT)

    查看网络ip和网关

    查看虚拟网络编辑器

    修改ip地址(修改虚拟网络的ip)

    查看网关

     

    查看windows环境的中 VMnet8

    网络配置 (ipconfig 指令)

    1.使用命令查看

    ipconfig

    ping 测试主机之间网络连通

    基本语法

    ping 目标ip      # 测试当前服务器是否可以连接目的主机

    Linux网络环境配置

    直 接 修 改 配 置 文 件 来 指 定 IP, 并 可 以 连 接 到 外 网

    vim  /etc/sysconfig/network-scripts/ifcfg-ens33

     修改配置文件后,要重启网络服务才能生效

    service network restart

    进程管理

    指令详解

    BSD风格 详解

    user             用户名称
    pid                进程号
    %cpu            进程占用cpu百分比
    %%mem            进程占用物理内存的百分比
    vsz                进程占用虚拟内存的大小
    rss                进程占用物理内存的大小
    tty                终端名称(后台则为?)
    stat            进程状态
        S:睡眠
        s:会话的先导进程
        N:进程拥有比普通优先级更低的优先级
        R:正在运行
        D:短期等待
        Z:僵尸进程
        T:被跟踪或者被停止
    start            进程启动时间
    time            使用cpu总时间
    command            启动进程所用的命令和参数,如果过长会被截断显示

    system V 风格详解

    uid             用户id
    pid                进程id
    ppid            父进程id
    C                进程占cpu百分比
    stime            进程启动时间
    tty                终端名称(后台则为?)
    cmd                启动进程所用的命令和参数

    查看进程树 pstree

    pstree [选项]
        -p    查看进程pid
        -u      查看进程所属用户

    服务(service)管理

    基本使用

    service 服务名 [start | stop | restart | reload | status]

    查看服务名

    /etc/init.d 此文件夹下放着系统都有哪些服务

    ls -l /etc/init.d

    chkconfig指令

     通过 chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭

    chkconfig  # 查看每个服务的配置
    chkconfig 服务名  # 查看具体服务的配置
    chkconfig --level 5 服务名  on/off  # 给服务设置是否自动启动

    chkconfig 重新设置服务后自启动或关闭,需要重启机器 reboot 才能生效

    动态监控进程

    top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程

    top [选项]
        -d            指定每隔几秒更新,默认3秒
        -i            不显示任何闲置或者僵尸进程
        -p id号        监听指定进程
    
    
    交互操作:
    P        以cpu使用率排序,默认就这个
    M        以内存使用率排序
    N        以pid排序
    u        监听具体用户
    k        终止指定进程
    q        退出top

     

  • 相关阅读:
    煲鸡汤流程
    面向对象
    程序员英语学习思维导图
    百度通配符学习
    面向对象
    IO学习
    理解java的三大特性之继承
    重载(overload)、覆盖(override)、隐藏(hide)的区别
    2018年值得关注的10大JavaScript动画库
    小知识点总结
  • 原文地址:https://www.cnblogs.com/xiongying4/p/11973840.html
Copyright © 2011-2022 走看看