• Linux下常用命令


    Linux命令格式

    [root@VM_0_17_centos ~]#

    root 代表当前登录用户(Linux当中管理员账号是root)
    @ 无意义
    VM_0_17_centos 主机名
    ~ 当前目录 (~也表示家目录)
    # 表示超级用户(普通用户提示符是”$”)
    Linux命令格式

    命令 [选项] [参数]
    注意:个别命令使用不遵循此格式,当有多个选项时,可以写在一起,简化选项与完整选项 -a 等于 –all
    ls [选项] [文件或目录]

    -a 显示所有文件,包括隐藏文件
    -l 显示详细信息
    -d 查看目录属性
    -h 人性化显示文件大小
    -i 显示inode
    -rw-r--r-- 1 root root 605 Mar 18 20:28 .jp1.tar.gz

    -rw-r--r--
    - 文件类型(- 文件 d 目录 l 软链接文件)
    root u所有者 权限为rw-
    root g所属组 权限为 r--
    o其他人 权限为 r--
    r读 w写 x执行
    1 引用计数,代表这个文件被调用的次数
    605 文件大小 Bit
    Mar 18 20:28 最后修改时间
    . 隐藏文件
    jp1.tar.gz 文件名
    pwd 显示当前目录

    Linux目录处理命令

    mkdir -p [目录名]

    -p 递归创建
    cd [目录]

    cd ~ 进入家目录
    cd 进入家目录
    cd - 返回上次的目录
    cd .. 进入上一级目录
    cd . 进入当前目录
    rmdir [目录]

    删除空白目录,若包含文件则不能删除
    rm -rf [目录]

    强制删除
    cp [选项] [原文件或目录] [目标目录]

    选项
    -r 复制目录
    -p 连带文件属性复制
    -d 若原文件是链接文件,则复制链接属性
    -a 相当于都复制 同-pdr
    mv [原文件或目录] [目标目录]

    用于改名或剪切
    Linux常见目录作用

    /bin 用于保存命令的目录
    /sbin 用于保存命令的目录(只有root能用)
    /usr/bin 用于保存命令的目录
    /usr/sbin 用于保存命令的目录(只有root能用)
    /boot启动目录,系统启动的文件都放这里,一般不动该目录
    /dev 该目录下存放的都是设备相关的文件,一般也不要去动
    /etc 主要存放配置文件的目录
    /home 是普通用户目录 (普通用户对应目录下可以随便放文件)
    /root 是超级用户目录(root用户对应目录下可以随便放文件)
    /lib 存放linux系统函数库
    /mnt 空目录,用于挂在外接存储设备
    /media 空目录,用于挂在外接存储设备(在原来的linux系统中没有)
    /misc 空目录,用于挂在外接存储设备(在原来的linux系统中没有)
    /proc 是内存过载点;这两个目录的内容直接写在内存,因此不能直接操作
    /sys 是内存过载点;这两个目录的内容直接写在内存,因此不能直接操作
    /temp 临时目录(随便放文件)
    /usr 系统软件资源目录
    /var 系统相关文档内容
    Linux链接命令

    ln -s [原文件] [目标文件]

    生成链接文件
    -s 创建软链接(目录要写绝对路径)
    搜索文件步骤

    用户
    用户
    索引表
    索引表
    文件分区
    文件分区
    1、搜索索引表
    2、根据索引表索引
    3、文件返回
    硬链接可以看成是一个教室的两个门,对应到的目标文件都是同一个;
    不能跨分区;
    不能针对目录;
    修改任意文件,原文件都改变
    软链接相当于一个快捷方式

    特征:
    1、类似Windows快捷方式;
    2、软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据;
    3、lrwxrwxrwx 软链接文件的权限都是rwxrwxrwx
    4、修改任意文件,另一个都改变
    5、删除原文件,软链接不能使用
    6、做软链接,修改原文件一定要写绝对路径,否则会报错;
    软链接读取文件过程:

    用户
    用户
    索引表
    索引表
    文件分区
    文件分区
    1、搜索软链接索引
    2、根据索引找到软链接对应分区文件
    3、真正文件的索引
    4、根据索引找到文件
    5、返回文件
    第4章 文件搜索命令

    Linux中文件搜索命令locate

    locate 文件名

    在后台数据库中按文件名搜索,搜索速度更快;
    搜索的数据库为 /var/lib/mlocate;
    updatedb 该命令更新数据库(正常情况下数据库一天更新一次);
    搜索配置文件:/etc/updatedb.conf
    PRUNE_BIND_MOUNTS="yes" 开启搜索限制
    PRUNEFS= 搜索时,不搜索的文件系统
    PRUNENAMES=搜索时不搜索的文件类型
    PRUNEPATHS= 搜索时不搜索的路径
    Linux中命令搜索命令

    whereis 命令

    搜索命令所在的路径及帮助文档所在位置;
    不能操作linux自带的shell命令,如 cd
    选项:
    -b 只查找可执行文件
    -m 只查找帮助文档
    which 命令

    能查看命令的可执行文件路径以及别名
    不能操作linux自带的shell命令,如 cd
    echo $PATH

    环境变量都用:分隔
    PATH定义系统搜索命令的路径(或绝对路径执行)
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_75/bin:/root/.local/bin:/root/bin
    Linux中 find命令

    find [搜索范围] [搜索条件]

    find / - name install.log 从根目录开始,搜索文件名为install.log的文件;
    尽可能避免大范围搜索,会非常消耗系统资源;
    可以使用通配符:
    * 匹配任意内容
    ? 匹配任意一个字符
    [] 匹配任意一个中括号内的字符
    -iname 不区分大小写
    -user 按照所有者搜索
    -nouser 查找所有没有所有者的文件
    根据时间查找:
    -mtime +10 查找10天之前的修改文件(也可以是创建时间)
    -mtime 10 查找10天前当天的修改文件
    -mtime -10 查找10天内的修改文件
    -atime 天数 文件访问时间(天数同上)
    -ctime 天数 改变文件属性时间(天数同上)
    根据文件大小查找:
    -size +10k 查找大于10k的文件(小写k)
    -size 10M 查找等于10M的文件(大写M)
    -size -10G 查找小于10G的文件(大写G)
    -size 10 不加单位表示搜索10个扇区,一个扇区512B(不推荐使用)
    根据i节点号查询:
    ls -i 可以查看i节点
    -inum 262422 查找i节点是162422的文件
    组合查询:
    -a 逻辑与
    -o 逻辑或
    -exec/-ok 命令 {} ; 对搜索结果进行操作
    例:
    find /etc -size +20k -a -mtime -10 -exec ls -lh {} ;
    查找大于20k并且在10天之内操作过的文件,将结果展示出来;
    Linux中 grep命令

    grep [选项] 字符串 文件名

    在文件当中匹配符合条件的字符串
    选项:
    -i 忽略大小写
    -v 排除制定字符串
    与find的区别:
    find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符能完全匹配;
    grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达是进行匹配;
    第5章 帮助命令

    Linux中 帮助命令

    man 命令

    获取制定命令的帮助,如:man ls
    打开帮助文档之后,快速查找可以先输入 / 再输入要查找的内容;
    查到之后 n表示 往下查找,p或shift + n 往上查找
    man -k passwd 查看所有包含该命令的帮助文档 等同于 apropos passwd 可认为在帮助文档中用字符串搜索
    man的级别
    1. 查看命令的帮助
    2. 查看可悲内核调用的函数的帮助
    3. 查看函数和函数库的帮助
    4. 查看特殊文件的帮助(主要是/dev目录下的文件)
    5. 查看配置文件的帮助
    6. 查看游戏的帮助
    7. 查看其它杂项的帮助
    8. 查看系统管理员可用命令的帮助
    9. 查看内核相关文件的帮助

    例: man passwd -5

    man -f 命令 等同于 whatis 命令

    whatis 能查看命令拥有哪个级别的帮助
    Linux中 其他帮助命令

    命令 --help

    获取选项的帮助
    help 命令

    help 专门获取内部命令,若help ls 将报错,因为ls非内部命令
    info 命令

    回车 进入子帮助页面(带有*号标记)
    u 进入上层页面
    n 进入下一个帮助小节
    p 进入上一个帮助小节
    q 退出
    第6章 压缩命令

    Linux 中的压缩命令

    常用的压缩格式

    .zip .gz .bz2
    .tar.gz .tar.bz2 实际情况下更加常用
    .zip格式压缩

    zip 压缩文件名 源文件 压缩文件
    zip -r 压缩文件名 源目录 压缩目录
    .zip格式解压

    unzip 压缩文件
    .gz格式压缩

    gzip 源文件 压缩为.gz格式的压缩文件,源文件会消失
    gzip -c 源文件 > 压缩文件 压缩为.gz格式,源文件保留
    gzip -r 目录 压缩目录小所有的子文件,但是不能压缩目录
    .gz格式解压

    gzip -d 压缩文件
    gunzip 压缩文件
    .bz2格式压缩

    bzip2 源文件 压缩为.bz2格式,不保留源文件
    bzip2 -k 源文件 压缩之后保留源文件
    注意:bzip2命令不能压缩目录
    .bz2格式解压

    bzip2 -d 压缩文件 -k 选项可保留源文件
    bunzip2 压缩文件 -k 选项可保留源文件
    打包命令tar
    tar -cvf 打包文件名 源文件

    选项:
    -c 打包
    -v 显示过程
    -f 指定打包后的文件名
    例:
    tar -cvf longzls.tar longzls
    解打包命令tar
    tar -xvf 打包文件名

    选项:
    -x 解打包
    例:
    tar -xvf longzls.tar
    .tar.gz压缩格式

    .tar.gz格式是先打包为.tar格式,再压缩为.gz格式
    压缩:
    tar -zcvf 压缩包名.tar.gz 源文件
    -zc 压缩为.tar.gz格式
    解压:
    tar -zxvf 压缩包名.tar.gz
    -zx 解压缩.tar.gz格式
    .tar.bz2压缩格式

    压缩:
    tar -jcvf 压缩包名.tar.bz2 源文件
    -jc 压缩为.tar.bz2格式
    解压:
    tar -jxvf 压缩包名.tar.bz2 源文件
    -jx 解压.tar.bz2格式
    注意:

    解压到指定目录需要加上 -C 指定目录
    多个文件压缩到一起只需要把用空格隔开多个文件即可
    -t 选项可以只查看压缩文件而不打开
    第7章 关机与重启命令

    Linux中关机与重启命令

    shutdown [选项] 时间 &

    &表示后台执行
    选项:
    -c 取消
    -h 关机
    -r 重启
    例:
    shutdown -r 05:30 &5:30分重启
    其他关机命令(不常用也不建议用)

    halt
    poweroff
    init 0
    其他重启命令

    reboot 相对较安全
    init 6
    系统运行级别


    0 关机
    1 单用户
    2 不完全多用户,不含NFS服务
    3 完全多用户
    4 未分配
    5 图形界面
    6 重启
    cat /etc/inittab 查看运行级别配置文件
    id:3:initdefault 修改系统默认运行级别
    runlevel 查询系统运行级别
    logout 退出登录命令
    第8章 其他常用命令

    Linux中挂载命令

    mount 查询系统同已经挂载设备

    mount -a 依据配置文件/etc/fstab的内容自动挂载
    注:因为光盘或U盘不能保证每次都能开机挂载,因此不建议自动挂载,否则可能导致系统由于找不到挂载目录而启动崩溃
    mount [-t 文件系统] [-o特殊选项] 设备文件名 挂载点
    选项:
    -t 文件系统:假如文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660(光盘的文件系统)等文件系统
    -o 特殊选项:可以指定挂载的额外选线
    参数 说明
    atime/noatime 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间,默认为更新
    async/sync 异步/同步,默认为异步
    auto/noauto 自动/手动,mount -a命令执行时,是否会自动安装/etc/fstab文件内容挂载,默认为自动
    defaults 定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项
    exec/noexec 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exec允许
    remount 重新挂载已经挂载的文件系统,一般用于指定修改特殊权限
    rw/ro 读写/只读,文件系统挂载时,是否具有读写权限,默认是rw
    suid/nosuid 具有/不具有SUID权限,设定文件系统是否具有SUID和SGID的权限,默认是具有
    user/nouser 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许,只有root可以挂载分区
    usrquota 写入代表文件系统支持用户磁盘配额,默认不支持
    grpquota 写入代表文件系统支持组磁盘配额,默认不支持
    例:
    mount -o remount,noexec /home重新挂载/boot分区,并使用noexec权限,会导致/home目录下无法执行可执行文件
    mount -o remount,exec /home 改回来
    例:
    /dev/sda5 on / type ext4 (rw)
    /dev 保存所有硬件设备的目录
    sd SATA接口或scars接口
    a 表示第一块硬盘
    5表示第1逻辑分区
    /根目录
    ext4文件系统
    rw权限
    挂载光盘

    mkdir /mnt/cdrom/建立挂载点
    mount -t iso9660 /dev/cdrom /mnt/cdrom 挂载光盘
    mount /dev/sr0 /mnt/cdrom sr0是Linux指定的CD目录
    卸载命令

    unmount 设备文件名或挂载点
    例:
    umount /mnt/cdrom
    挂载U盘

    fdisk -l 查看U盘设备文件名
    mount -t vfat /dev/sdb1 /mnt/usb/ Linux默认不支持NTFS文件系统,此处的vfat指的是Windows中的fat32
    /proc
    /sys

    都是内存目录,系统会自动挂载,使用者不要去操作它
    我们一般能用到的是 根分区/,/boot, /home
    Linux中用户登录查看命令

    查看登录用户信息
    w 用户名

    命令输出:
    USER :登录的用户名
    TTY :登录终端
    FROM :从哪个IP地址登录
    LOGIN@ : 登录时间
    IDLE :用户闲置时间
    `JCPU: 指的是和该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间;
    PCPU :是指当前进程所占用的时间
    WHAT : 当前正在运行的命令
    who 用户名

    命令输出 :
    用户名
    登录终端
    登录时间(登录来源IP地址)
    查询当前登录和过去登录的用户信息
    last

    last 命令默认是读取/var/log/wtmp文件数据
    命令输出:
    用户名
    登录终端
    登录IP
    登录时间
    退出时间(在线时间)
    查看所有用户的最后一次登录时间
    lastlog

    lastlog 命令默认是读取/var/log/lastlog文件内容
    命令输出:
    用户名
    登录终端
    登录IP
    最后一次登录时间
    第9章 Shell基础

    shell概述

    什么是shell

    shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至是编写一些程序;
    shell还是一个功能强大的编程语言,易编写,易调试,灵活性较强。shell是解释执行的脚本语言,在shell中可以直接调用Linux系统命令.
    shell分类

    Bourne:sh、ksh、Bash、psh、zsh
    C:csh、tcsh
    两种语法彼此不兼容
    echo $SHELL 查看当前shell
    当前linux中的标准shell是bash
    vi /etc/shells

    查看支持的shell类型
    脚本执行方式

    echo输出命令
    echo [选项] [输出内容]

    选项:
    -e 支持反斜线控制的字符转换
    控制字符 作 用
    a 输出警告音
     退格键,也就是向左删除键
    换行符
    回车键
    制表符,也就是Tab键
    v 垂直制表符
    nnn 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数
    xhh 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数
    常规用法 : echo -e "x68"
    输出颜色
    echo -e "e[1;31m 家人就要加凤姐 e[0m"

    30m=黑色,31m=红色,32m=绿色,33m=黄色
    34m=蓝色,35m=洋红,36m=青色,37m=白色
    第一个脚本
    vi helloworld.sh

    #!/bin/bash
    echo -e "e[1;34m hello world! e[0m"
    1
    2
    脚本执行

    赋予执行权限,直接运行
    chmod 755 helloworld.sh
    ./helloworld.sh
    通过Bash调用执行脚本
    bash helloworld.sh
    别名与快捷键

    别名永久生效与删除别名
    vi ~/.bashrc写入环境变量配置文件
    source 环境变量文件 环境变量直接生效

    alias 查看系统中所有的命令别名
    alias 别名= '原命令' 设定命令别名
    unalias 别名 删除别名
    命令生效顺序
    1. 执行用绝对路径或相对路径执行的命令
    2. 执行别名
    3. 执行Bash的内部命令
    4. 执行按照$PATH环境变量定义的目录查找顺序找到第一个命令

    常用快捷键

    ctrl+c 强制终止当前命令
    ctrl+l 清屏 同命令clear
    ctrl+a 光标移动到命令行首
    ctrl+e 光标移动到命令行尾
    ctrl+u 从光标所在位置删除到首行
    ctrl+z 把命令放入后台
    ctrl+r 在历史命令中搜索 上下滚动
    历史命令

    历史命令
    history [选项] [历史命令保存文件]

    选项:
    -c 清空历史命令
    -w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
    /etc/profile HISTSIZE属性可设置保存历史命令条数,默认1000条
    历史命令的调用

    ↑↓ 调用以前的历史命令
    !n 重复执行第n条历史命令
    !! 重复执行上一条命令
    !字串 重复执行最后一条以该字串开头的命令
    输出重定向

    标准输入输出

    设备 设备文件名 文件描述符 类型
    键盘 /dev/stdin 0 标准输入
    显示器 /dev/sdtout 1 标准输出
    显示器 /dev/sdterr 2 标准错误输出
    输出重定向

    类型 符号 作用
    标准输出重定向 命令>文件 以覆盖的方式,把命令的正确输出到制定的文件或设备当中
    标准输出重定向 命令>>文件 以追加的方式,把命令的正确输出到制定的文件或设备当中
    标准错误输出重定向 命令2>文件 以覆盖的方式,把命令的错误输出到制定的文件或设备当中
    标准错误输出重定向 命令2>>文件 以追加的方式,把命令的错误输出到制定的文件或设备当中
    正确输出和错误输出同时保存

    符号 作用
    命令>文件 2>&1 以覆盖的方式,把正确输出和错误输出都保存到一个文件当中
    命令>>文件 2>&1 以追加的方式,把正确输出和错误输出都保存到一个文件当中
    命令 &> 文件 以覆盖的方式,把正确输出和错误输出都保存在同一个文件当中
    命令 &>> 文件 以追加的方式,把正确输出和错误输出都保存在同一个文件当中
    命令>>文件1 2>>文件2 把正确的输出追加到文件1中,吧错误的输出追加到文件2中
    ls &>/dev/null把输出结果直接丢了
    输入重定向
    wc 直接输入字符 ctrl + d 停止输入
    wc [选项][文件名]

    -c 统计字节数
    -w 共计单词书
    -l 统计行数
    管道符

    多命令顺序执行

    多命令执行符 格式 作用
    ; 命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑联系
    && 命令1&&命令2 逻辑与。当命令1正确执行,则命令2才会执行;当命令1执行不正确,则命令2不会执行
    || 命令1||命令2 逻辑或。当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行
    管道符
    命令1 | 命令2

    命令1的整除输出作为命令2的操作对象
    more 分页显示
    ls -l /etc | more
    查询结果翻页:
    空格表示向下翻一页
    回车表示向下滚动一行
    /字符串表示查询字符串
    q离开more界面
    通配符

    通配符 作用
    ? 匹配一个任意字符
    * 匹配0个或人一多个任意字符,也就是可以匹配任何内容
    [] 匹配括号中任意一个字符。例如:[abc]代表一定匹配a,b,c中的一个字符
    [-] 匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母。
    [^] 逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9] 代表匹配一个不是数字的字符
    Bash中其他特殊符号

    符号 作用
    ” 单引号。在单引号中所有的特殊符号,如“$”和 “`”(反引号)没有特殊含义
    “” 双引号。在双引号中特殊符号都没有特殊含义,但是 “$”、“`”和“”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义
    ` 反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。
    $() 和反引号作用一样,用来引用系统命令。
    # 在Shell脚本中,#开头的行代表注释
    $ 用户调用变量的值,如果需要调用变量name的值时,需要用$named 的方式得到变量的值。
    转义符,跟在之后的特殊符号将失去特殊含义,变为普通字符。如$将输出“$”符号,而不当做是变量引用。

  • 相关阅读:
    小程序开发学习记录(一)
    解决移动端touch事件与click冲突的问题
    解决node.js使用fs读取文件出错
    防抖和节流
    promise
    ES6新的特性有哪些?
    css盒模型
    CSS3有哪些新特性?
    ES6新增的数据类型Map和Set。
    js求两个数组的交集|并集|差集|去重
  • 原文地址:https://www.cnblogs.com/shawhe/p/linux.html
Copyright © 2020-2023  润新知