博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 学习笔记
阅读量:4973 次
发布时间:2019-06-12

本文共 18410 字,大约阅读时间需要 61 分钟。

 

 

Linux

 

 

  1. linux的入门
    1. Linux的介绍

     

     

     

     

  2. VM和Linux的安装
    1. 安装vm和Centos
      1. 基本说明:

     

    学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习

  3. 先安装virtual machine ,vm12
  4. 再安装Linux (CentOS )
  5. 原理示意图

    1. CentOS安装的步骤

     

  6. 创建虚拟机
  7. 开始安装系统(CentOS6.8)
  8. 具体的步骤看文档和视频

     

     

     

     

    1. CentOS安装技术难点-网络配置三种方式理解

     

     

    这里,在面试的时,有可能面试官问关于 桥连,nat模式和主机模式的含义和区别

     

  • 虚拟机的三种网络配置方式的说明

 

 

  1. Centos终端的使用和联网
    1. centos终端的使用

  1. centosff可以联网,可以和外部的ip联通

这里,我们是简单的动态的分配的ip(后面我们要学习固定分配ip)

 

 

 

 

  1. linux 的目录结构
    1. Linux目录结构
      1. 基本的介绍

    linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他的目录。

    深刻理解linux树状文件目录是非常重要的,这里我给大家说明一下。

     

    记住一句经典的话:。在Linux世界里,一切皆文件(即使是一个硬件设备,也是使用文本来标志)

     

    1. linux目录机构的一览图

     

    1. 具体的目录说明

     

     

    1. 对linux目录结构的小结
  2. 在linux中,目录结构 有一个 根目录 / ,其他的目录都是在 / 目录分支。
  3. 在linux中,有很多目录,是安装后,有自动有目录,每个目录都会存放相应的内容,不要去修改.
  4. 在linux中,所有的设备都可以通过文件来体现(字符设备文件[比如键盘,鼠标],块设备文件[硬盘])
  5. 在学习linux时,要尽快的在脑海中,形成一个 目录树
  6. 远程登录到Linux服务器

     

    1. 为什么需要远程登录linux

    1. 远程登录Linux-Xshell5
      1. 介绍:

     

    说明: Xshell 是目前最好的远程登录到Linux操作的软件,流畅的速度并且完美解决了中文乱码的问题, 是目前程序员首选的软件。

     

    Xshell [1]  是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。

     

    Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。

    1. 安装配置和使用:

     

    具体看老师的演示和操作!【看我的操作】

    安装的过程就是直接下一步即可【傻瓜式的安装】

     

  • 具体的连接步骤

 

 

  1. 远程上传下载文件Xftp5
    1. 基本的介绍

 

是一个基于  windows 平台的功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。(示意图)

 

 

  1. 安装和使用

看老师的演示:安装的步骤也是直接下一步即可,傻瓜式的安装。

 

 

  • 使用的步骤

 

  1. xftp的使用说明

当我们在实际工作中,如果需要部署一个项目,则应当向压缩后,再上传,上传后,使用linux的相关的解压缩命令,来解压[相关的命令后面会讲]

 

具体的使用看视频即可.

 

 

 

 

  1. SecureCRT的安装和使用
    1. 基本的介绍:

是用于远程登录Linux的软件。SecureCRT 也是一款常用的远程登录Linux的软件,在大数据开发中使用较多

  1. 安装:

绿色安装版,拷贝到指定目录(程序员决定)即可使用.

  1. 使用

 

步骤1: 安装好后,就启动 securecrt:

 

步骤2:配置好后,就点击链接,然后输入密码即可.

 

步骤3: 解决中文乱码问题

 

 

  1. 在安装的过程中可能遇到的问题和解决方法
  1. 安装secureCRT 时,如果提示 D\....\keymap. 路径找不到,原因是原来绿色版的软件会在d盘写入一个文件,如果没有d盘装不上。 重新下载一个最新版,安装即可.
  2. 没有虚拟网卡,这个问题,一定要启动虚拟网卡.
  3. 如果发现xshell5安装报资源不足,则给一个新版本。

     

     

     

     

  4. Vi和Vim编辑器
    1. vi和vim的基本介绍

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

     

    Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

    我们只需要掌握它的基本使用即可。

     

     

    1. vi 和 vim的快速入门小案例

    使用 vim 开发一个 Hello.java 程序, 保存.步骤说明和演示

     

    1. vi 和 vim 三种模式的切换

     

     

    1. vim和vi的快捷键的使用
  • 快捷键使用练习【晚上练习】:

 

