Linux基础

Linux目录结构

  • /bin

    是Binary的缩写,这个目录存放着最经常使用的命令

  • /sbin

    s是Super User的意思,这里存放的是系统管理员使用的系统管理程序

  • /home

    存放普通用户的主目录,在Linux中每个用户都有一个自己的目录。

  • /root

    该目录为系统管理员,也称作超级权限者的用户主目录

  • /lib

    系统开机所需要最基本的动态连接共享库(DLL文件)

  • /lost+found

    这个目录一般情况下是空的,当系统非法关机后,会生成临时文件

  • /etc

    所有的系统管理所需要的配置文件和子目录

  • /usr

    这是个非常重要的目录,用户的很多应用程序和文件都放在这个目录下

  • /boot

    存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件

  • /proc

    是一个虚拟的目录,是系统内存的映射,可以通过直接访问这个目录来获取系统信息

  • /srv

    service缩写,该目录存放一些服务启动之后需要提取的数据

  • /sys

    这是Linux2.6内核的一个很大的变化,如果安装2.6内核中新出现的一个文件系统sysfs

  • /tmp

    这个目录是用来存放一些临时文件的

  • /dev

    类似与Windows的设备管理器,把所有的硬件用文件的形式存储

  • /media

    Linux系统会自动识别一些设备(U盘,光驱),识别后,Linux会把识别的设备挂载到这个目录下

    centos迁移到/run/media

  • /mnt

    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了

  • /opt

    这是给主机额外安装软件所摆放的目录

  • /var

    这个目录中存放着在不断扩充着的东西。

VI/VIM编辑器

一般模式

语法 功能描述
yy 复制光标当前一行
y数字y 复制一段(从第几行到第几行)
p 箭头移动到目的行粘贴
u 撤销上一步
dd 删除光标当前行
d数字d 删除光标(含)后多少行
x 剪切一个字母,相当于del
X 剪切一个字母,相当于Backspace
yw 复制一个词
dw 删除一个词
shift+6(^) 移动到行头
shift+4 ($) 移动到行尾
1+shift+g 移动到页头,数字
shift+g 移动到页尾
数字+shift+g 移动到目标行

编辑模式

按键 功能
i 当前光标前
a 当前光标后
o 当前光标行的下一行
I 光标所在行最前
A 光标所在行最后
O 当前光标行的上一行

指令模式

命令 功能
:w 保存
:q 退出
:! 强制执行
/要查找的词 n 查找下一个,N 往上查找
:noh 取消高亮显示
:set nu 显示行号
:set nonu 关闭行号
:%s/old/new/g 替换内容 /g 替换匹配到的所有内容

网络配置和系统管理操作

网络和主机名

  • 查看当前网络ip

    ifconfig

  • 查看IP配置文件

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

  • 重启网络

    service network restart

  • 查看当前服务器主机名称

    hostname

  • 修改主机名称

    vi /etc/hostname

  • 修改hosts映射文件

    vim /etc/hosts

关闭防火墙

service (CentOS 6版本)

  • 查看网络服务的状态

    service network status

  • 停止网络服务

    service network stop

  • 启动网络服务

    service network start

  • 重启网络服务

    service network restart

chkconfig 设置后台服务的自启配置(CentOS 6版本)

  • 开启/关闭network(网络)服务的自动启动

    chkconfig network on

    chkconfig network off

  • 开启/关闭 network服务指定级别的自动启动

    chkconfig --level 指定级别 network on

    chkconfig --level 指定级别 network off

systemctl(CentOS 7版本-重点掌握)

  • 查看防火墙服务的状态

    systemctl status firewalld

  • 停止防火墙服务

    systemctl stop firewalld

  • 启动防火墙服务

    systemctl start firewalld

  • 重启防火墙服务

    systemctl restart firewalld

systemctl 设置后台服务的自启配置(CentOS 7版本)

  • 开启/关闭iptables(防火墙)服务的自动启动

    systemctl enable firewalld.service

    systemctl disable firewalld.service

临时关闭防火墙

  • 查看防火墙状态

    systemctl status firewalld

  • 临时关闭防火墙

    systemctl stop firewalld

