Linux学习笔记

Linux

linux基础

介绍

Linux是一款操作系统,免费、开源、安全、高效、稳定、处理高并发非常强悍,很多的企业级项目都部署到Linux/unit服务器运行。

Linux目录结构

Linux的文件系统采用级层式的目录结构,最上层是根目录“/”,然后再此目录下创建其他的目录。在Linux中,一切皆文件。

image-20210102171154415

具体目录结构:

  • /bin(/usr/bin、/usr/local/bin)Binnary的缩写,存放最经常使用的命令。
  • /sbin(/usr/sbin、/usr/local/sbin)s指super user,存放系统管理员使用的系统管理程序。
  • /home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名。
  • /root 系统管理员用户的主目录。
  • /lib 系统开机所需要最基本的动态连接共享库,作用类似于Windows的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  • /etc 所有的系统管理需要的配置文件和子目录。
  • /usr 存放用户的应用程序和文件,类似Windows下的program files目录。
  • /boot 存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件。
  • /proc 是一个虚拟目录,是系统内存的映射,访问这个目录可以获取系统信息。
  • /srv service的缩写,存放一些服务启动之后需要提取的数据。
  • /sys 该目录下安装了2.6内核中新出现的一个文件系统。
  • /dev 类似Windows的设备管理器,把所有的硬件用文件形式存储。
  • /media Linux系统会自动识别一些设备,例如U盘、光驱等,当识别后,Linux会把识别的设备挂载到这个目录下。
  • /mnt 用户临时挂载别的文件系统,可以将外部的存储挂载在/mnt/上。
  • /opt 给主机额外安装软件(安装包)的目录。如安装数据库就可以放到该目录下。
  • /usr/local 额外软件的安装目录。
  • /var 存放不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。

vi和vim编辑器

所有的Linux系统都内置vi文本编辑器。

vim具有程序编辑的能力,可以看作是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,具有代码补全、编译及错误跳转等功能。

vi和vim常用的三种模式

正常模式:以vim打开一个文档就进入正常模式(默认模式)。在这个模式中可以移动光标,可以使用删除字符或删除整行来处理文档内容,也可以使用复制黏贴来处理文件数据。

插入模式:按i进入编辑模式。

命令模式:在这个模式可以根据相关指令,完成读取、存盘、替换、离开vim、显示行号等操作。

vi和vim模式的相互切换

image-20210102225208415

vi和vim快捷键

在文件中查找某个单词,命令模式下/关键字,回车查找,n下一个

设置取消文件行号,命令模式下:set nu和:set nonu,快速定位到第n行:n

光标移动到文档末尾G首行gg

u撤销上一步

复制当前行yy,复制当前行下的n行,nyy,粘贴p

删除当前行dd,删除当前行下的n行ndd

更多vim操作可以参考https://www.cnblogs.com/MMLoveMeMM/articles/3707287.html

用户管理

创建用户
  • 语法

    useradd 用户名

  • 说明

    1. 当用户创建成功后,会自动的在/home目录下创建和用户同名相同的目录
    2. 也可以通过useradd -d 指定目录 用户名,给新创建的用户指定目录

image-20210109164550762

更改用户密码
  • 语法

    passwd 用户名

image-20210109165404659

删除用户
  • 语法

    userdel 用户名

  1. 删除用户,但是保留用户目录

image-20210109170952202

  1. 删除用户以及用户目录

image-20210109171258269

查询用户
  • 语法

    id 用户名

image-20210109171807959

uid:用户id、gid:组id、组名

切换用户

如果当前用户权限不够,可以通过su - 指令,切换到高权限用户。

  • 语法

    su - 切换用户名

image-20210109172837355

  • 说明
    1. 从高权限用户切换到低权限用户,不需要输入密码,反之需要
    2. 可以使用exit指令返回到原来的用户
查看当前用户
  • 语法

    whoami/who am i

image-20210109173203729

用户组

类似于角色,系统可以对有共性的多个用户进行统一的管理。

增加组
  • 语法

    groupadd 组名

image-20210109174958827

删除组
  • 语法

    groupdel 组名

image-20210109175222362

创建用户时指定用户组
  • 语法

    useradd -g 用户组 用户名

image-20210109175814404

修改用户组
  • 语法

    usermod -g 用户组 用户名