1) 拷贝当前行 yy , 拷贝当前行向下的5行 5yy,并粘贴 p。【快捷键在正常模式下使用】

2) 删除当前行 dd , 删除当前行向下的5行 5dd

3) 在文件中查找某个单词 [命令模式下 /关键字 , 回车 查找 , 输入 n 就是查找下一个 ]

 

4) 设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu]

5) 编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg] 【正常模式下】

6) 在一个文件中输入 "hello" ,然后又撤销这个动作 u 【正常模式下】

7) 编辑 /etc/profile 文件,并将光标移动到 20行 shift+g

8) 更多的看整理的文档

 

  1. vi和vim课堂练习

使用vim 编写一个Person.java ,显示个人信息 【姓名 年龄 职业 爱好】

把老师课堂讲的各种快捷键自己练习一把即可

 

 

 

 

 

 

 

  1. 开机、重启和用户登录注销
    1. 关机&重启命令
      1. 常见的指令如下

    shutdown -h now [立刻关机]

    shutdown -h 1 "1分钟,关机." [1分钟后,关机]

    shutdown -r now [立刻重启]

    shutdown -r 2 "2分钟后,重启"

    halt 【立刻关机】

    reboot 【立刻重启】

    在重启和关机前,通常需要先执行

    sync [把内存的数据,写入磁盘]

    1. 注意细节:

    不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中

    1. 用户的登录和注销
      1. 基本介绍:
  2. 登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用"su - 用户名'命令来切换成系统管理员身份.
  3. 在提示符下输入 logout 即可注销用户【不同的shell 可能不同(logout exit)】

     

     

    1. 使用细节:
  4. logout 注销指令在图形运行级别(简单提一下:0-6个级别)无效,在 运行级别 3下有效.
  5. 运行级别这个概念,后面给大家介绍
  6. 用户管理
    1. 对linux用户的示意图

    1. 基本介绍

    Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统

    1. 添加用户
  • 基本语法

useradd 用户名

  • 案例演示

案例1:添加一个用户 xiaoming

  • 使用细节
  1. 当创建用户成功后,会自动的创建和用户同名的家目录 【/home/xiaoming】
  2. 也可以通过 useradd -d 指定目录 新的用户名jack,给新创建的用户指定家目录

    1. 指定/修改密码
      1. 基本语法

    passwd 用户名 // 如果没有带用户名,则是给当前登录的用户修改密码

    1. 应用案例
    1. 给xiaoming 指定密码

      passwd xiaoming // 需要root用户

       

      1. 删除用户
        1. 基本语法

      userdel 用户名

      1. 应用案例

      删除用户xiaoming,但是要保留家目录 userdel 用户名 //userdel xiaoming

      删除用户以及用户主目录 // userdel –r xiaoming 【小心使用】

      1. 细节说明

      是否保留家目录的讨论? [一般保留]

       

      1. 查询用户信息指令
        1. 基本语法

      id 用户名

       

      1. 应用实例

      案例1:请查询root 信息

      1. 细节说明
      1. 当用户不存在时,返回无此用户

         

        1. 切换用户
          1. 介绍

        在操作Linux中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如root

        1. 基本语法

        su – 切换用户名

         

        1. 应用实例

        创建一个用户milan, ,指定密码,然后切换到 milan.

        1. 细节说明
      2. 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
      3. 当需要返回到原来用户时,使用exit指令
      4. 如果 su – 没有带用户名,则默认切换到root用户

         

        1. 用户组
          1. 介绍

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

        1. 新增组

        指令

        groupadd 组名

        1. 案例演示 [增加 wudang ] 武当

    groupadd wudang

     

    1. 增加用户时直接加上组
  • 指令(基本语法)

useradd –g 用户组 用户名

  • 增加一个用户 zwj, 直接将他指定到 wudang

  1. 删除组
  • 指令(基本语法)

    groupdel 组名

  • 案例演示

这里有一个前提,就是这个组没有用户,才能删除。

 

  1. 修改用户的组
  • 指令(基本语法)

usermod –g 新的组名 用户名

  • 案例演示

创建一个shaolin组,让将zwj 用户修改到shaolin

 

 

  1. 用户和组的相关文件

 

  1. /etc/passwd 文件

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

每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell [图]

  1. /etc/shadow 文件

    口令的配置文件

每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留 [图]

  1. /etc/group 文件

    组(group)的配置文件,记录Linux包含的组的信息