开机启动时关闭防火墙

  • 查看防火墙开机启动状态

    systemctl enable firewalld.service

  • 设置开机时关闭防火墙

    systemctl disable firewalld.service

关机重启命令

  • 将数据由内存同步到硬盘中

    sync

  • 重启

    reboot

  • 关机

    halt

  • 计算机将在1分钟后关机,并且会显示在登录用户的当前屏幕中

    shutdown -h 1 ‘This server will shutdown after 1 mins’

  • 立马关机(等同于 halt)

    shutdown -h now

  • 系统立马重启(等同于 reboot)

    shutdown -r now

常用基本命令

帮助命令

  • man 获得帮助信息

    信息 功能
    NAME 命令的名称和单行描述
    SYNOPSIS 怎样使用命令
    DESCRIPTION 命令功能的深入讨论
    EXAMPLES 怎样使用命令的例子
    SEE ALSO 相关主题(通常是手册页)

    man ls

  • help 获得shell内置命令的帮助信息

    help cd

常用快捷键

常用快捷键 功能
ctrl + c 停止进程
ctrl+l 清屏;彻底清屏是:reset
ctrl + q 退出
善于用tab键 提示(更重要的是可以防止敲错)
上下键 查找执行过的命令
ctrl +alt linux和Windows之间切换

文件目录类

  • 显示当前工作目录的绝对路径

    pwd

  • 列出目录的内容

    基本语法

    ls [选项] [目录或是文件]

    选项说明

    选项 功能
    -a 全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
    -l 长数据串列出,包含文件的属性与权限等等数据;(常用)等价于“ll”
  • cd 切换目录

    参数说明

    参数 功能
    cd 绝对路径 切换路径
    cd相对路径 切换路径
    cd ~或者cd 回到自己的家目录
    cd - 回到上一次所在目录
    cd .. 回到当前目录的上一级目录
    cd -P 跳转到实际物理路径,而非快捷方式路径
  • mkdir 创建一个新的目录

    选项 功能
    -p 创建多层目录
  • rmdir 删除一个空的目录

  • touch 创建空文件

  • cp 复制文件或目录

    基本语法

    cp [选项] source dest (功能描述:复制source文件到dest)

    选项说明

    选项 功能
    -r 递归复制整个文件夹

    参数说明

    参数 功能
    source 源文件
    dest 目标文件
  • rm 删除文件或目录

    选项 功能
    -r 递归删除目录中所有内容
    -f 强制执行删除操作,而不提示用于进行确认。
    -v 显示指令的详细执行过程
  • mv 移动文件与目录或重命名

  • cat 查看文件内容

    选项 功能描述
    -n 显示所有行的行号,包括空行。
  • more 文件内容分屏查看器

    操作 功能说明
    空白键 (space) 代表向下翻一页;
    Enter 代表向下翻『一行』;
    q 代表立刻离开 more ,不再显示该文件内容。
    Ctrl+F 向下滚动一屏
    Ctrl+B 返回上一屏
    = 输出当前行的行号
    :f 输出文件名和当前行的行号
  • less 分屏显示文件内容

    操作 功能说明
    空白键 向下翻动一页;
    [pagedown] 向下翻动一页
    [pageup] 向上翻动一页;
    /字串 向下搜寻『字串』的功能;n:向下查找;N:向上查找;
    ?字串 向上搜寻『字串』的功能;n:向上查找;N:向下查找;
    q 离开 less 这个程序;
  • echo输出内容到控制台

基本语法 echo [选项] [输出内容] -e: 支持反斜线控制的字符转换

控制字符 作用
\ 输出\本身
\n 换行符
\t 制表符,也就是Tab键
  • head 显示文件头部内容

    head 文件 (功能描述:查看文件头10行内容)

    head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)

  • tail 输出文件尾部内容

    (1)tail 文件 (功能描述:查看文件尾部10行内容)

    (2)tail -n 5 文件 (功能描述:查看文件尾部5行内容,5可以是任意行数)

    (3)tail -f 文件 (功能描述:实时追踪该文档的所有更新)

  • > 输出重定向和 >> 追加

    (1)ls -l > 文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))

    (2)ls -al >> 文件 (功能描述:列表的内容追加到文件aa.txt的末尾)

    (3)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)

    (4)echo “内容” >> 文件

  • ln 软链接(软链接也成为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径)

    基本语法

    ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

    经验技巧

    删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/

    如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉

    查询:通过ll就可以查看,列表属性第1位是l,尾部会有位置指向。

  • history 查看已经执行过历史命令