image-20210109180146032

用户和组相关的文件
/etc/passwd文件

用户的配置文件,记录用户的各种信息

每行的含义:用户名:密码:用户id:组id:描述:主目录:登录shell

image-20210109210909600

/etc/shadow文件

密码的配置文件

每行的含义:登录名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

image-20210109211039475

/etc/group文件

group的配置文件

每行含义:组名:密码:组id:组内用户列表

image-20210109211424148

实用命令

指令运行级别
  1. 关机
  2. 单用户【找回丢失密码】
  3. 多用户状态没有网络服务
  4. 多用户状态有网络服务
  5. 系统未使用保留给用户
  6. 图形界面
  7. 系统重启
帮助指令
man获得帮助信息
  • 语法

    man [命令或配置文件]

查看ls命令的帮助信息

image-20210110141716670

help指令
  • 语法

    help 命令(功能描述:获得shell内置命令的帮助信息)

image-20210110142351165

文件目录类指令
pwd
  • 语法

    pwd(显示当前工作目录的绝对路径)

ls
  • 语法

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

  • 常用选项

    -a:显示当前目录的所有文件和目录,包括隐藏的

    -l:以列表的方式展示信息

cd
  • 语法

    cd [参数](切换到指定目录)

  • 常用参数

    cd ~:回到自己的home目录

    cd …:回到上一级目录

mkdir

用于创建目录(make directory)

  • 语法

    mkdir [选项] 要创建的目录

  • 常用选项

    -p:创建多级目录

image-20210110144744825

rmdir

rmdir删除的是空目录。如果目录下有内容是无法删除的。如果要删除非空目录,需要使用rm -rf 要删除的目录。

  • 语法

    rmdir [选项] 要删除的空目录

image-20210110145523492

touch

创建空文件

  • 语法

    touch 文件名称

image-20210110145849861

cp

拷贝文件到指定目录

  • 语法

    cp [选项] source target

  • 常用选项

    -r:递归复制整个文件夹

image-20210110150601546

rm

删除文件或者目录

  • 语法

    rm [选项] 要删除的文件或者目录

  • 常用选项

    -r:递归删除整个文件夹

    -f:强制删除不提示

image-20210110154117066

mv

移动文件目录或重命名

  • 语法

    mv oldFileName newFileName (重命名)

image-20210110154759874

mv moveFile targetFolder (移动文件)

image-20210110155105801

cat

查看文件内容

  • 语法

    cat [选项] 要查看的文件

  • 常用选项

    -n:显示行号

image-20210110160543181

  • 使用细节

    cat只能查看文件,不能修改文件,分页显示使用 | more,空格键下一页

image-20210110161242586

more

more指令是一个基于vi编辑器的文本过滤器,它以全屏的方式按页显示文本文件的内容。

  • 语法

    more 要查看的文件

操作说明
space向下翻一页
Enter向下翻一行
q立刻离开more
Ctrl+F向下滚动一屏
Ctrl+B返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号

image-20210110163806839

less

less指令用来分屏查看文件内容,功能与more类似,但是比more更加强大,支持各种显示终端。less指令再显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示加载需要的内容,对于显示大型文件具有较高的效率。

  • 语法

    less 要查看的文件

操作说明
space向下翻一页
pagedown向下翻一页
pageup向上翻一页
/字符向下搜索【字符】,n:向下查找,N:向上查找
?字符向上搜索【字符】,n:向上查找,N:向下查找
q退出less
>指令和>>指令

>输出重定向和>>追加

  • 语法
    1. ls -l >文件 (列表的内容写入到文件中(覆盖写))
    2. ls -al>>文件 (列表的内容追加到文件中)
    3. cat 文件1>文件2 (将文件1的内容覆盖到文件2)
    4. echo “内容”>>文件 (内容追加到文件中)

image-20210110165519088

echo

输出内容到控制台

  • 语法

    echo [选项] 输出内容

image-20210110171931856

head

显示文件的开头部分内容,默认显示文件的前10行

  • 语法

    head 文件 (查看文件的头10行)

    head -n 5 (查看文件头5行,5可以时任意行数)

image-20210110172138280

tail

tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行

  • 语法

    tail 文件 (查看文件后10行)

    tail -n 5 文件 (查看文件后5行,5可以时任意行数)

    tail -f 文件 (实时追踪文件的所有更新)