每行含义:组名:口令:组标识号:组内用户列表

 

 

 

 

 

 

  1. 课堂练习

 

 

 

 

  1. 实用指令

     

     

    1. 指定运行级别
      1. 基本介绍:
  • 运行级别说明:
  1. 0 :关机
  2. 1 :单用户 [类似安全模式, 这个模式可以帮助找回root密码]
  3. 2:多用户状态没有网络服务
  4. 3:多用户状态有网络服务 [使用最多]
  5. 4:系统未使用保留给用户
  6. 5:图形界面 【】
  7. 6:系统重启

    常用运行级别是35 ,要修改默认的运行级别可改文件

  • 如果指定运行级别

/etc/inittab

id:5:initdefault:这一行中的数字

命令:init [012356] https协议

  • 应用实例:

案例: 通过init 来切换不同的运行级别,比如动 5-3 , 然后关机

init 5

init 3

init 0

 

 

  1. 指定运行级别
    1. 面试题:

 

如何找回root密码

 

  1. 课堂练习:

 

  1. 假设我们的root密码忘记了,请问如何找回密码【练习】

    启动时->快速输入enter->输入e-> 进入到编辑界面-> 选择中间有kernel 项->

    输入e(edit)-> 在该行的最后写入 1 [表示修改内核,临时生效]-> 输入enter->
    输入b [boot]-> 进入到单用模式 【这里就可以做补救工作】

     

  2. 请设置我们的 运行级别,linux 运行后,直接进入到 命令行终端(3级别)

     

    1. 帮助指令
      1. man 获得帮助信息
  • 基本语法

man [命令或配置文件](功能描述:获得帮助信息)

  • 应用实例

案例:查看ls命令的帮助信息

man ls

  1. help指令
  • 基本语法

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

  • 应用实例

案例:查看cd命令的帮助信息

help cd

 

  1. 百度帮助更直接

虽然上面两个都可以来获取指令帮助,但是需要英语功底,如果英语不太好的,我还是推荐大家直接百度靠谱。[演示]

 

  1. 文件和目录相关的指令
    1. pwd 指令
  • 基本语法

pwd    (功能描述:显示当前工作目录的绝对路径)

  • 应用实例

案例:显示当前工作目录的绝对路径

演示:pwd

 

  1. ls指令
  • 基本语法

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

  • 常用选项

-a :显示当前目录所有的文件和目录,包括隐藏的 (文件名以.开头就是隐藏)。

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

-h : 显示文件大小时,以 k , m, G单位显示

  • 应用实例

案例:查看当前目录的所有内容信息

ls -alh //显示当前的目录内容

ls -alh 指定目录

比如:

ls -alh /root/

 

  1. cd 指令
  • 基本语法

cd [参数]    (功能描述:切换到指定目录)

  • 常用参数

绝对路径【从 / 开始定位】和相对路径【从当前的位置开始定位】

cd ~ 或者cd :回到自己的家目录

cd .. 回到当前目录的上一级目录

  • 应用实例

案例1:使用绝对路径切换到root目录 [cd /root]

案例2: 使用相对路径到/root 目录 [ cd ../root]

案例3:表示回到当前目录的上一级目录 [ cd ..]

案例4:回到家目录 [ cd ~ ]

 

 

  1. mkdir指令 [make directory]
  • 说明

mkdir指令用于创建目录

  • 基本语法

mkdir [选项] 要创建的目录

  • 常用选项

-p :创建多级目录

  • 应用实例

案例1:创建一个目录 /home/dog

mkdir /home/dog

案例2:创建多级目录 /home/animal/tiger

mkdir -p /home/animal/tiger

 

  1. rmdir指令 [remove directory]
  • 说明

rmdir指令删除空目录

  • 基本语法

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

  • 应用实例

案例1:删除一个目录 /home/dog

rmdir /home/dog [要求 /home/dog 空目录]

  • 使用细节

rmdir 删除的是空目录,如果目录下有内容时无法删除的。

提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录

比如:

rm -rf /home/dog

r: 表示递归删除,就是将该目录下的文件和子目录全部删除

f: 表示强制删除,就是不需询问

 

  1. touch指令

touch指令创建空文件, 还可以更新文件的修改时间

  • 基本语法

touch 文件名称

  • 应用实例

案例1: 创建一个空文件 hello.txt

touch hello.txt

说明:如果文件存在,则表示刷新该文件的修改时间.

 

 

 

cp指令[copy 拷贝]

  1. cp 指令拷贝文件到指定目录
  • 基本语法

cp [选项] source【源】 dest【目的文件】

  • 常用选项

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

 

  • 应用实例

案例1: 将 /home/aaa.txt 拷贝到 /home/bbb 目录下

案例2: 递归复制整个文件夹,举例, 将 /home 整个目录拷贝 /opt

  • 使用细节