时间日期类

  • 时间日期类

    基本语法

    date [OPTION]... [+FORMAT]

    选项说明

    选项 功能
    -d<时间字符串> 显示指定的“时间字符串”表示的时间,而非当前时间
    -s<日期时间> 设置系统日期时间

    参数说明

    参数 功能
    <+日期时间格式> 指定显示时使用的日期时间格式
  • date 显示当前时间

    (1)date (功能描述:显示当前时间)

    (2)date +%Y (功能描述:显示当前年份)

    (3)date +%m (功能描述:显示当前月份)

    (4)date +%d (功能描述:显示当前是哪一天)

    (5)date "+%Y-%m-%d %H:%M:%S" (功能描述:显示年月日时分秒)

  • date 显示非当前时间

    (1)date -d '1 days ago' (功能描述:显示前一天时间)

    (2)date -d '-1 days ago' (功能描述:显示明天时间)

  • date 设置系统时间

    date -s 字符串时间

  • cal 查看日历

    查看当前月的日历

    cal

    查看2017年的日历

    cal 2017

用户管理命令

  • useradd 添加新用户

    useradd 用户名 (功能描述:添加新用户)

    useradd -g 组名 用户名 (功能描述:添加新用户到某个组)

  • passwd 设置用户密码

    passwd 用户名

  • id 查看用户是否存在

    id 用户名

  • cat /etc/passwd 查看创建了哪些用户

  • su 切换用户

    su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)

    su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)

  • userdel 删除用户

    (1)userdel 用户名 (功能描述:删除用户但保存用户主目录)

    (2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除)

  • who 查看登录用户信息

    (1)whoami (功能描述:显示自身用户名称)

    (2)who am i (功能描述:显示登录用户的用户名以及登陆时间)

  • sudo 设置普通用户具有root权限

  • usermod 将用户加入到用户组

    usermod -g root zhubajie

用户组管理命令

  • groupadd 新增组

  • groupdel 删除组

  • groupmod 修改组

    修改atguigu组名称为atguigu1

    groupmod -n xitian xitianqujing

  • cat /etc/group 查看创建了哪些组

文件权限类

image-20220327175906466

  • chmod 改变权限

    第一种方式变更权限

    chmod [{ugoa}{+-=}{rwx}] 文件或目录

    第二种方式变更权限

    chmod [mode=421 ] [文件或目录]

    经验技巧

    u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)

    r=4 w=2 x=1 rwx=4+2+1=7

    (1)修改文件使其所属主用户具有执行权限

    cp xiyou/dssz/houge.txt ./

    chmod u+x houge.txt

    (2)修改文件使其所属组用户具有执行权限

    chmod g+x houge.txt

    (3)修改文件所属主用户执行权限,并使其他用户具有执行权限

    chmod u-x,o+x houge.txt

    (4)采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。

    chmod 777 houge.txt

    (5)修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。

    chmod -R 777 xiyou/

  • chown 改变所有者

    修改文件所有者

    chown atguigu houge.txt

    递归改变文件所有者和所有组

    chown -R atguigu:atguigu xiyou/

  • chgrp 改变所属组

搜索查找类

  • find 查找文件或者目录

    基本语法

    ​ find [搜索范围] [选项]

    选项 功能
    -name<查询方式> 按照指定的文件名查找模式查找文件
    -user<用户名> 查找属于指定用户名所有文件
    -size<文件大小> 按照指定的文件大小查找文件,单位为: b —— 块(512字节) c —— 字节 w —— 字(2字节) k —— 千字节 M —— 兆字节 G —— 吉字节 (+n 大于 -n小于 n等于)
  • locate 快速定位文件路径 可搜索文件或文件夹

    locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。

    由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。

    updatedb

    locate tmp

  • grep 过滤查找及“|”管道符

    选项 功能
    -n 显示匹配行及行号。

    查找某文件在第几行

    ls | grep -n test