image-20210110172714632

ln

软链接也叫符号链接,类似于Windows的快捷方式,主要存放了链接其他文件的路径

  • 语法

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

history

查看已经执行过的历史指令,也可以执行历史指令

  • 语法

    history

案例1:显示最近使用过的10个指令

image-20210110174410587

案例2:执行编号1052的指令

image-20210110174601776

时间日期类型
date
显示当前日期

image-20210110224544345

  • 语法
    1. date (显示当前时间)
    2. date “+%Y” (显示年)
    3. date “+%m” (显示月)
    4. date “+%d” (显示日)
设置日期
  • 语法

    date -s 日期字符

查看日历
  • 语法

    cal [选项]

image-20210110230351951

搜索查找类
find

find指令将从指定目录向下递归遍历其各个子目录,将满足条件的文件或目录显示 再终端

  • 语法

    find [搜索范围] [选项]

选项功能
-name(查询方式)按照指定的文件名查找文件
-user(用户名)查找属于指定用户名的所有文件
-size(文件大小)按指定的文件大小查找文件

image-20210110232451100

image-20210110231723725

查找系统中大于100m的文件(+大于、-小于)

image-20210110231944196

locate

locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位。locate指令无需遍历整个文件系统,查询速度快。

  • 语法

    locate 搜索文件名

  • 特别说明

    第一次运行时使用updatedb创建locate数据库

image-20210110233359105

grep指令和管道符|

grep过滤查找,管道符“|”表示将一个命令的处理结果传递给后面的命令处理

  • 语法

    grep [选项] 查找文件内容 源文件

选项功能
-n显示匹配行及行号
-i忽略字母大小写

image-20210110234024756

image-20210110234346653

压缩和解压缩类
gzip/gunzip

gzip用于压缩文件,gunzip用于解压

  • 语法

    gzip 文件 (压缩文件,只能压缩为*.gz文件)

image-20210117160652651

说明:使用gzip进行压缩后,不会保留原来的文件

gunzip 文件 (解压缩)

image-20210117160853588

zip/unzip

zip用于压缩文件,unzip用于解压缩

  • 语法

    zip [选项] 压缩后的名字.zip 将要压缩的内容(压缩文件和目录)

    unzip [选项] 被解压缩的文件名.zip(解压缩文件)

  • zip常用选项:

    -r:递归压缩,即压缩目录

    image-20210117171238216

  • unzip常用选项

    -d [目录]:指定解压后存放目录

    image-20210117171924640

tar

tar是打包指令,打包成.tar.gz文件。

  • 语法

    tar [选项] 打包后的文件名.tar.gz 打包的内容

  • 选项说明

    选项功能
    -c产生.tar打包文件
    -v显示详细信息
    -f指定压缩后的文件名
    -z打包同时压缩
    -x解压.tar文件
    • 应用实例

      1. 压缩多个文件

        image-20210117173731079

      2. 压缩文件夹

        image-20210117174241485

      3. 解压文件到当前目录

        image-20210117175149044

      4. 解压文件到指定目录

        image-20210117175537766

        注:指定解压到的目录要存在才能成功。

文件权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-64JTW5PD-1612541177507)(C:\Users\junwe\AppData\Roaming\Typora\typora-user-images\image-20210124151023592.png)]

文件权限:由三位二进制数表示,1表示拥有权限。如果拥有所有权限,用二进制数111表示,对应十进制的7

r(读)w(写)x(执行)

用户组

  • 前三位:拥有者
  • 中间三位:同组用户
  • 最后三位:其他用户
chmod
  • 方式一

    修改tom.txt文件,其他用户不可读

    image-20210124151739842

    拥有者权限:6=22+21+20

    同组用户权限:4=22

  • 方式二

    修改tom.txt文件,其他用户可读,同组用户可读写

    image-20210124151917816

    o:other

    g:group