强制覆盖不提示的方法:\cp

 

  1. rm指令
  • rm 指令移除文件或目录
  • 基本语法

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

  • 常用选项

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

-f : 强制删除不提示

  • 应用实例

案例1: 将 /home/aaa.txt 删除

rm /home/aaa.txt

案例2: 递归删除整个文件夹 /home/bbb

rm –r /home/bbb

  • 使用细节

强制删除不提示的方法:带上 -f 参数即可

rm –rf /home/bbb

 

 

  1. mv指令

 

mv 移动文件与目录或重命名

  • 基本语法

mv oldNameFile newNameFile (功能描述:重命名)

mv /temp/movefile /targetFolder (功能描述:移动文件或目录)

 

  • 应用实例

案例1: 将 /home/aaa.txt 文件 重新命名为 pig.txt

案例2:将 /home/pig.txt 文件 移动到 /root 目录下

 

  1. cat指令

cat 查看文件内容

  • 基本语法

cat [选项] 要查看的文件

  • 常用选项

-n :显示行号

 

  • 应用实例

案例1: /ect/profile 文件内容,并显示行号

cat -n /etc/profile | more

说明:如果需要一行行,输入 enter

如果需要翻页 ,输入空格键.

如果需要退出,输入 q

  • 使用细节

cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more

cat xxx.txt | more (把cat xxx.txt 输出结果交给 more 处理)

 

  1. more指令

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明

 

  • 基本语法

more 要查看的文件

操作说明

  • 应用实例

案例: 采用more查看文件

/etc/profile

  • 快捷键

操作

功能说明

空白键 (space)

代表向下翻一页;

Enter

代表向下翻『一行』;

q

代表立刻离开 more ,不再显示该文件内容。

Ctrl+F

向下滚动一屏

Ctrl+B

返回上一屏

=

输出当前行的行号

:f

输出文件名和当前行的行号

 

  1. less指令

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

 

  • 基本语法

less 要查看的文件

  • 操作说明和快捷键

 

  • 应用实例

案例: 采用less查看一个

大文件文件

 

  1. echo指令

echo输出内容到控制台。

  • 基本语法

echo [选项] [输出内容]

  • 应用实例

案例: 使用echo 指令输出环境变量,比如 PATH

echo $PATH

  • 引出内容

查看系统的所有环境变量

env

修改环境变量

vim /etc/profile [系统的环境变量]

 

修改个人的环境变量:

 

  1. head指令

head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容

  • 基本语法

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

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

  • 应用实例

案例: 查看/etc/profile 的前面5行代码

head -n 5 /etc/profile

 

  1. tail指令

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

  • 基本语法

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

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

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

  • 应用实例

案例1: 查看/etc/profile 最后5行的代码

案例2: 实时监控date.log , 看看到文件有变化时,是否看到, 实时的追加日期

 

  1. > 指令 >> 指令

> 输出重定向和 >> 追加

  • 基本语法

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

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

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

4) echo "内容">> 文件

  • 应用实例

案例1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中

ls –l /home/ > /home/info.txt [如果文件不存在,则会自动创建]

案例2: 将当前日历信息 追加到 /home/mycal 文件中

date >> /home/mycal

 

 

  1. ln 指令 (link)

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

  • 基本语法

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

  • 应用实例

案例1: 在/home 目录下创建一个软连接 linkToRoot,连接到 /root 目录

ln -s /root/ linkToRoot

案例2: 删除软连接 linkToRoot

rm –rf linkToRoot [在看]

 

 

 

  • 细节说明

当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。

 

 

  1. history指令

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

  • 基本语法

history    (功能描述:查看已经执行过历史命令)

  • 应用实例

案例1: 显示所有的历史命令

history

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

history 10

案例3: 执行历史编号为5的指令 !5

!5

 

  1. 时间日期类
    1. date指令-显示当前日期

 

  • 基本语法

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

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

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

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

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

 

  • 应用实例

案例1: 显示当前时间信息

date

案例2: 显示当前时间年月日

date "%Y-%m-%d"

案例3: 显示当前时间年月日时分秒

date "%Y-%m-%d %H:%M:%S"

  1. 使用date指令设置最新时间
  • 基本语法

date -s 字符串时间

  • 应用实例

案例1: 设置系统当前时间 , 比如设置成 2020-11-11 11:22:22

 

  1. cal指令
  • 查看日历指令
  • 基本语法

cal [选项]    (功能描述:不加选项,显示本月日历)

  • 应用实例

案例1: 显示当前日历

cal

案例2: 显示2020年日历

