• Linux常用命令


    P1.基本操作

    C1.开关机

    S1.关机

    • shutdown
      • shutdown -h now
      • shutdown -h 1 => 一分钟后关机
      • shutdown -r now => 立即重启
    • halt

    S2.重启

    • reboot

    C2.同步数据

    • syn
      • 把内存的数据同步到磁盘
      • 在关机前应该习惯性同步一下

    C3.用户级别

    • init [0/1/2/3/5/6] => 切换

    C4.帮助指令

    S1.获得帮助信息

    • man 指令

    S2.获得shell内置命令的帮助信息

    • help 指令

    C5.查看历史

    • history

      • 显示所有已经执行过的历史指令
    • history 10

      • 显示最近执行过的10条指令
    • !160

      • 执行历史编号为160的指令

    P2.目录操作

    C1.切换目录

    • cd 路径
      • change directory
      • 绝对路径 or 相对路径
      • cd ~ => 回到家目录
      • cd .. => 回到上一级目录

    C2.创建

    S1.创建目录

    • mkdir [选项] 要创建的目录
      • [选项]
        • -p => 创建多级目录
      • make directory

    S2.创建空文件

    • touch 文件名1 [文件名2]

    C3.拷贝

    • cp [选项] 源文件 目标文件

      • [选项]

        • -r => 递归复制整个文件夹
      • [root@hadoop1 home]# ls -l
        总用量 16
        drwxr-xr-x. 2 root         root     4096 11月 26 15:16 wudang
        drwx------. 4 zhangsanfeng      502 4096 11月 26 09:35 xh
        drwx------. 4 xiaoming     xiaoming 4096 11月 26 09:41 xm
        drwx------. 4 zhangsanfeng wudang   4096 11月 26 10:20 zhangsanfeng
        -rw-r--r--. 1 root         root        0 11月 26 15:17 zhangwuji.txt
        [root@hadoop1 home]# cp zhangwuji.txt wudang/zhangwuji.txt
        
      • \cp 强制覆盖不提示

    C4.删除

    S1.删除文件

    • rm [选项] 要删除的文件或目录
      • [选项]
        • -rf => 递归删除整个文件夹
        • -f => 强制删除不提示

    S2.删除目录

    • rmdir 目录
      • 只能删除空目录
    • rm -rf 目录
      • 删除非空目录

    C5.查看

    S1.查看当前所在目录的绝对路径

    • pwd

    S2.查看当前所在目录的文件和目录

    • ls [选项] [目录或文件]
      • [选项]:
        • -a:显示当前目录所有的文件和目录,包括隐藏的
        • -l:以列表的形式显示信息
        • -al

    S3.查看文件内容(不能修改)

    • cat [选项] 要查看的文件 [| more]
      • [选项]
        • -n => 显示行号
      • cat只能浏览文件,而不能修改文件,为了浏览方便一般会带上
      • 分页显示:
        • cat -n zhangsanfeng.txt | more
        • 下一页 => 空格

    S4.全屏按页显示文本文件的内容

    一、把整个文件加载后显示

    • more 要查看的文件
      • 操作:
        • 空格键 => 下一页
        • Enter => 向下一行
        • q => 离开more
        • Ctrl+F => 向下滚动一屏
        • Ctrl+B => 返回上一屏
        • = => 输出当前行号
        • :f => 输出文件名和当前行号

    二、根据显示需要加载内容

    • less 要查看的文件
      • 对于现实大型文件具有较高的效率
      • 操作:
        • 空格键 => 向下翻动一页
        • Enter键 => 一行
        • [pagedown] => 向下翻动一页
        • [pageup] => 向上翻动一页
        • /字串 => 向下搜寻[字串]
          • n => 向下查找
          • N => 向上查找
        • ?字串 =? 向上搜寻[字串]
          • n => 向下查找
          • N => 向上查找
        • q => 离开more

    S2.查看开头

    • head [选项] 文件名
      • 查看开头10行内容
      • [选项]
        • -n5
        • -n 5 => 查看开头5行内容

    S3.查看结尾

    • tail [选项] 文件名
      • 查看结尾10行内容
      • [选项]
        • -n5
        • -n 5 => 查看结尾5行内容
        • -f => 实时监控文件的更新内容
          • ctrl+C即可退出tail -f

    C6.移动文件与目录或重命名

    S1.重命名

    • mv 旧文件的名称 新文件的名称
      • mv zhangwuji.txt zhangsanfeng.txt

    S2.移动

    • mv 文件的名称 /temp/movefile/targetFolder
      • mv chengyouliang.txt pantu/

    C7.输出重定向和追加

    S1.输出重定向(覆盖写)

    • 指令 > 文件名
      • 将原来文件的内容覆盖
      • 把指令的查询结果覆盖写到文件中
      • 如果这个文件不存在,就创建这个文件
      • 如:
        • ls -l > log.txt
        • cal zhangsanfeng.txt > log.txt

    S2.追加

    • 指令 >> 文件名
      • 将指令的查询内容追加到原来文件内容后
      • 如:ls -l >> log.txt

    C8.软链接

    S1.创建软链接

    • ln -s [原文件或目录] [软链接名]
      • ln -s /root linkToRoot

    S2.访问软链接

    • cd linkToRoot/

      • 例:cd linkToRoot/

    S3.删除软连接

    • rm -rf linkToRoot
      • 结尾不要带斜杠

    C9.输出内容到控制台

    • echo [选项] [输出内容]
      • # echo $PATH => 输出环境变量
      • echo "hello world" => 输出内容

    P3.时间日期

    C1.日历

    • cal [选项]
      • cal => 当前月日历
      • cal 2020

    C2.日期

    S1.查看

    • date => 显示当前时间
    • date +%Y => 显示当前年
    • date +%m => 显示当前月
    • date +%d => 显示当前日
    • date "+%Y-%m-%d %H:%M:%S"

    S2.设置

    • date -s "2020-1-1 11:11:11"

    P4.搜索查找

    C1.find

    • find 搜索范围(目录) 选项
      • 从指定目录开始,向下递归地遍历其各个子目录。将满足条件呃文件或者目录显示在终端
      • 选项:
        • -name 文件名(可用通配符) => 查找指定名字的文件
          • find /home/ -name wuchulikafeiguan.txt
        • -user 用户名 => 查找指定用户所拥有的文件
        • -size 文件大小 => 查找指定大小的文件
          • +20M => 大于20M
          • -20M => 小于20M
          • 20M ==> 等于20M

    C2.grep

    • grep [选项] 查找内容 原文件
      • 查找文件内部
      • [选项]
        • -n => 显示匹配行及行号
        • -i => 忽略字母大小写
      • grep -ni Wu /home/shaolin/log.txt
      • cat log.txt | grep -n 23

    C3.locate

    • locate 文件名

      • 快速定位文件路径

        • 利用事先建立的系统中所有文件名称及路径的locate数据库
        • 所以要实现使用updatedb指令创建locate数据库
      • -bash-4.1# updatedb
        -bash-4.1# locate log.txt 
        /home/shaolin/log.txt
        

    P5.压缩和解压缩

    C1.gz格式

    S1.压缩

    • gzip 文件
      • 压缩后,不会保留原来的文件

    S2.解压缩

    • gunzip 文件.gz
      • 解压缩后,不会保留压缩文件

    C2.zip格式

    S1.压缩

    • zip [选项] xxx.zip
      • 压缩到当前所在目录下
      • [选项]
        • -r => 递归压缩,即压缩这个目录
      • zip -r mypackage.zip /home/*

    S2.解压

    • unzip [选项] xxx.zip
      • [选项]
        • -d 目录 => 指定解压后放在哪
      • unzip -d /opt/temp/ /home/mypackage.zip

    C3.tar.gz

    S1.压缩/解压

    • tar [选项] xxx.tar.gzs
      • [选项]
        • -c => 产出.tar打包文件
        • -x => 解包.tar文件
        • -v => 显示详细信息
        • -f => 指定压缩后的文件名
        • -z => 打包的同时压缩
      • 压缩:
        • tar -zcvf a.tar.gz hello.txt zh angsanfeng.txt
        • tar -zcvf home.tar.gz /home/*
      • 解压:
        • tar -zxvf a.tar.gz
        • tar -zxvf a.tar.gz -C /home/

    P6.用户、组管理和权限管理

    C1.用户管理

    S1.添加用户

    • useradd [选项] 用户名
      • 创建用户成功后,会自动创建和用户同名的家目录
      • 若是没有创建组,则会创建一个和用户名同名的组,然后把该用户放进去
    • useradd -d 家目录路径 用户名
      • user -d /home/nihao haha
    • useradd -g 组名 用户名

    S2.给用户指定密码

    • passwd 用户名

    S3.删除用户

    • userdel 用户名 => 删除用户,但是保留家目录
      • userdel -r 用户名 => 删除用户及其家目录
      • 一般要尽量保留家目录

    S4.查询用户信息

    • id 用户名
      • 若是用户不存在,则会返回“无此用户”

    S5.切换用户

    • su - 用户名

      • 切换到低权限用户不用输密码
      • 切换到高权限用户,后续需要输入密码
    • exit => 回到原来的用户

    S6.知道自己当前是哪个用户

    • whoami
    • who am i

    C2.用户组管理

    S1.增加组

    • groupadd 组名

    S2.删除组

    • groupdel 组名

    S3.切换组

    • usermod -g 用户组 用户名
    • usermod -d 目录名 用户名 => 改变用户登录的初始目录

    C3.权限管理

    S1.修改权限

    • chmod
      • 修改文件或者目录的权限

    一、+ - =变更权限

    • u 所有者
    • g 所有组
    • o 其它人
    • a 所有人(u、g、o的总和)
    • 例:
      • chmod u=rwx,g=rx,o=x 文件目录名
        • 赋予权限
      • chmod o+w 文件目录名
        • 增加权限
      • chmod a-x 文件目录名
        • 减少权限

    二、通过数字变更权限

    • r 4

    • w 2

    • x 1

    • 例:

      • chmod 751 文件目录名

    C4.文件操作

    S1.查看文件的所有者

    • ls -ahl

    S2.修改文件所有者

    • chown [选项] 用户名 文件名
      • chown zhangsanfeng ok.txt
      • [选项]
        • -R 级联修改

    S3.修改文件所在组

    • chgrp [选项] 组名 文件名
      • chgrp wudang ok.txt
      • [选项]
        • -R 级联修改

    S4.修改文件所有者和所在组

    • chown [选项] newowner:newgroup file
      • [选项]
        • -R 级联修改

    P7.Crond任务调度

    • crontab [选项]

      • [选项]
        • -e 编辑crontab定时任务
        • -l 查询crontab任务
        • -r 删除当前用户所有的crontab任务
    • service crond restart => 重启任务调度

    • 五个占位符的说明

      • image-20201127223158657
    • 特殊符号的说明

      • image-20201127223231075
      • 例:
        • image-20201127223305477
    • 例:

        1. 写一个shell文件/home/mytask1.sh
        • date >> /home/mydate
          
        1. crontab -e
        • 添加:*/1 * * * * /home/mytask1.sh
    • 重启任务调度

      • service crond restart

    P8.Linux磁盘分区、挂载

    C1.查看所有设备挂载情况

    • lsblk [选项]
      • [选项]
        • -f

    C2.增加硬盘

    1. 给虚拟机添加硬盘(使用vmware)

    2. 分区:fdisk /dev/sdb

      • m => n => p => 1 => 1 => w
    3. 格式化:mkfs -t ext4 /dev/sdb1

    4. 挂载:

      1. 先创建一个/home/newdisk

      2. 临时挂载:mount 设备名称 挂载目录

        • mount /dev/sdb1 /home/newdisk

        • 开机重启,挂载关系就没了

      3. 设置成自动挂载(永久挂载),重启系统后,仍然可以挂载到/home/newdisk

        • 编辑:/etc/fstab
          • image-20201128113710736
        • mount -a

    C3.断开挂载

    • unmount 设备名称或挂载目录
      • umount /dev/sdb1

    C4.磁盘情况查询

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

    • df -h
      • 转换了单位
    • df -l
      • 以KB为单位
    • df -lh

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

    • du [选项] 目录

      • [选项]

        • -s 指定目录占用大小汇总
        • -h 带计量单位
        • -a 含文件
        • --max-depth=1 子目录深度
        • -c 列出明细的同时,增加汇总值
      • 例子:

        • -bash-4.1# du -ach --max-depth=1 /opt/
          163M	/opt/vmware-tools-distrib
          54M	/opt/VMwareTools-10.3.22-15902021.tar.gz
          4.0K	/opt/rh
          152K	/opt/temp
          217M	/opt/
          217M	总用量
          

    S3.工作实用指令

    • 统计/home文件夹下文件个数
      • ls -l /home | grep "^-" | wc -l
    • 统计/home文件夹下目录个数
      • ls -l . | grep "^d" | wc -l
    • 统计/home文件夹下文件个数,包括子文件夹里的
      • ls -lR . | grep "^-" | wc -l
    • 统计/home文件夹下目录个数,包括子文件夹里的
      • ls -lR . | grep "^d" | wc -l
    • 以树状显示目录结构
      • 安装tree指令:yum install tree
      • tree
      • tree /home/

    P9.网络配置

    C1.方式一:自动配置

    C2.方式二:指定固定的ip

    • 编辑:vi /etc/sysconfig/network-scripts/ifcfg-eh0

      • eth0网卡的配置文件
      • image-20201128163516911
    • 结束后重启网卡:

      • service network restart

    P10.进程管理

    C1.查看当前系统中正在执行的进程

    • ps [选项]
      • [选项]

        • -a 所有进程信息
        • -u 以用户的格式显示进程信息
        • -x 显示后台进程运行的参数
        • -e 显示所有进程
        • -f 全格式
      • ps -aux | grep 进程名

      • ps -ef | grep 进程名 => 查看父进程

    C2.终止进程

    • kill [选项] 进程号
      • [选项]
        • -9 强迫进程立即停止
    • killall 进程名称

    sshd => 远程登录服务

    C3.查看进程树

    • pstree [选项]
      • [选项]
        • -p 显示进程的PID
        • -u 显示进程的所属用户

    C4.服务管理

    S1.操作

    • CentOS7.0之前:
      • service 服务名 [start|stop|restart|reload|status]
    • CentOS7.0之后:
      • servicectl 服务名 [start|stop|restart|reload|status]

    dos下,telnet ip地址 端口 => 检查linux的某个端口是否在监听,并且可以访问

    ps.先要打开telnet服务

    S2.查看服务名

    • 方式1:/etc/init.d/服务名
      • ls -l /etc/init.d/
    • 方式2:setup=>系统服务

    S3.运行级别

    • vi /etc/inittab => 修改默认的运行级别

    • chkconfig => 给每个服务的各个运行级别设置自启动/关闭

      • chkconfig --list | grep xxx
      • chkconfig 服务名 --list
      • chkconfig [--level 5] 服务名 on/off => 修改某个服务在某个级别下是否自启动

    S4.进程监控

    一、动态监控进程

    • top [选项]
      • -d 秒数 指定top指令几秒更新,默认是3秒
      • -i 使top不显示任何闲置或僵死进程
      • -p 通过指定监控进程ID来仅仅显示某个进程的状态

    二、监控网络状态

    • netstat [选项]
      • [选项]
        • -an 按一定顺序排列输出
        • -p 显示那个进程在调用
      • netstat -anp => 查看所有的网络服务

    P11.软件包的管理

    C1.RPM

    S1.查询

    • rpm -qa => 查询所安装的所有rpm软件包
      • rpm -qa | more
      • rpm -qa | grep 软件包名 => 查询软件包是否安装
    • rpm -q 软件包名 => 查询软件包是否安装
      • rpm -q eggdbus-0.6-3.el6.x86_64
    • rpm -qi 软件包名 => 查询软件包信息
    • rpm -ql 软件包名 => 查询软件包中的文件,软件包安装的目录
      • rpm -ql eggdbus-0.6-3.el6.x86_64
    • rpm -qf 文件全路径名 => 查询文件所属的软件包
      • rpm -qf /usr/share/doc/eggdbus-0.6

    S2.卸载

    • rpm -e 包名称
      • rpm -e --nodeps 包名称 => 不管依赖强行删

    S3.安装

    • rpm -ivh 包名称

    C2.YUM

    S1.查询

    • yum list | grep 软件名

    S2.下载并安装

    • yum install 软件名
  • 相关阅读:
    静态代理模式
    反射+抽象工厂
    抽象工厂模式
    工厂方法模式
    简单工厂模式
    单例模式
    博客总览
    Bootstrap快速上手 --作品展示站点
    Java 网络编程---分布式文件协同编辑器设计与实现
    如何在博客园的博客中添加可运行的JS(转载)
  • 原文地址:https://www.cnblogs.com/daheww/p/15848707.html
Copyright © 2020-2023  润新知