学习笔记_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 软件名
原文地址:https://www.cnblogs.com/daheww/p/14081184.html