cal 2020

 

  1. 搜索查找类
    1. find指令

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

  • 基本语法

find [搜索范围] [选项]

  • 选项说明

    

 

  • 应用实例

案例1: 按文件名:根据名称查找/home 目录下的hello.txt文件

find /home -name hello.txt

案例2:按拥有者:查找/opt目录下,用户名称为 nobody的文件

find /opt -user nobody

案例3:查找整个linux系统下大于10M的文件(+n 大于 -n小于 n等于)

find / -size +10M

 

 

  1. locate指令
  • 说明

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

  • 基本语法

locate 搜索文件

  • 特别说明

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

  • 应用实例

案例1: 请使用locate 指令快速定位 hello.txt 文件所在目录

 

 

  1. grep指令和 管道符号 |
  • 说明

grep 过滤查找 , 管道符,"|",表示将前一个命令的处理结果输出传递给后面的命令处理。

 

  • 基本语法

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

  • 常用选项

 

 

    

  • 应用实例

案例1: 请在 /etc/profile 文件中,查找 "if" 所在行,并且显示行号

    grep –n if /etc/profile [在/etc/profile 中查找 if ,并显示行,区别大小写]

    grep –ni if /etc/profile [在/etc/profile 中查找 if ,并显示行,不区别大小写]

 

案例2: 配合 管道 | 使用案例, 查看当前服务器有没有 sshd 服务在监听.

 

  1. 压缩和解压类
    1. gzip/gunzip 指令

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

 

  • 基本语法

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

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

    

  • 应用实例

案例1: gzip压缩, 将 /home下的 hello.txt文件进行压缩

案例2: gunzip压缩, 将 /home下的 hello.txt.gz 文件进行解压缩

 

  1. zip/unzip 指令

zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的

 

  • 基本语法

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

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

  • zip常用选项

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

  • unzip的常用选项

-d<目录> :指定解压后文件的存放目录

  • 应用实例

案例1: 将 /home下的 所有文件进行压缩成 mypackage.zip [退出home]

zip -r mypackage.zip /home/

案例2: 将 mypackge.zip 解压到 /opt/tmp 目录下

unzip –d /opt/tmp mypackage.zip [如果/opt/tmp 不存在,会自动创建]

 

  1. tar 指令
  • 基本说明

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。 [可以压缩,和解压]

 

  • 基本语法

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

选项说明

 

  • 应用实例

1案例1: 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz 【zcvf】 zxvf

tar -zcvf a.tar.gz a1.txt a2.txt [注意,路径要写清楚]

2案例2: 将/home 的文件夹 压缩成 myhome.tar.gz

tar -zcvf myhome.tar.gz /home/ [注意,路径写清楚]

3案例3: 将 a.tar.gz 解压到当前目录

tar -zxvf a.tar.gz

4 案例4: 将myhome.tar.gz 解压到 /opt/tmp2目录下 【-C】

tar -zxvf myhome.tar.gz -C /opt/tmp2 [注意; /opt/tmp2 事先需要创建好]

 

 

 

 

 

 

  1. 组管理和权限管理
    1. Linux组基本介绍

    在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件

    有所有者、所在组、其它组的概念。

     

    1) 所有者

    2) 所在组

    3) 其它组

    4) 改变用户所在的组

     

    示意图:

     

     

     

     

    1. 文件/目录的所有者

     

    一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

     

    1. 查看文件的所有者
  • 指令:ls –ahl
  • 应用实例 :创建一个组police,再创建一个用户tom,将tom放在police组 ,然后使用 tom来创建一个文件 ok.txt,看看情况如何

 

 

 

  1. 修改文件所有者
  • 指令:chown 用户名 文件名
  • 应用案例

要求:使用root 创建一个文件apple.txt ,然后将其所有者修改成 tom

 

  1. 文件/目录的所在组
    1. 修改文件所在的组
  • 基本指令

chgrp 组名 文件名

  • 应用实例

使用root用户创建文件 orange.txt ,看看当前这个文件属于哪个组【root】,然后将这个文件所在组,修改到 police组。

chgrp police orange.txt

 

  1. 改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。

  • 改变用户所在组

1) usermod –g 组名 用户名

2) usermod –d 目录名 用户名 改变该用户登陆的初始目录。

  • 应用实例

创建一个土匪组(bandit)将 tom 这个用户从原来所在的police组,修改到 bandit(土匪) 组

Usermod -g bandit tom

 

  1. 权限的基本介绍

 

  1. rwx权限详解

  1. 修改权限-chmod

 

  1. 修改文件所有者-chown
    1. 基本介绍