定时任务调度
crontab
  • 语法:crontab [选项]

  • 常用选项

    选项说明
    -e编辑crontab定时任务
    -l查询crontab任务
    -r删除当前用户所有的crontab任务
    service crond restart重启任务

    简单的任务可以不用写脚本,直接在crontab中加入任务。

    如果是比较复杂的任务,需要写shell脚本。

  • 时间占位符

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

    符号含义
    *代表任何时间
    ,多个值之间的间隔
    -连续的时间范围
    */n代表时间间隔
  • 应用

    每间隔一分钟,打印一段文字到/home/temp/cron.txt文件中

    • 方式一

      1. 新建定时任务,crontab -e

      2. 编辑定时任务并写入

        image-20210124164557468

        image-20210124162149787

      3. 结果

        image-20210124164736497

    • 方式二

      1. 新建shell脚本

        image-20210124205115331

        image-20210124205153862

      2. 给脚本可执行权限

        image-20210124205453533

      3. 新建定时任务

        image-20210124205606153

      4. 执行结果

        image-20210124205706822

磁盘分区
分区的方式
  • mbr分区
    1. 最多支持四个主分区
    2. 系统只能安装在主分区
    3. 扩展分区要占一个主分区
    4. MBR最大只支持2TB,但拥有最好的兼容性
  • gtp分区
    1. 支持无限多个主分区(但操作系统可能限制,比如Windows下最多128个分区)
    2. 最大支持18EB的容量(1EB=1024PB,1PB=1024TB)
Windows分区

image-20210124212611397

image-20210124213142576

Linux分区

image-20210124221320720

image-20210124220939376

lsblk -f:查看系统分区和挂载情况

磁盘情况查询

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

  • 语法

    df -h

    image-20210130152836025

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

  • 语法

    du -h /目录(默认当前目录)

    -s 指定目录占用大小汇总

    -h 带计量单位

    -a 含文件

    -c 列出明细同时增加汇总值

    –max-depth=1 子目录深度

    image-20210130155231279

工作实用指令

  1. 统计/home目录下文件个数

    image-20210130165129621

    grep:支持正则表达式,wc:word count

  2. 统计/home目录下文件夹个数

    image-20210130165507819

  3. 统计/home目录下文件个数,包括子文件夹里的

    image-20210130165859769

    -R:递归

  4. 以树状显示目录结构

    image-20210130173508343

    找不到tree命令,yum install tree安装插件

网络配置

Linux网络配置原理图(含虚拟机)

image-20210130174603701

查看Linux虚拟机IP

image-20210130173747587

查看Windows IP

image-20210130174009515

ping测试主机间网络连通性
  • 语法

    ping 目的主机

    image-20210130174350016

    image-20210130174511813

进程管理
显示系统执行的进程

ps命令用来查看哪些进程正在执行,以及它们的执行状态

ps显示的信息选项

字段说明
PID进程号
TTY终端机号
TIME进程消耗CPU时间
CMD正在执行的命令或进程名

ps -a:显示当前终端的所有进程信息

ps -u:以用户的格式显示进程信息

ps -x:显示后台进程运行的参数

ps -ef:以全格式显示当前所有的进程。-e 显示所有进程,-f全格式

终止进程kill和killall
  • 语法

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

    killall 进程名(功能:通过进程名杀死进程,支持通配符)

  • 常用选项

    -9:强制停止进程

  • 实践

    1. 剔除ssh远程登录

      image-20210130221409893

    2. 终止远程登录服务sshd

      image-20210130221900434

服务管理
service指令
  • 语法

    service 服务名 start|stop|restart|reload|status

    CentOS7.0后可以使用systemctl

  • 案例

    查看当前防火墙状态

    image-20210130224122009

telnet

通过telnet指令检查Linux的某个端口是否在监听

  • 语法

    telnet ip 端口

    image-20210130230222963

    image-20210130230142140

查看服务名

方式1:使用setup->系统服务查看

image-20210130230831587

image-20210130230919095

[*]自动启动

方式2:systemctl list-units --type=service

image-20210130231833693

服务的运行级别

Linux系统又7种运行级别,常用的级别是3和5

  • 0:系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动
  • 1:单用户工作状态,root权限,用于系统维护,禁止远程登录
  • 2:多用户状态,不支持网络
  • 3:完全的多用户状态,登录后进入控制台命令行模式
  • 4:系统未使用,保留
  • 5:X11控制台,登录后进入图形GUI模式
  • 6:系统正常关闭并重启,默认级别不能设置为6,否则不能正常启动

每个服务对应不同的运行级别可以设置不同值

动态监控进程

