zoukankan      html  css  js  c++  java
  • linux 命令笔记

    ---------常用命令--------------

    echo 打印

    ————日期
    [root@zsf ~]# date 显示日期
    2019年 07月 08日 星期一 18:03:48 CST
    [root@zsf ~]# date "+%Y-%m-%d %H:%M:%S %j" 格式化显示
    2019-07-08 18:05:15 189(一年中多少天)
    [root@zsf ~]# date -s "20190708 10:10:00" 修改日期
    2019年 07月 08日 星期一 10:10:00 CST

    reboot 重启

    poweroff 关闭系统

    wget
    -b 后台下载模式
    -p 下载到指定目录 (下载页面所有资源)
    -t 最大尝试次数
    -c 短点续传
    -r 递归下载

    ps 查看系统进程状态
    -a 显示所有进程(包括其他用户进程)
    -u 用户及其他详细信息
    -x 显示没有控制终端的进程

    top 显示系统负载信息

    pidof 查询进程pid号值
    [root@zsf ~]# pidof sshd
    7230 6408

    kill 终止某个pid进程

    killall 终止某个指定名称的服务所对应的全部进程

    ifconfig 网卡配置 ifcfg-eth0 文件在/etc/sysconfig/network-scripts/下

    uname 查看系统内核与系统版本
    系统内核 uname-a
    系统版本 [root@zsf network-scripts]# cat /etc/centos-release
    CentOS release 6.8 (Final)

    uptime 查看系统负载
    [root@zsf network-scripts]# uptime
    10:48:27 up 1:43, 2 users, load average: 0.00, 0.01, 0.05

    free -h
    系统内存的使用量信息 以gb显示

    who 当前登入主机的终端信息

    last 查看所有系统登陆记录

    history 查看历史命令

    sosreport 收集系统配置和架构信息 输出诊断文档

    ---------------目录切换-------------

    pwd 显示当前用户所出的工作目录

    cd

    ls

    ll

    ---------------文本编辑-----------------

    cat 查看纯文本文件(内容较少的)

    more 查看纯文本文件(内容较多的)

    head -n 20 查看文本的前20行

    tail -n 20 查看文件的后20行
    实时查看后多少行 tail -f

    tr 【原始字符】【目标字符】 替换
    cat 文件 | tr ‘[a-z]’‘[A-Z]’ 将文件中的小写替换为大写
    -c 用前字符串的补集替换此字符串字符集,要求字符集为ASCII
    -d 删除前字符串的所有字符
    -s 删除所有重复出现的字符序列,保留一个

    wc 统计指定文本行数
    -l 只显示行数
    -w 只显示单词数
    -c 只显示字节数
    /etc/passwd 系统用户


    stat 文件名 查看文件的存储信息和时间信息

    cut 按列提取文本字符
    cut -

    diff 比较多个文本之间文件的差异


    ---------------文件管理-----------------
    touch 创建空白文件或设置文件的时间
    -a 读取时间 atime
    -m 修改时间 mtime
    -d 同时修改 atime与mtime

    mkdir 创建文件夹 -p 创建多层文件夹

    cp 复制文件或目录
    -p 保留原始文件的属性
    -d 若对象为‘连接文件’,则保留该‘连接文件’属性
    -r 递归持续复制(用于目录)
    -i 若目标文件存在则询问是否覆盖
    -a 相当于-pdr

    mv 剪切文件或文件重命名
    mv 源文件 【目标路径 目标文件名】

    rm 删除文件或目录 -f 强制删除
    -r 删除目录

    dd 按照指定大小和个数的数据块来复制或转换文件
    if= 输入文件名称
    of= 输出文件名称
    bs= 设置每个块的大小
    count= 设置要复制块的个数
    [root@linuxprobe
    dd if=/dev/cdrom of=RHEL server 7.0 x86 64 LinuxProbe.Com.iso
    7311360+0
    records in
    7311360+0
    records out
    3743416320
    bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s

    file 查看文件类型

    ---------------打包与压缩-----------------

    tar 对文件进行打包或压缩
    -c 创建压缩文件
    -x 解压
    -t 查看压缩包里有哪些文件
    -z 用Gzip压缩或解压
    -j 用bzip2压缩或解压
    -v 显示压缩或解压
    -f 目标文件名
    -p 保留原始的权限和属性
    -p 使用绝对路径来压缩
    -c 指定解压到那个目录

    创建一般用 tar -czvf 压缩包名.tar.gz 要压缩的目录
    解压 tar -xzvf 压缩包名.tar.gz


    grep 用于在文本中执行关键词搜索,屏显示匹配结果
    -b 将可执行文件(binary)当作文本文件搜索
    -c 显示找到的行数
    -i 忽略大小写
    -n 显示行号
    -v 反向选择 仅列出没有关键词的行

    cat 文件 | grep 关键词

    [root@zsf home]# cat 表空间.txt |grep -c 表
    20


    find 按照指定条件来查找文件,比如(文件名、大小、修改时间、权限等)
    -name 匹配名称
    -perm 匹配权限
    -user 匹配所有者
    -group 匹配所有组
    -mtime -n +n 匹配修改时间 (-n 指n天以内,+n 指n天以前)
    -atime -n +n 匹配访问时间
    -ctime -n +n 匹配修改文件权限的时间
    -nouser 匹配无所有者的文件
    -nogroup 匹配无所有组的文件
    -newer f1 !f2 匹配比f1新 但比f2 旧的文件
    --type b/d/c/p/l/f 匹配文件类型 (块设备/目录/字符设备/管道/链接文件/文本文件)
    -size 文件大小
    -prune 忽略某个目录
    -exec ······{}; 后面可跟用于进一步处理搜索结果的命令

    find / -user root -exec cp -a {} /home/ ;
    意思是 在根目录西安查找有root所有者的所有文件 执行复制 所有文件到 /home下


    -----------------管道符、重定向、环境变量-------------------

    标准输入重定向(stdin) 默认从键盘输入,也可从其他文件或命令输入

    标准输出重定向(stdout) 默认输出到屏幕

    错误输出重定向(stderr) 默认输出到屏幕

    [root@zsf home]# man ls > read.txt 将查出的信息写入 read中
    [root@zsf home]# man ll >read.txt 在之前的基础上追加

    [root@zsf home]# echo > read.txt 清空read
    [root@zsf home]# wc -l < read.txt 转入wc输出文本行数

    --------------管道符-------------
    | 连接多个命令


    ---------------通配符--------------
    ? 匹配一个或多个
    * 匹配任意个
    [ ] 在之中选一个
    ------------转义---------------

    反斜杠():使反斜杠后面的一个变量变为单纯的字符串。

    单引号(''):转义其中所有的变量为单纯的字符串。

    双引号(""):保留其中的变量属性,不进行转义处理。

    反引号(``):把其中的命令执行后返回结果。

    [root@zsf home]# p=5
    [root@zsf home]# echo price is $$p 不用转义符
    price is 32265p

    [root@zsf home]# echo price is $$p 用转义符
    price is $5


    [root@zsf home]# echo `uname -a`
    Linux zsf 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux


    --------重要的10个环境变量---------
    HOME 主目录
    SHELL 用户在使用的shell解释器名称
    HISTSIZE 输出的历史命令记录条数
    HISTFILESIZE 保存的历史命令记录条数
    MAIL 邮件保存路径
    LANG 系统语言、语系名称
    RANDOM 生成一个随机数字
    PSL bash解释器的提示符
    PATH 定义解释器搜索用户执行命令的路径
    EDITOR 用户默认的文本编辑器


    自定义变量 简化较深层的路径(这种变量不具有全局性,作用范围有限,不能被其他用户使用)但如果有需要,可以用export提升为全局变量
    [root@zsf ~]# mkdir /home/kkk
    [root@zsf ~]# WORK=/home/kkk/
    [root@zsf ~]# echo $WORK
    [root@zsf ~]# cd $WORK

    搜索所执行的命令的路径
    [root@zsf home]# echo $PATH
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    ----------vim文本编辑器-------------------
    命令模式:控制光标移动,可对文本进行复制、粘贴、删除、查找等公国

    输入模式:正常的文本录入

    末行模式:保存或退出文档,以及设置编辑环境

    ------------常用命令--------------

    dd 剪切/删除光标所在整行
    5dd 剪切/删除光标处考试的5行
    yy 复制光标所在整行
    5yy 复制从光标处开始的5行
    n 显示搜索命令定位到的下一个字符串
    N 显示搜索命令定位到的上一个字符串
    u 撤销上一步操作
    p 将之前删除(dd)或复制(yy)的数据粘贴到光标后面


    ----------------末行模式
    :w 保存
    :q 退出
    :q!强制退出
    :wq! 强制保存退出
    :set nu 显示行号
    :set nonu 不显示行号
    :命令 执行该命令
    :整数 跳转到该行
    :s/one/two 将当前光标所在行的第一个one 替换成two
    :s/one/two/g 将当前光标所在行的所有one 替换成two
    :%s/one/two/g 将全文中的所有one 替换成two
    ?字符串 在文本从下至上搜索该字符串
    /字符串 在文本中从上至下搜索该字符串


    修改主机名

    vim /etc/sysconfig/network

    修改网卡信息

    [root@zsf etc]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    HWADDR=00:0C:29:5A:47:AC
    TYPE=Ethernet
    UUID=12d5cf31-6820-4e86-8d52-35da3ac0a373
    ONBOOT=yes --开机自启
    NM_CONTROLLED=yes
    BOOTPROTO=dhcp


    配置yum软件仓库

    yum配置文件
    [root@zsf etc]# cd /etc/yum.repos.d/
    [root@zsf yum.repos.d]# ll
    总用量 24
    -rw-r--r--. 1 root root 1991 5月 19 2016 CentOS-Base.repo
    -rw-r--r--. 1 root root 647 5月 19 2016 CentOS-Debuginfo.repo
    -rw-r--r--. 1 root root 289 5月 19 2016 CentOS-fasttrack.repo
    -rw-r--r--. 1 root root 630 5月 19 2016 CentOS-Media.repo
    -rw-r--r--. 1 root root 6259 5月 19 2016 CentOS-Vault.repo

    --未完


    ------------------------------编写shell脚本--------------------

    赋值

    name=20
    name=kewen

    调用值
    $name

    判断
    if [ $name -eq kewen ]
    then
    echo "一致"
    fi

    if [ $name -eq kewen ] ;then
    echo "一致"
    elif
    echo "不一致"
    fi

    条件符号
    -eq 等于
    -ne 不等于
    -gt 大于
    -lt 小于
    -ge 大于等于
    -le 小于等于

    ----------循环----------
    while true
    do
    ...

    exit 0 -----退出
    done

    for 变量 in `cat 列表/内容.txt` --反引号也可以变成 $(cat ...)
    do
    命令 调用变量
    useradd $变量

    done


    case $变量 in
    [...]) -------奇怪的括号
    echo ...
    ;; ---------奇怪的语法
    [...])
    echo ...
    ;;
    *)
    echo ...
    esac

    ---------------------------系统时间校准------------------------
    1.date {查看目前本地的时间}

    2.hwclock --show {查看硬件的时间}

    3.如果硬件时间和系统时间不同,那就对硬件的时间进行修改

    4.hwclock --set --date '2019-12-15 15:15:15' {设置硬件时间为14年12月15日15点15分15秒}
    5.hwclock --hctosys {设置系统时间和硬件时间同步}
    6.clock -w {保存时钟}

    --------------计划任务服务程序-----------

    echo"命令" | at 时间

    crond设置任务
    分 0-59 一定要有
    时 0-23
    日 1-31 如果没有可以用* 或者用 - 表示一个时间段
    月 1-12 如果没有可以用*
    星期 0-7(0和7都是星期日) 多天可以用,隔开
    命令 执行的命令或程序脚本


    星期 和 日 不能同时有值 否则冲突
    时间间隔 可以用 / ---- */2 表示每隔两分钟执行一次

    --------------身份用户 文件权限

    useradd 用户名 创建用户
    -d 指定用户家目录
    -e 账户到期时间 格式为 YYYY-MM-DD
    -u 指定改用户的默认UID
    -g 指定一个初始的用户基本组(必须已存在)
    -G 指定一个或多个基本用户组
    -N 不创建与用户同名的基本用户组
    -s 指定该用户的默认Shell解释器

    userdel 用户名 删除用户

    groupadd 群组名 能够对一类用户统一安排权限

    usermod 用户名 修改用户的属性
    -c 填写用户账户备注信息
    -d -m 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转义过去
    -e 账户的到期时间,YYYY-MM-DD
    -g 变更所属用户组
    -G 变更扩展用户组
    -L 锁定用户禁止其登陆系统
    -U 解锁用户
    -s 变更默认终端
    -u 修改用户UID

    passwd 用户名 然后修改密码 root用户修改其他用户密码不需要验证旧密码

    -l 锁定用户
    -u 解锁
    --stdin 允许通过标准输入修改用户密码 例: echo "newpassword" | passwd --stdin username
    -d 使该用户可用空密码登陆系统
    -e 强制用户在下次登陆时修改密码
    -s 显示用户的摩玛是否被锁定,以及密码所采用的加密算法名称


    ---------------文件权属

    -:普通文件。
    d:目录文件。
    l:链接文件。
    b:块设备文件。
    c:字符设备文件。
    p:管道文件。


    chmod 修改权限
    chown 修改所有者所有组

    -------------------------文件隐藏属性
    chattr 文件名 设置文件的隐藏权限
    +i 无法对文件进行修改 如果时目录 仅能修改其中子文件内容而布恩那个新建或删除文件
    +a 仅允许补充内容,无法覆盖/删除内容
    +S 文件内容在变更后立即同步到硬盘
    +s 彻底从硬盘删除,不可恢复(用0填充文件所在硬盘区域)
    +A 不子啊修改这个文件或目录的最后访问时间
    +b 不在修改文件或目录的存取时间
    +D 检查压缩文件中的错误
    +d 使用dump命令备份时忽略本文件/目录
    +c 默认将文件或目录进行压缩
    +u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
    +t 让文件系统支持尾部合并(tail-merging)
    +X 可以直接访问压缩文件中的内容

    lsattr 文件 显示文件的隐藏权限

    显示完是什么属性就可以通过 - 去掉该属性


    -------------------文件访问控制

    setfacl 管理ACL规则,控制读写执行权限
    -R 递归参数
    -m 针对普通文件
    -b 删除ACL

    getfacl 显示文件上设置的ACL信息,查看


    -----------------su 和sudo

    visudo 可以更改配置文件,谁可以使用 允许使用的主机=(以谁的身份) 可执行的命令列表
    在98行
    ##
    ## Allow root to run any commands anywhere
    root ALL=(ALL) ALL
    zsf ALL=(ALL) ALL ---但是这种方式不能在生产环境中,
    zsf ALL=(ALL) 命令的绝对路径 --需要有限的给予权限,用whereis确定命令路径,然后给权限

    sudo 添加NOPASSWD参数,不需要输入密码
    root ALL=(ALL) ALL
    zsf ALL=NOPASSWD: 绝对路径

    使用时某个root权限才能看的文件命令时 前面加个sudo 就好

    ------------------------存储结构与磁盘划分


    mount 挂载文件系统
    -a 挂载所有在/etc/fstab中定义的文件系统
    -t 指定文件系统的类型

    umount 卸载

    umount /dev/sdb2

    --------------------------------------挂载和永久生效---------------
    fdisk 【硬盘名】 管理磁盘分区
    -m 查看全部可用的参数
    -n 添加新的分区
    -d 删除某个分区信息
    -l 列出某个分区的类型
    -t 改变某个分区的类型
    -p 查看分区信息
    -w 保存并退出
    -q 不保存直接退出

    创建完毕之后格式化 mkfs tab键查看类型并选择

    [root@zsf ~]# mkfs.ext4 /dev/sdb1


    [root@zsf ~]# mkdir /newFS ---创建一个新的文件夹
    [root@zsf ~]# mount /dev/sdb1 /newFS/ ---挂载到这个文件夹中
    [root@zsf ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/vg_zsf-lv_root
    18G 2.2G 15G 14% /
    tmpfs 931M 0 931M 0% /dev/shm
    /dev/sda1 477M 40M 412M 9% /boot
    /dev/sdb1 9.8G 23M 9.2G 1% /newFS

    让挂载永久生效 vim /etc/fstab
    /dev/sdb1 /newFS ext4 defaults 0 0


    ---------------------------------------

    du 查看文件数据占用量


    -----------添加交换分区----------------------

    前面和扩展硬盘一样

    格式化命令则用的时 mkswap 路径

    配置文件里面加上格式 swap swap 其他一样


    ----------------------磁盘容量配额-----------------

    quota 命令 可以限制某用户的硬盘使用额度
    在 /etc/fstab 中增加一个uquota


    xfs_quota 配额 文件系统
    xfs quota x c 'limit bsof t=3m bhard=6m isoft=3 ihard=6 tom' /boot

    edquota 用户
    edquota u tom

    ----------------------软硬方式链接--------------------

    硬链接( hard link ):指向原始文件的inode的指针,每增加一个硬链接,则inode 增加1

    软链接 (符号链接 sysbolic link):仅仅包含所链接文件的路径名,可以链接目录文件,但如果原始文件被删除,则无效

    ln 创建链接文件

    -s 创建符号链接
    -f 强制创建文件或目录的链接
    -i 覆盖前先询问
    -v 显示创建链接的过程


    创建软连接
    ln 原始文件路径名 现在的路径名

    --------------------------------raid 与 lvm 磁盘阵列技术------------------------

    RAID 独立冗余磁盘阵列


    RAID 0

    将多块物理硬盘通过硬件或软件方式串联在一起,组成一个大的卷组,将数据一次写入到各个物理硬盘中,提升数倍的读写速度,如果任意一块硬盘故障就会导致整个系统收到破坏


    RAID 1

    在RAID 0的基础上,将数据同时存储在每块硬盘上,故障时,自动以热交换的方式恢复正常使用


    RAID 5

    RAID5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。
    RAID 5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到
    除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命
    缺陷;

    RAID这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性
    与存储成本问题。


    RAID 10

    RAID 10技术需要至少 4块硬盘来组建,其中先分别两两制作成 RAID 1磁盘阵列,以保
    证数据的安全性;然后再对两个 RAID 1磁盘阵列实施 RAID 0技术,进一步提高硬盘设
    备的读写速度。这样从理论上来讲,只要坏的不是同一组中的所有硬盘,那么最多可 以损
    坏 50%的硬盘设备而不丢失数据。


    ---------------部署磁盘阵列

    在虚拟机系统关闭后增加四块硬盘 ,然后并挂载、格式化、配置永久生效

    mdadm 管理Linux系统中的软件RAID阵列卡
    -a 检测设备名称
    -n 指定设备数量
    -l 指定RAID级别
    -C 创建
    -v 显示过程
    -f 模拟设备损坏
    -r 移除设备
    -Q 查看摘要信息
    -D 查看详细信息
    -S 停止RAID磁盘阵列
    -------------------------------------lvm部署

    7-2 常用的 LVM部署命令
    /
    扫描
    pvscan
    vgscan
    lvscan
    建立
    pvcreate
    vgcreate
    lvcreate
    显示
    pvdisplay
    vgdisplay
    lvdisplay
    删除
    pvremove
    vgremove
    lvremove
    扩展
    vgextend
    lvextend
    缩小
    vgreduce
    lvreduce


    --------------------iptables 与 firewalld防火墙


    --
    get default zone 查询默认的区域名称
    --
    set default zone=< 区域名称 设置默认的区域,使其永久生效
    --
    get zones 显示可用的区域
    --
    get services 显示预先定义的服务
    --
    get active zones 显示当前正在使用的区域与网卡名称
    --
    add source= 将源自此
    IP或子网的流量导向指定的区域
    --
    remove source= 不再将源自此
    IP或子网的流量导向某个指定区域
    --
    add interface=< 网卡名称 将源自该网卡的所有流量都导向某个指定区域
    --
    change interface=< 网卡名称 将某个网卡与区域进行关联
    --
    list all 显示当前区域的网卡配置参数、资源、端口以及服务等信息
    --
    list all zones 显示所有区域的网卡配置参数、资源、端口以及服务等信息
    --
    add service=< 服务名 设置默认区域允许该服务的流量
    --
    add port=< 端口号 协议 设置默认区域允许该端口的流量
    --
    remove service=< 服务名 设置默认区域不再允许该服务的流量
    --
    remove port=< 端口号 协议 设置默认区域不再允许该端口的流量
    --
    reload 让
    “永久生效”的配置规则立即生效,并覆盖当前的配置规则
    --
    panic on 开启应急状况模式
    --
    panic off 关闭应急状况模式

  • 相关阅读:
    什么是接口测试?
    接口测试浅谈
    软件测试之数据库面试题
    软件测试的流程是什么?
    多用户博客网站开发实战之创建数据库
    利用python脚本统计和删除redis key
    ULR1 B. 【ULR #1】光伏元件
    法拉第未来任命新CFO!贾跃亭激动发声
    人民需要特斯拉,但条件不允许
    什么叫IOCSABS呢
  • 原文地址:https://www.cnblogs.com/zsf-note/p/11184844.html
Copyright © 2011-2022 走看看