压缩和解压类

  • gzip/gunzip 压缩

    基本语法

    gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)

    gunzip 文件.gz (功能描述:解压缩文件命令)

    经验技巧

    (1)只能压缩文件不能压缩目录

    (2)不保留原来的文件

    (3)同时多个文件会产生多个压缩包

  • zip/unzip 压缩

    基本语法

    zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)

    unzip [选项] XXX.zip (功能描述:解压缩文件)

    zip选项 功能
    -r 压缩目录
    unzip选项 功能
    -d<目录> 指定解压后文件的存放目录

    经验技巧

    zip 压缩命令在window/linux都通用,可以压缩目录且保留源文件。

  • tar 打包

    tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)

    选项 功能
    -c 产生.tar打包文件
    -v 显示详细信息
    -f 指定压缩后的文件名
    -z 打包同时压缩
    -x 解包.tar文件
    -C 解压到指定目录

磁盘分区类

  • df 查看磁盘空间使用情况 (df: disk free 空余硬盘)

    选项 功能
    -h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • fdisk 查看分区

    选项 功能
    -l 显示所有硬盘的分区列表

    Linux分区

    Device:分区序列

    Boot:引导

    Start:从X磁柱开始

    End:到Y磁柱结束

    Blocks:容量

    Id:分区类型ID

    System:分区类型

  • lsblk 查看设备挂载情况

    选项 功能
    -f 查看详细的设备挂载情况,显示文件系统信息
  • mount/umount 挂载/卸载

    基本语法

    mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)

    umount 设备文件名或挂载点 (功能描述:卸载设备)

    参数说明

    参数 功能
    -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 光盘或光盘镜像:iso9660 DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat Windows NT ntfs文件系统:ntfs Mount Windows文件网络共享:smbfs UNIX(LINUX) 文件网络共享:nfs
    -o options 主要用来描述设备或档案的挂接方式。常用的参数有: loop:用来把一个文件当成硬盘分区挂接上系统 ro:采用只读方式挂接设备 rw:采用读写方式挂接设备   iocharset:指定访问文件系统所用字符集
    device 要挂接(mount)的设备
    dir 设备在系统上的挂接点(mount point)

进程线程类

  • ps 查看当前系统进程状态(ps:process status 进程状态)

    基本语法

    ​ ps -aux | grep xxx (功能描述:查看系统中所有进程)

    ​ ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)

    选项说明

    选项 功能
    -a 选择所有进程
    -u 显示所有用户的所有进程
    -x 显示没有终端的进程

    功能说明

    (1)ps -aux显示信息说明

    USER:该进程是由哪个用户产生的

    PID:进程的ID号

    %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;

    %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;

    VSZ:该进程占用虚拟内存的大小,单位KB;

    RSS:该进程占用实际物理内存的大小,单位KB;

    TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。

    STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台

    START:该进程的启动时间

    TIME:该进程占用CPU的运算时间,注意不是系统时间

    COMMAND:产生此进程的命令名

    (2)ps -ef显示信息说明

    UID:用户ID

    PID:进程ID

    PPID:父进程ID

    C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高

    STIME:进程启动的时间

    TTY:完整的终端名称

    TIME:CPU时间

    CMD:启动进程所用的命令和参数

    经验技巧

    如果想查看进程的CPU占用率和内存占用率,可以使用aux;

    如果想查看进程的父进程ID可以使用ef;

  • kill 终止进程

    kill [选项] 进程号 (功能描述:通过进程号杀死进程)

    killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

    选项 功能
    -9 表示强迫进程立即停止
  • pstree 查看进程树

    pstree [选项]

    选项 功能
    -p 显示进程的PID
    -u 显示进程的所属用户
  • top 查看系统健康状态

    top [选项]

    选项 功能
    -d 秒数 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:
    -i 使top不显示任何闲置或者僵死进程。
    -p 通过指定监控进程ID来仅仅监控某个进程的状态。
    操作 功能
    P 以CPU使用率排序,默认就是此项
    M 以内存的使用率排序
    N 以PID排序
    q 退出top

    查询结果字段解释

    第一行信息为任务队列信息

    内容 说明
    12:26:46 系统当前时间
    up 1 day, 13:32 系统的运行时间,本机已经运行1天 13小时32分钟
    2 users 当前登录了两个用户
    load average: 0.00, 0.00, 0.00 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。

    第二行为进程信息

    Tasks: 95 total 系统中的进程总数
    1 running 正在运行的进程数
    94 sleeping 睡眠的进程
    0 stopped 正在停止的进程
    0 zombie 僵尸进程。如果不是0,需要手工检查僵尸进程

    第三行为CPU信息

    Cpu(s): 0.1%us 用户模式占用的CPU百分比
    0.1%sy 系统模式占用的CPU百分比
    0.0%ni 改变过优先级的用户进程占用的CPU百分比
    99.7%id 空闲CPU的CPU百分比
    0.1%wa 等待输入/输出的进程的占用CPU百分比
    0.0%hi 硬中断请求服务占用的CPU百分比
    0.1%si 软中断请求服务占用的CPU百分比
    0.0%st st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。

    第四行为物理内存信息

    Mem: 625344k total 物理内存的总量,单位KB
    571504k used 已经使用的物理内存数量
    53840k free 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了
    65800k buffers 作为缓冲的内存数量

    第五行为交换分区(swap)信息

    Swap: 524280k total 交换分区(虚拟内存)的总大小
    0k used 已经使用的交互分区的大小
    524280k free 空闲交换分区的大小
    409280k cached 作为缓存的交互分区的大小
  • netstat 显示网络统计信息和端口占用情况

    netstat -anp | grep 进程号 (功能描述:查看该进程网络信息)

    netstat –nlp | grep 端口号 (功能描述:查看网络端口号占用情况)

    选项说明

    选项 功能
    -n 拒绝显示别名,能显示数字的全部转化成数字
    -l 仅列出有在listen(监听)的服务状态
    -p 表示显示哪个进程在调用