top与ps命令相似。都可以用来显示正在执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。

  • 语法

    top [选项]

  • 选项说明

    选项功能
    -d 秒数指定间隔几秒更新,默认是3秒
    -i不显示任何闲置或者僵死进程
    -p指定监控进程ID
  • 交互操作说明

    操作功能
    P以CPU使用率排序,默认就是此项
    M以内存使用率排序
    N以PID排序
    q退出top
    u切换用户
    k指定要杀死进程id
  • 实例

    案例一:监控特定用

    第一步:输入top回车,查看执行的进程

    第二步:输入u回车,再输入用户名

    image-20210131155030664

    案例二:终止指定的进程

    第一步:top回车

    第二步:输入k回车,输入要结束的进程ID

    image-20210131155217313

监控网络状态

查看系统网络情况netstat

  • 语法

    netstat [选项]

  • 选项说明

    -an:按一定顺序排列

    -p:显示哪个进程在调用

  • 实例

    查看所有网络服务

    image-20210131160444110

RPM和YUM

RPM包管理

用于在互联网下载包的打包及安装工具,它包含在某些Linux分发版本中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Mananger(RedHat软件包管理工具)的缩写,类似Windows的setup.exe。

rpm包管理
  • 查询指令

    rpm -qa:查询安装的所有rpm软件包

    rpm -q 软件包名:查询软件包是否安装

    rpm -qi 软件包包名:信息

    image-20210131161855560

  • 卸载指令

    • 语法

      rpm -e 包名

  • 安装指令

    • 语法

      rpm -ivh 包全路径名称

    • 参数说明

      i=install

      v=verbose 提示

      h=hash 进度条

yum

yum是一个shell前端软件包管理器。基于rpm包管理,能够从指定服务器自动下载rpm包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

image-20210131205707993

  • 基本指令

    • 查询yum服务器是否有需要安装的软件:yum list|grep XX

      image-20210131210405381

    • 安装指定的yum包:yum install XX

搭建JavaEE环境

安装JDK

  • 查看jdk软件包

    image-20210131212000863

  • 查看是否安装成功

    image-20210131213336832

  • jdk默认安装路径

    image-20210131213502329

  • 配置全局变量vim /etc/profile,添加如下配置,JAVA_HOME对应安装目录中的jdk

    JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64
    PATH=$PATH:$JAVA_HOME/bin  
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
    export JAVA_HOME  CLASSPATH  PATH
    
  • 执行source /etc/profile使全局变量生效

安装Tomcat

  • 执行yum install tomcat

    image-20210131220223402

  • tomcat的默认安装路径/usr/share/tomcat

    image-20210131220341159

  • 启动tomcat

    image-20210131220638461

  • 安装管理包yum install tomcat-webapps tomcat-admin-webapps

  • 添加用户

    在tomcat安装目录,进入conf目录,编辑tomcat-users.xml文件,在 标签下,添加如下配置

    <role rolename="manager-gui"/>
    <user username="root" password="root" roles="manager-gui"/>
    
  • 进入Manager App,可以在此部署应用程序

    image-20210131222836643

    image-20210131223000910

Linux学习笔记是关于学习Linux操作系统的记录和总结。在学习Linux时,你可能会遇到以下几个方面的内容。 首先,Linux是一个面向网络服务的操作系统,因此你可以随意更换桌面系统。Linux有多种不同的桌面系统供你选择。这意味着你可以根据自己的喜好和需求,选择适合自己的桌面环境。 其次,在Ubuntu中,root用户默认是被锁定的,因此你无法直接使用root权限进行操作。但是,你可以使用sudo命令来提升权限,以执行需要root权限的操作。通过sudo命令,普通用户可以在需要时暂时获得root权限,以便进行需要的操作。 此外,如果你需要修改内核为bash,可以使用vim编辑器打开/etc/passwd文件进行修改。在Linux系统中,vim是一种常用的文本编辑器,类似于Windows的记事本。通过编辑/etc/passwd文件,你可以修改用户的登录shell为bash。 总结起来,Linux学习笔记记录了学习Linux操作系统的过程和经验,包括选择适合自己的桌面环境、使用sudo提升权限以及通过vim编辑器修改/etc/passwd文件等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux学习笔记](https://blog.csdn.net/m0_65379736/article/details/125700177)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值