chown newowner file 改变文件的所有者

chown newowner:newgroup file 改变用户的所有者和所有组

-R 如果是目录 则使其下所有子文件或目录递归生效

 

  • 案例演示:
  1. 请将 /home/abc.txt 文件的所有者修改成 tom
        chown tom /home/abc.txt
  2. 请将 /home/kkk 目录下所有的文件和目录的所有者都修改成tom
        chown –R tom /home/kkk
  3. 将home下的所有文件和目录的所有者都改成 tom,将所在组改成police
        chown –R tom:police /home/

     

    1. 修改文件所在组-chgrp
      1. 基本介绍

    chgrp newgroup file 改变文件的所有组

     

    1. 案例演示:
  4. 请将 /home/abc .txt 文件的所在组修改成 shaolin (少林)
        chgrp shaolin /home/abc.txt
  5. 请将 /home/kkk 目录下所有的文件和目录的所在组都修改成 shaolin(少林)
        chgrp -R shaolin /home/kkk

     

    1. 最佳实践-警察和土匪游戏

    police , bandit

     

    jack, jerry: 警察

    xh, xq: 土匪

  6. 创建组

    groupadd police

    groupadd bandit

  7. 创建用户

    useradd -g police jack

    useradd -g police jerry

    useradd -g bandit xh

    useradd -g bandit xq

    给分配密码

  8. jack 创建一个文件jack.txt,自己可以读写,本组人可以读,其它组没人任何权限

     

    登录后

    chmod 640 jack.txt

    提醒:如果我们希望同组的人可以读 jack.txt 文件,则需要将 jack 的家目录的权限打开.

    chmod g=rx /home/jack

  9. jack 修改该文件,让其它组人可以读, 本组人可以读写

    chmod g=rw, o=r jack.txt

  10. xh 投靠 警察,看看是否可以读写.(测试后,是ok, 注意需要重新登录)

    usermod -g police xh

     

    1. 课后练习

     

     

     

     

     

     

     

     

     

     

     

  11. 定时任务调度
    1. crond 任务调度

    crontab 进行 定时任务的设置,。

    1. 概述

    任务调度:是指系统在某个时间执行的特定的命令或程序。

    任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等

    2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。

    1. 基本语法

    crontab [选项]

    1. 常用选项

     

    1. 快速入门

    设置任务调度文件:/etc/crontab

    设置个人任务调度。执行crontab –e命令。

    接着输入任务到调度文件

        如:*/1 * * * * ls –l /etc/ > /tmp/to.txt

    意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt命令

    1. 参数细节说明

    1. 应用实例
      1. 案例1:每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate.log 文件中
        */1 * * * * date >> /tmp/mydate.log

    案例2:每隔1分钟, 将当前日期和日历都追加到 /home/mycal.log 文件中

            

     

    注意: 一定给 sh 脚本的执行权限.

     

    案例3: 每天凌晨2:00 将mysql数据库 testdb ,备份到文件中。

    步骤:1, 首先编写一个 脚本 backupdb.sh

    #!/bin/bash

    #备份路径

    BACKUP=/data/backup/sql/dy

    #当前时间

    DATETIME=$(date +%Y-%m-%d_%H%M%S)

    echo "===备份开始==="

    echo "备份文件存放于${BACKUP}/$DATETIME.tar.gz"

    #数据库地址

    HOST=localhost

    #数据库用户名

    DB_USER=root

    #数据库密码

    DB_PW=Ces123456

    #创建备份目录

    [ ! -d "${BACKUP}/$DATETIME" ] && mkdir -p "${BACKUP}/$DATETIME"

       

    #后台系统数据库

    DATABASE=dy_backgroundms

    mysqldump -u${DB_USER} -p${DB_PW} --host=$HOST -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATETIME/$DATABASE.sql.gz

       

    #投入品监管数据库

    DATABASE=dy_firip

    mysqldump -u${DB_USER} -p${DB_PW} --host=$HOST -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATETIME/$DATABASE.sql.gz

       

    #压缩成tar.gz包

    cd $BACKUP

    tar -zcvf $DATETIME.tar.gz $DATETIME

    #删除备份目录

    rm -rf ${BACKUP}/$DATETIME

       

    #删除30天前备份的数据

    find $BACKUP -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;

    echo "===备份成功==="

     

    步骤2: 给 /home/backupdb.sh 一个可以执行的权限

    chmod u+x backupdb.sh

    步骤3: 将backupdb.sh 部署到crontab

    crontab -e

    增加

    * 2 * * * /home/backupdb.sh

    到此ok!

     

  12. Linux磁盘分区、挂载
    1. 分区的基本知识
      1. 分区的方式(知道即可)

     

  • mbr分区:

1.最多支持四个主分区

2.系统只能安装在主分区

3.扩展分区要占一个主分区

4.MBR最大只支持2TB,但拥有最好的兼容性

 

  • gtp分区:

1.支持无限多个主分区(但操作系统可能限制,比如 windows下最多128个分区)

2.最大支持18EB的大容量(1EB=1024 PB,1PB=1024 TB )

3.windows7 64位以后支持gtp

 

  1. windows下的磁盘分区

 

  1. Linux分区
    1. 原理介绍
  1. Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。
  2. Linux采用了一种叫"载入(mount)"的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
  3. 示意图【分区和文件目录】

     

     

    1. 硬盘说明

    Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘

     

    对于IDE硬盘,驱动器标识符为"hdx~",其中"hd"表明分区所在设备的类型,这里是指IDE硬盘了。"x"为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),"~"代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。

     

    对于SCSI硬盘则标识为"sdx~",SCSI硬盘是用"sd"来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。sdb1 [表示第2块scsi 硬盘的第1个分区]

     

     

    1. 查看所有设备(光驱 /mediau盘, 硬盘)挂载情况
  • 命令 :lsblk 或者 lsblk -f

 

  1. 挂载的经典案例
    1. 说明:

下面我们以增加一块硬盘1G 为例来熟悉下磁盘的相关指令和深入理解磁盘分区、挂载、卸载的概念

 

  1. 增加一块硬盘的步骤

看老师的演示:

  1. 增加一块硬盘 1G [到设置中添加一块硬盘即可]
  2. 重启一下服务器

    lsblk

  3. 给sdb 硬盘分区

     

  4. 格式化 sdb1

    mdfs -t ext4 /dev/sdb1 [把 /dev/sdb1 分区格式化]

  5. 挂载

    mkdir /home/newdisk

    mount /dev/sdb1 /home/newdisk [说明;挂载时,不要在 /home/newdisk ]

  6. 上面的方式,只是临时生效,当你重启系统,挂载的关系没有, 配置linux的分区表,实现启动时,自动挂载.

    vim /etc/fstab

  7. 重启后,会自动挂载.
  8. 如果,我们希望卸载,指令

    umount 设备名 | 挂载路径

    umount /dev/sdb1

     

    1. 磁盘情况查询

     

    1. 查询系统整体磁盘使用情况
  • 基本语法

df -h

  • 应用实例

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

 

  1. 查询指定目录的磁盘占用情况
  • 基本语法

du -h /目录

查询指定目录的磁盘占用情况,默认为当前目录

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

-h 带计量单位

-a 含文件

--max-depth=1 子目录深度

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

  • 应用实例

查询 /usr目录的磁盘占用情况,深度为1

du -ach --max-depth= 1 /usr

 

  1. 磁盘情况-工作实用指令
  1. 统计/home文件夹下文件的个数
    ls –l /home/ | grep "^-" | wc -l
  2. 统计/home文件夹下目录的个数
    ls –l /home/ | grep "^d" | wc -l
  3. 统计/home文件夹下文件的个数,包括子文件夹里的
    ls –lR /home/ | grep "^-" | wc -l
  4. 统计/home文件夹下目录的个数,包括子文件夹里的
    ls –lR /home/ | grep "^d" | wc -l

    以树状显示home目录结构 [没有tree指令咋办, 使用yum 来安装]

    先安装

    yum install tree

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  5. linux的网络配置
    1. linux网络环境配置
      1. 自动获取

    说明

  6. 配置比较简单
  7. 每次启动linux后,分配的ip地址可能不一样。不适合做服务器

     

    1. 配置固定的ip地址

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

    如果希望配置生效

  8. reboot
  9. service network restart // 重启网络服务

     

    1. 修改主机名

     

     

     

     

     

     

     

  10. 进程管理(重点)
    1. 基本介绍
  11. 在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
  12. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器
  13. 每个进程都可能以两种方式存在的。前台 与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行[sshd , crond]。
  14. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

     

    1. 显示系统执行的进程

    ps -aux // 显示所有的进程

     

     

    ps -aux | grep sshd //查看sshd进程

     

     

    1. ps详解

    指令:ps –aux|grep xxx ,比如我看看有没有sshd服务

  • 指令说明

System V展示风格

USER:用户名称

PID:进程号

%CPU:进程占用CPU的百分比

%MEM:进程占用物理内存的百分比

VSZ:进程占用的虚拟内存大小(单位:KB)