crontab 系统定时任务

  • crontab 服务管理

    重新启动crond服务

    systemctl restart crond

  • crontab 定时任务设置

    crontab [选项]

    选项 功能
    -e 编辑crontab定时任务
    -l 查询crontab任务
    -r 删除当前用户所有的crontab任务

    参数说明

    [root@hadoop101 ~]# crontab -e

    (1)进入crontab编辑界面。会打开vim编辑你的工作。

    * * * * * 执行的任务

    项目 含义 范围
    第一个“*” 一小时当中的第几分钟 0-59
    第二个“*” 一天当中的第几小时 0-23
    第三个“*” 一个月当中的第几天 1-31
    第四个“*” 一年当中的第几月 1-12
    第五个“*” 一周当中的星期几 0-7(0和7都代表星期日)

    (2)特殊符号

    特殊符号 含义
    * 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
    代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
    - 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令
    */n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令

    (3)特定时间执行命令

    时间 含义
    45 22 * * * 命令 在22点45分执行命令
    0 17 * * 1 命令 每周1 的17点0分执行命令
    0 5 1,15 * * 命令 每月1号和15号的凌晨5点0分执行命令
    40 4 * * 1-5 命令 每周一到周五的凌晨4点40分执行命令
    */10 4 * * * 命令 每天的凌晨4点,每隔10分钟执行一次命令
    0 0 1,15 * 1 命令 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。

软件包管理

RPM

  • RPM查询命令(rpm -qa)

    rpm -qa (功能描述:查询所安装的所有rpm软件包)

    由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包

  • RPM卸载命令(rpm -e)

    (1)rpm -e RPM软件包

    (2) rpm -e --nodeps 软件包

    选项 功能
    -e 卸载软件包
    --nodeps 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。
  • RPM安装命令(rpm -ivh)

    rpm -ivh RPM包全名

    选项 功能
    -i -i=install,安装
    -v -v=verbose,显示详细信息
    -h -h=hash,进度条
    --nodeps --nodeps,不检测依赖进度

YUM

  • YUM的常用命令

    yum [选项] [参数]

    选项 功能
    -y 对所有提问都回答“yes”
    参数 功能
    install 安装rpm软件包
    update 更新rpm软件包
    check-update 检查是否有可用的更新rpm软件包
    remove 删除指定的rpm软件包
    list 显示软件包信息
    clean 清理yum过期的缓存
    deplist 显示yum软件包的所有依赖关系
posted @ 2022-07-26 16:45  POCOPOCOPOCO  阅读(68)  评论(0编辑  收藏  举报