RSS:进程占用的物理内存大小(单位:KB)

TTY:终端名称,缩写 .

STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等

STARTED:进程的启动时间

TIME:CPU时间,即进程使用CPU的总时间

COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

 

  1. 终止进程kill和killall
    1. 介绍:

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。

  1. 基本语法:

kill [选项] 进程号(功能描述:通过进程号杀死进程 -9 强制终止)

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

  1. 常用选项:

-9 :表示强迫进程立即停止

  1. 最佳实践:

案例1:踢掉某个非法登录用户【jack】

案例2: 终止远程登录服务sshd, 在适当时候再次重启sshd服务

案例3: 终止多个gedit 编辑器

killall gedit

案例4:强制杀掉一个终端 对于 bash

kill -9 对应的bash的进程号

 

 

  1. 查看进程树pstree
    1. 基本语法:

pstree [选项] ,可以更加直观的来看进程信息

 

  1. 常用选项:

-p :显示进程的PID

-u :显示进程的所属用户

  1. 应用实例:
  1. 案例1:请用树状的形式显示进程的pid

    Pstree -p

    案例2:请用树状的形式进程的用户id

    Pstree –u

    Pstree -pu

     

    1. 服务(service)管理

    介绍:

    服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。【原理图】

     

    service管理指令:

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

    在CentOS7.0后 不再使用service ,而是 systemctl

    使用案例:

    1) 查看当前防火墙的状况,关闭防火墙和重启防火墙。

    Service iptables status

    细节讨论:

    关闭或者启用防火墙后,立即生效。[telnet 测试 某个端口即可]

        service iptables stop , service iptables start

    这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。

    如果希望设置某个服务自启动或关闭永久生效,要使用chkconfig指令。

     

     

     

     

     

     

     

    1. 动态监控进程

     

    1. 介绍:

    top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程(默认每3秒变化一次)。

    基本语法:

    1. top [选项]

     

    1. 选项说明:

  • top 指令的说明

 

 

 

 

  1. 监控网络状态
  • 查看系统网络情况netstat
  • 基本语法

netstat [选项]

  • 选项说明

-an 按一定顺序排列输出

-p 显示哪个进程在调用

 

应用案例

请查看服务名为 sshd 的服务的信息。

  • Netstat –anp | grep sshd
  • 如果我们希望查看当前系统有哪些端口在监听

netstat -tlnp

 

 

  1. 百度面试题:

问题:Linux常用命令,至少6个(netstat , top , lsblk , find , ps , chkconfig )

 

  1. 瓜子二手车题:

问题:Linux查看内存、磁盘存储、io 读写(iotop)、端口占用、进程等命令

 

top

df –lh

Netstat –tunlp

Ps –aux | grep 进程名

Iotop , 如果没有,就先安装一把

 

  1. rpm 和 yum软件安装
    1. rpm包的管理

    介绍:

     

    一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。

     

    Linux的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。

     

    1. rpm 常用的指令

     

    1. 卸载rpm包:
  • 基本语法

rpm -e RPM包的名称

  • 应用案例

删除firefox 软件包

rpm -e firefox

  • 细节讨论

1) 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。

如: $ rpm -e foo

removing these packages would break dependencies:foo is needed by bar-1.0-1

2) 如果我们就是要删除 foo这个rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行

如:$ rpm -e --nodeps foo      [小心使用]

 

  1. 安装rpm包:
  • 基本语法

rpm -ivh RPM包全路径名称

  • 参数说明

    i=install 安装

v=verbose 提示

h=hash 进度条

  • 应用实例

 

演示卸载和安装firefox浏览器

提示:很多的rpm包,就在我们的centos安装的镜像文件中

 

  1. yum的使用

转载于:https://www.cnblogs.com/songdanlee/p/10640414.html

你可能感兴趣的文章
P3565 [POI2014]HOT-Hotels
查看>>
MongoDB的简单使用
查看>>
prometheus配置
查看>>
【noip2004】虫食算——剪枝DFS
查看>>
python 多进程和多线程的区别
查看>>
sigar
查看>>
iOS7自定义statusbar和navigationbar的若干问题
查看>>
[Locked] Wiggle Sort
查看>>
deque
查看>>
c#中从string数组转换到int数组
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
toad for oracle中文显示乱码
查看>>
SQL中Group By的使用
查看>>
两个表格中数据不用是一一对应关系--来筛选不同数据,或者相同数据
查看>>
hiho_offer收割18_题解报告_差第四题
查看>>
AngularJs表单验证
查看>>
静态方法是否属于线程安全
查看>>