• 大数据技术之_01_Linux学习_01_linux的入门+VM和linux的安装+linux的目录结构+远程登录到linux服务器+vi和vim编辑器+开机、重启和用户登录注销+用户管理+用户组管理+实用指令


    1 linux的入门1.1 Linux的介绍2 VM和linux的安装2.1 安装vm和Centos2.1.1 基本说明2.1.2 CentOS安装的步骤2.1.3 CentOS安装技术难点 -> 网络配置三种方式理解(难点)2.2 Centos终端的使用和联网2.2.1 Centos自带终端的使用2.2.2 在centos的火狐可以联网,可以和外部的ip拼通3 linux的目录结构3.1 linux目录结构3.2 linux目录机构的一览图3.3 对linux目录结构的小结4 远程登录到linux服务器4.1 为什么需要远程登录linux4.2 远程登录Linux -> Xshell64.3 远程上传下载文件Xftp64.4 SecureCRT的安装和使用5 vi和vim编辑器5.1 vi和vim的基本介绍5.2 vi和vim三种模式的切换5.3 vi和vim的快速入门小案例5.4 vi和vim的快捷键的使用6 开机、重启和用户登录注销6.1 关机&重启命令6.1.1 常见的指令如下6.1.2 注意细节6.2 用户的登录和注销6.2.1 基本介绍6.2.2 使用细节7 用户管理7.1 linux的用户和权限的关系示意图7.2 基本介绍7.3 添加用户7.4 指定/修改密码7.5 删除用户7.6 查询用户信息指令7.7 切换用户7.8 查看当前用户/登录用户8 用户组管理8.1 新增组8.2 删除组8.3 增加用户时直接指定用户的家目录和用户组8.4 修改用户所属的用户组8.5 用户和组的相关文件9 实用指令9.1 运行级别9.2 指定运行级别9.2.1 CentOS 6X指定当前运行级别9.2.2 CentOS 7X指定运行级别9.3 面试题9.4 帮助指令9.5 文件和目录相关的指令9.5.1 pwd指令9.5.2 ls指令9.5.3 cd指令9.5.4 mkdir指令9.5.5 rmdir指令9.5.6 touch指令9.5.7 cp指令9.5.8 rm指令9.5.9 mv指令9.5.10 cat指令9.5.11 more指令9.5.12 less指令9.5.13 >指令和>>指令9.5.14 echo指令9.5.15 head指令9.5.16 tail指令9.5.17 ln指令9.5.18 history指令9.6 时间日期类相关的指令9.6.1 date指令-显示当前日期9.6.2 date指令-设置日期9.6.3 cal指令-显示日历搜索查找类9.7 搜索查找类相关的指令9.7.1 find指令9.7.2 locate指令9.7.3 grep指令和管道符号|9.8 压缩和解压类相关的指令9.8.1 gzip/gunzip 指令9.8.2 zip/unzip 指令9.8.3 tar 指令


    1 linux的入门

    1.1 Linux的介绍

    1、Linux怎么读? 推荐读法:里纽克斯

    2、Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目都会部署到Linux/unix系统上。

    3、常见的操作系统(Win7/Win10、IOS、Android、Mac)。

    4、Linux 吉祥物。


      该标志的由来是因为Linus在澳洲时曾被一只动物园里的企鹅咬了一口,便选择了企鹅作为Linux的标志。

    5、Linux的创始人

    6、Linux主要的发行版:
      Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、OpenSUSE

    7、Linux和Unix的关系 -> Unix是怎么来的

      1943年汤普逊出生于美国新奥尔良。1960年就读加州大学伯克利分校主修电气工程,取得了电子工程硕士的学位。1966年加入了贝尔实验室。汤普逊参与了贝尔实验室与麻省理工学院以及通用电气公司联合开发的一套多用户分时操作系统,名叫Multics,同时他自己写了一个“star travel”游戏可运行于Multics之上。贝尔实验室后来撤出Multics计划。汤普逊只好找到一台老式PDP-7机器,重写了他的“star travel”游戏。
      在开发Multics的期间,汤普逊创造出了名为Bon的程式语言。汤普逊花了一个月的时间开发了全新的操作系统,UNiplexed Information and Computing System(UNICS),可执行于PDP-7机器之上,后来改称为UNIX。第一版的Unix就是基于B语言来开发的。Bon语言在进行系统编程时不够强大,所以Thompson和Ritchie对其进行了改造,并于1971年共同发明了C语言。1973年Thompson和Ritchie用C语言重写了UNIX。安装于PDP-11的机器之上。
      1983年,美国计算机协会将杜林奖(图灵奖)授予汤普逊与丹尼斯。
      2000年12月时,汤普逊退休,离开贝尔实验室,成为了一名飞行员
      美国贝尔实验室是晶体管太阳能电池数字交换机通信卫星有声电影等许多重大发明的诞生地。自成立年以来,贝尔实验室共获得两万七千多项专利,平均每个工作日获得4项多专利。一共获得8项诺贝尔奖(其中7项物理学奖,1项化学奖)。
      Unix 的使用成本很高,不是想用就用的起的!
      1、5万美元起价 【当时可以购买一套美国别墅】
      2、需要性能高端服务器


    理查德·马修·斯托曼是世界最著名的黑客。
    毕业于哈佛大学,是美国国家工程院院士。
    取得最大的成就,就是发起GNU计划,提倡软件的源码可以被阅读并在规定下进行改版。

    8、Linux和Unix的关系 -> Linux是怎么来的
    伟大的GNU计划:


    Linux的完成的称呼应该是 GNU/Linux,我们简称Linux。

    javaEE和大数据一般使用CentOS。
    Python一般使用Ubuntu。

    2 VM和linux的安装

    2.1 安装vm和Centos

    2.1.1 基本说明

    学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习。
    1) 先安装virtual machine,VM12 Pro
    2) 再安装Linux (CentOS )
    3) 原理示意图如下:

    2.1.2 CentOS安装的步骤

    1) 创建虚拟机
    2) 开始安装系统(CentOS6.8)
    3) 具体的步骤看以下链接
    参考链接:
    安装VMware12的补充:要先去BIOS里修改设置开启虚拟化设备支持(开机的瞬间狂按f2或f10进入BIOS),修改如下图所示:


      VMware10.0 && VMware12.0 Pro && VMware14.0 Pro && VMware 15.0 Pro 的安装与破解
      VMware12.0 Pro 中安装 CentOS-7.5(桌面版)
      VMware12.0 Pro 中安装 CentOS 6.8_超详解 + 高清大图

    安装CentOS-7.5(桌面版)的补充:手动分区
    Linux系统Linux至少有三个分区:
    第一个分区:创建标准分区,挂载点是 /boot,文件系统类型为ext4,是Linux系统在启动或引导的时候需要的文件所放在的位置,大小一般200M足够。
    第二个分区:创建标准分区,没有挂载点,文件系统类型为swap,是Linux系统的交换分区,相当于Windows的虚拟内存,大小一般跟Linux系统分配的物理内存相同或者是其2倍。作用是:当Linux系统内存不够用的时候,临时充当内存使用,效率比实际物理内存要低一点,比物理硬盘要高。
    第三个分区:创建标准分区,挂载点是/,文件系统类型为ext4,是Linux系统的根分区。大小是剩余的全部可用空间。
    说明:也可以使用将除去 /boot 和 swap 分区的所有空间分配给 / 根分区的方式。

    2.1.3 CentOS安装技术难点 -> 网络配置三种方式理解(难点)

    这里,在面试的时,有可能面试官问关于桥接模式NAT模式主机模式的含义和区别?
    虚拟机的三种网络配置方式的说明:

    网络连接类型的选择,网络连接类型一共有桥接NAT仅主机不联网四种。
    桥接:选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上。
    NAT:NAT模式就是虚拟机要联网得先通过宿主机才能和外面进行通信。
    仅主机:虚拟机与宿主机直接连起来。
    桥接与NAT模式访问互联网过程,如下图所示:

    2.2 Centos终端的使用和联网

    2.2.1 Centos自带终端的使用

    2.2.2 在centos的火狐可以联网,可以和外部的ip拼通

    这里,我们仅仅简单的动态的分配ip(后面我们要学习固定分配ip)。
    参考链接:虚拟机CentOS 7.5 如何固定IP地址

    3 linux的目录结构

    3.1 linux目录结构

      Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
      深刻理解Linux树状文件目录是非常重要的,这里我给大家说明一下。
      记住一句经典的话:在Linux世界里,一切皆文件。(即使是一个硬件设备,也是使用文件来标识的,即把硬件映射成一个文件)

    3.2 linux目录机构的一览图


    具体的目录说明:
    1、

    2、

    3、

      /proc、/srv、/sys 目录是高手的修改的地方,目前水平不用去修改。【属于Linux内核部分】

    4、


    比如:
      /dev 就有 cpu 、disk 等等。
      /mnt 可以实现磁盘扩容。
    5、

      /opt 放将要安装的软件程序,所以工作时,我们尽量将安装软件放到这个统一的目录下。
      /selinux 是一个安全系统,类似360安全卫士。当有黑客入侵到服务器后,就会触发/selinux 安全系统。

    3.3 对linux目录结构的小结

    1) 在linux中,目录结构有且仅有一个 根目录/ 其他的目录都是在 /目录分支里。
    2) 在linux中,有很多目录,每个目录都会存放相应的内容,不要随意去修改。
    3) 在linux中,所有的设备都可以通过文件来体现(比如字符设备文件[键盘、鼠标等],块设备文件[硬盘])。
    4) 在学习linux时,要尽快的在脑海中,形成一个目录树

    4 远程登录到linux服务器

    4.1 为什么需要远程登录linux


    终端工具对比:

    4.2 远程登录Linux -> Xshell6

    Xshell 是目前最好的远程登录到Linux操作的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。
    Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的 TELNET 协议。
    Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。

    特别说明:如果希望安装好的XShell可以访问Linux系统的话,需要有一个前提:就是Linux启用了sshd的服务,该服务会监听22号端口。

    Xshell6使用方法:


    点击【新建】

    填写信息

    由于是第一次连接,点击【接受并保存】

    输入登录Linux系统的用户名

    输入登录密码

    远程连接成功后的截图

    Xshell自动保存用户名和密码后的更改方法

    4.3 远程上传下载文件Xftp6

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

    注意:Xftp6使用方法同Xshell6使用方法!这里不再赘述。不同的地方:协议要选择SFTP

    简便方法:我们可以在Xshell6界面点击【新建文件传输】按钮直接进入Xftp6界面。


    效果:

    显示中文乱码解决:

    点击【确定】之后,刷新,就可以解决显示中文乱码问题!

    4.4 SecureCRT的安装和使用

    SecureCRT是用于远程登录Linux的软件。SecureCRT 也是一款常用的远程登录Linux的软件,在大数据开发中使用较多。
    注意:在大数据开发中使用什么终端软件都可以,没有什么是必须使用的。

    SecureCRT8.1.4整合汉化绿色版:
    下载链接:
      https://share.weiyun.com/1b080cae17c0d66755b100228dce0f31(密码:WV98)
    破解教程:自己网上下载SecureCRT v8.x 注册机。

    SecureCRT v8.x 注册机使用说明:
    [基本信息]
    SecureCRT v8.x 注册机,TEAM Z.W.T 出品,MD5 = 44114b98d90f8bfc9e18c285937ca092

    [使用说明]
    1. 先不要运行 SecureCRT
    2. 建议把注册机放到安装目录(放在其他目录也可以)
    3. 运行securecrt8.0_注册机
    4. 点击 Patch,此时会让你选择 SecureCRT.exe 和 LicenseHelper.exe 的位置
    5. 应用 Patch 成功之后,会出现 SecureCRT.exe 和 LicenseHelper.exe 的 .bak 备份文件
    6. 此时以管理员身份再运行 SecureCRT,会先弹要你注册,点击下一步,再点击 Enter License Manually 
    7. 复制粘帖注册机上的 License 里面的内容到指定的编辑框, 点击下一步,OK

    注意:默认打开CRT时候会是一个输入key的页面,什么都不输入,点击下一步

    SecureCRT无法启动的解决方法:
      https://www.cnblogs.com/chenmingjun/p/9938765.html

    使用步骤:


    填写连接信息

    选择SecureFX协议

    给回话起名字,任意,原则:见名知意

    开始连接

    接受并保存

    输入Linux系统的用户名和密码

    连接成功后截图:

    中文乱码解决:

    5 vi和vim编辑器

    5.1 vi和vim的基本介绍

    所有的 Linux 系统都会内建 vi 文本编辑器。
    Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
    我们只需要掌握它的基本使用即可。

    5.2 vi和vim三种模式的切换

    正常模式:
    以 vim 打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理你的文件数据。在正常模式下可以使用快捷键。
    插入模式(编辑模式):
    按下i(insert), I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式,一般来说按i即可。
    命令行模式
    在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中完成的。

    5.3 vi和vim的快速入门小案例

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

    5.4 vi和vim的快捷键的使用

    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【在正常模式下使用】
      1、显示行号 :set nu
      2、输入20
      3、输入Shift+g

    vi和vim键盘图

    6 开机、重启和用户登录注销

    6.1 关机&重启命令

    6.1.1 常见的指令如下

    shutdown -h now     【立刻关机】
    shutdown -h 1       【1分钟后,关机】
    shutdown -r now     【立刻重启】
    shutdown -r 2       【2分钟后,重启】
    halt                【立刻关机】
    reboot              【立刻重启】

    在重启和关机前,通常需要先执行
    sync                【把内存的数据,写入磁盘】

    6.1.2 注意细节

    建议:不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。这是个好习惯!

    6.2 用户的登录和注销

    6.2.1 基本介绍

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

    6.2.2 使用细节

    1) logout注销指令在图形运行级别运行该指令无效,在运行级别 3下运行该指令有效。(简单提一下:0-6个级别)
    2) 运行级别这个概念,后面给大家介绍。

    7 用户管理

    7.1 linux的用户和权限的关系示意图

    7.2 基本介绍

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

    7.3 添加用户

    基本语法
      useradd [选项] 用户名

    案例演示
      添加一个用户xiaoming

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

    7.4 指定/修改密码

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

    案例演示
      给xiaoming用户指定密码
      passwd xiaoming // 需要使用root用户,这样权限才够

    7.5 删除用户

    基本语法
      userdel 用户名

    案例演示
      删除用户xiaoming,但是要保留家目录 userdel xiaoming
      删除用户以及用户家目录 userdel –r xiaohong 【小心使用】

    细节说明
      是否保留家目录的讨论? [建议一般保留]

    linux彻底删除用户

    删除用户xiaoming,如果我们直接使用userdel xiaoming,那么并不能删除该用户账号所有相关信息,只是删除掉了/etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow 四个文件里的该账户和组的信息。因为默认情况下创建一个用户账号,设置好密码后,会创建一个家目录和一个用户邮箱(在/var/spool/mail目录以用户名命名)。我们可以使用find命令来查找所有与该用户相关的文件信息【find / -name "xiaoming"】。如下图所示:

    7.6 查询用户信息指令

    基本语法
      id 用户名

    案例演示
      请查询root信息

    细节说明
      当用户不存在时,返回“无此用户”。

    7.7 切换用户

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

    基本语法
      su - 切换用户名

    案例演示
      创建一个用户xiaojun,指定密码,然后切换到xiaojun。

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

    7.8 查看当前用户/登录用户

    基本语法
      whoami / who am i

    8 用户组管理

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

    8.1 新增组

    新增组
      groupadd 组名

    案例演示
      groupadd wudang

    8.2 删除组

    删除组
      groupdel 组名

    案例演示
      groupdel wudang
      注意:这里有一个前提,就是这个用户组没有用户,才能被删除。

    8.3 增加用户时直接指定用户的家目录和用户组

      1、创建一个用户,名字叫abc,主目录是/home/abc/目录,属于aabb这个组。
      useradd -d /home/abc/ abc -m -g aabb

    -d的意思是指定用户的主目录 
    -m的意思是,如果主目录不存在,那么就自动创建这个目录 
    -g的意思是指定该用户属于哪个组

      2、增加一个用户zwj, 直接将他指定到用户组wudang。
      useradd zwj -g wudang

    8.4 修改用户所属的用户组

    修改用户所属的用户组
      usermod 用户名 –g 新的组名

    案例演示
      创建一个shaolin用户组,让将zwj用户修改到shaolin用户组。

    8.5 用户和组的相关文件

    /etc/passwd 文件
      用户(user)的配置文件,记录用户的各种信息。
      每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell的种类

    /etc/shadow 文件
      口令的配置文件。
      每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留

    /etc/group 文件
      组(group)的配置文件,记录Linux包含的组的信息。
      每行含义:组名:口令:组标识号:组内用户列表

    9 实用指令

    9.1 运行级别

    基本介绍
    运行级别说明:

    0 :关机 
    1 :单用户【类似安全模式,这个模式可以帮助找回root密码】
    2 :多用户状态没有网络服务
    3 :多用户状态有网络服务【使用最多】
    4 :系统未使用保留给用户
    5 :图形界面
    6 :系统重启

    常用运行级别是3和5,我们可以修改默认的运行级别文件。

    9.2 指定运行级别

    CentOS 6X 和 CentOS 7X 的指定运行级别的方式有区别!!!
    CentOS 6X 是通过修改/etc/inittab 来修改默认运行级别的。

    9.2.1 CentOS 6X指定当前运行级别

      查看vim /etc/inittab文件


      id:5:initdefault:
      命令:init [012356]
      通过init来切换不同的当前运行级别,比如:5、3,然后关机。
      init 5
      init 3
      init 0

    9.2.2 CentOS 7X指定运行级别

      查看vim /etc/inittab文件


    我们可以看到,里面除了注释,什么也没有,并没有CentOS 6X中设置默认运行当前级别的方式。
    注释内容大意是说:
    # multi-user.target类似于runlevel 3
    # graphical.target类似于runlevel5

    #获得默认运行级别的方式
    systemctl get-default

    #设置默认运行级别的方式
    systemctl set-default TARGET.target

    运行级别对应表如下图所示:

    CentOS 7X 设置运行级别
    命令格式:systemctl [command] [unit.target]
    参数详解:command:

        get-default     获得当前的target
        set-default     设置指定的target为默认的运行级别
        isolate         切换到指定的运行级别

    unit.target 为运行级别对应表中列出的运行级别,如下图所示:


    注:上表前两行是设置默认运行级别(重启系统生效),后两行是设置当前运行级别(立即生效)。

    CentOS 7X 系统演示

    9.3 面试题

    1、请设置我们的Linux运行级别,linux运行后,直接进入到命令行终端(3级别)
    答:对于CentOS 6X而言,编辑vim /etc/inittab文件即可,修改为:id:3:initdefault:
    对于CentOS 7X而言,命令是:systemctl set-default multi-user.target(重启linux系统后生效)
    扩展:如果将运行级别设置为0,即Linux系统一开机就立马关机,那么我们如何解决这个问题?
    答:思路同下。即进入单用户运行级别,然后修改inittab文件

    2、假设我们的root用户的密码忘记了,请问如何找回密码?
    思路:进入单用户运行级别,然后修改root密码。因为单用户运行级别不需要密码就可以使用root身份登录。
    答:Linux系统启动时 -> 快速输入Enter -> 输入e -> 进入到编辑界面 -> 选择中间有kernel项 -> 再输入e(edit) -> 在该行的最后写入空格和1 [表示修改内核,临时生效] -> 再输入Enter -> 输入b [boot] -> 进入到单用户模式【这里就可以做补救工作了】。
    截图如下:
    Linux系统启动时,快速输入Enter


    输入e,进入到编辑界面,选择中间有kernel项

    再输入e(edit),在该行的最后写入空格和1 [表示修改内核,临时生效],再输入Enter

    输入b [boot],进入到单用户运行级别【这里就可以做补救工作了】

    单用户运行级别不需要密码就可以使用root身份登录,此时我们使用root用户修改密码即可。

    思考:root用户的密码都可以随意修改,Linux的安全性体现在哪里呢?
    答:上述修改root用户密码的前提:不能远程登录,必须在这个Linux服务器所在的电脑上进行操作。换言之,这个Linux服务器就在我们身边,触手可及,是我们自己的东西,我们对于我们自己的东西,想怎么整都行!何况小小的修改密码的操作。

    9.4 帮助指令

    • 当我们对某一个指令不熟悉的时候,我们可以使用Linux提供的帮助指令来了解这个指令的使用方法。
    • man获得帮助信息
      • 基本语法:
          man [命令或配置文件](功能描述:获得帮助信息)
      • 应用实例:
          案例:查看ls命令的帮助信息
    • help指令
      • 基本语法:
          help 命令 (功能描述:获得shell内置命令的帮助信息)
      • 应用实例:
          案例:查看cd命令的帮助信息
    • 百度帮助更直接
      • 虽然上面两个都可以来获取指令帮助,但是需要英语功底,如果英语不太好的,我还是推荐大家直接百度靠谱。

    9.5 文件和目录相关的指令

    9.5.1 pwd指令

    • 基本语法:
      pwd (功能描述:显示当前工作目录的绝对路径)
    • 应用实例:
      案例:显示当前工作目录的绝对路径。

    9.5.2 ls指令

    • 基本语法:
      ls [选项] [目录或是文件]
    • 常用选项:
      -a :显示当前目录所有的文件和目录,包括隐藏的(文件名以.开头就是隐藏)。
      -l :以列表的方式显示信息
      -h :显示文件大小时,以 k, m, G 单位显示
    • 应用实例:
      案例:查看当前目录的所有内容信息。

    9.5.3 cd指令

    • 基本语法:
      cd [参数] (功能描述:切换到指定目录)
    • 常用参数:
      绝对路径【从 / 开始定位】和相对路径【从当前的位置开始定位】
      cd ~ 或者 cd 回到自己的家目录
      cd .. 回到当前目录的上一级目录
    • 应用实例:
      案例1:使用绝对路径切换到root目录 cd /root
      案例2:使用相对路径到/root目录 cd ../root (用户在/home目录下)
      案例3:表示回到当前目录的上一级目录 cd ..
      案例4:回到家目录 cd ~

    9.5.4 mkdir指令

    • 说明:
      mkdir 用于创建目录 [make directory]
    • 基本语法:
      mkdir [选项] 要创建的目录
    • 常用选项:
      -p :创建多级目录
    • 应用实例:
      案例1:创建一个目录 /home/dog mkdir /home/dog
      案例2:创建多级目录 /home/animal/tiger mkdir -p /home/animal/tiger

    9.5.5 rmdir指令

    • 说明:
      rmdir 用于删除空目录 [remove directory]
    • 基本语法:
      rmdir [选项] 要删除的空目录
    • 应用实例:
      案例1:删除一个目录 /home/dog
        rmdir /home/dog [前提 /home/dog 是空目录]
    • 使用细节:
      rmdir 删除的是空目录,如果目录下有内容时无法删除的。
        提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录

    9.5.6 touch指令

    • 说明:
      touch 用于创建空文件,还可以更新文件的修改时间。
    • 基本语法:
      touch 文件名称
    • 应用实例:
      案例1:创建一个空文件 hello.txt touch hello.txt
        提示:如果文件存在,则表示刷新该文件的修改时间。
      案例2:创建多个空文件 hello.txt haha.txt touch hello.txt haha.txt

    9.5.7 cp指令

    • 说明:
      cp 用于拷贝文件到指定目录 [copy 拷贝]
    • 基本语法:
      cp [选项] source【源文件或者源目录】 dest【目的目录】
    • 常用选项:
      -r :递归复制整个文件夹 [r:recursive 递归]
    • 应用实例:
      案例1:将 /home/aaa.txt 拷贝到 /home/bbb/ 目录下 cp /home/aaa.txt /home/bbb/
      案例2:递归复制整个文件夹,举例:将 /home/ 整个目录拷贝到 /opt/ 目录下 cp -r /home/ /opt/
    • 使用细节:
      当发现目标目录下有相同的文件,会提示是否覆盖,很烦人,强制覆盖不提示的方法:cp
    • 建议
      /表示的是根目录,/home//home都表示的是根目录下的home目录,但是建议home目录写成home/会更专业,这样避免出现歧义。即xxx目录最好写成xxx/,正斜杠最好别省略!强烈推荐多使用绝对路径,少用相对路径!脑海中要有清晰的Linux目录树结构图。

    9.5.8 rm指令

    • 说明:
      rm 用于移除文件或目录
    • 基本语法:
      rm [选项] 要删除的文件或目录
    • 常用选项:
      -r :递归删除整个文件夹 [r=recursive 递归]
      -f :强制删除不提示 [f=force 强制]
      -rf :强制递归删除整个文件夹不提示
    • 应用实例:
      案例1:将 /home/aaa.txt 删除 rm /home/aaa.txt
      案例2:递归删除整个文件夹 /home/bbb/ 命令 rm –r /home/bbb/
    • 使用细节
      强制删除不提示的方法:带上 -f 即可
      rm –rf /home/bbb/

    9.5.9 mv指令

    • 说明:
      mv 移动文件与目录或重命名
    • 基本语法:
      1) mv oldNameFile newNameFile (功能描述:重命名)前提:要先有oldFile存在,才是重命名
      2) mv /temp/moveFile /targetFolder/ (功能描述:移动文件或目录)
    • 应用实例:
      案例1:将 /home/aaa.txt文件 重新命名为 pig.txt,前提:aaa.txt文件先存在,才是重命名。
      案例2:将 /home/pig.txt文件 移动到 /root/ 目录下,前提:/root/ 目录下没有改文件,是移动。

    9.5.10 cat指令

    • 说明:
      cat 查看文件内容
    • 基本语法:
      cat [选项] 要查看的文件
    • 常用选项:
      -n :显示行号
    • 应用实例:
      案例1:查看 /ect/profile文件 内容,并显示行号。命令:cat -n /etc/profile | more
        cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 | more
        cat xxx.txt | more (把 cat xxx.txt 输出结果交给 more 处理),如下图所示:

    9.5.11 more指令

    • 说明:
      more指令是一个基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
    • 基本语法:
      more 要查看的文件
    • 操作说明:
      more指令中内置了若干快捷键,详见操作说明如下图:
    • 应用实例:
      案例: 采用more查看 more /etc/profile文件

    9.5.12 less指令

    • 说明:
      less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
    • 基本语法:
      less 要查看的文件
    • 操作说明:
    • 应用实例:
      案例: 采用less查看一个大文件,比如大型日志文件

    9.5.13 >指令和>>指令

    • 说明:
      > 输出重定向>> 追加
    • 基本语法:
      1) ls -l > 文件   (功能描述:把列表的内容写入文件a.txt中(覆盖写),如果文件a.txt不存在就创建并写入,如果文件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/mydate 或者 cal >> /home/mycal

    9.5.14 echo指令

    • 说明:
      echo 用于输出内容到控制台。
    • 基本语法:
      echo [选项] [输出内容]
    • 应用实例:
      案例1:使用echo指令输出环境变量,输出当前的环境路径。
      案例2:使用echo指令输出文"Hello World"。

    9.5.15 head指令

    • 说明:
      head 用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
    • 基本语法:
      1) head 文件   (功能描述:默认查看文件头10行内容)
      2) head -n 5 文件   (功能描述:查看文件头5行内容,5可以是任意行数)
    • 应用实例:
      案例:查看 /etc/profile 的前面5行代码。

    9.5.16 tail指令

    • 说明:
      tail 用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
    • 基本语法:
      1) tail 文件   (功能描述:默认查看文件后10行内容)
      2) tail -n 5 文件   (功能描述:查看文件后5行内容,5可以是任意行数)
      3) tail -f 文件   (功能描述:实时追踪该文档的所有更新)该命令在工作中经常用。
    • 应用实例:
      案例1:查看 /etc/profile文件 最后5行的内容

      案例2:实时监控某文件,看到当该文件有变化时,就会实时看到变化。

      最常使用查看tomcat启动日志文件命令:tail -f logs/catalina.out

    9.5.17 ln指令

    • 说明:
      软链接[link]也成为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径。
    • 基本语法:
      ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
    • 应用实例:
      案例1:在 /home/ 目录下创建一个软连接,名为 linkToRoot,连接到 /root/ 目录
        ln -s /root/ linkToRoot
      案例2: 删除软连接 linkToRoot
        rm –rf linkToRoot
      注意:删除软连接的时候,不要带正斜杠!否则会删除掉软连接对应的目录!
    • 细节说明:
      当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。

    9.5.18 history指令

    • 说明:
      查看已经执行过历史命令,也可以执行历史指令。
    • 基本语法:
      history (功能描述:查看已经执行过历史命令)
    • 应用实例:
      案例1:显示所有的历史命令。history
      案例2:显示最近使用过的10个指令。history 10
      案例3:执行历史编号为5的指令:!5。``

    9.6 时间日期类相关的指令

    9.6.1 date指令-显示当前日期

    • 说明:
      显示当前日期
    • 基本语法:
      1) date (功能描述:显示当前时间)
      2) date +%Y (功能描述:显示当前年份)
      3) date +%m (功能描述:显示当前月份)
      4) date +%d (功能描述:显示当前是哪一天)
      5) date "+%Y-%m-%d %H:%M:%S" (功能描述:显示年月日时分秒)
    • 应用实例:
      案例1:显示当前时间信息。
      案例2:显示当前时间年月日。
      案例3:显示当前时间年月日时分秒。

    9.6.2 date指令-设置日期

    • 基本语法:
      date -s 字符串时间
    • 应用实例:
      案例1:设置系统当前时间,比如设置成 2020-11-11 11:22:22

    9.6.3 cal指令-显示日历搜索查找类

    • 说明:
      查看日历指令
    • 基本语法:
      cal [选项](功能描述:不加选项,显示本月日历)
    • 应用实例:
      案例1:显示当前日历。
      案例2:显示2050年日历。

    9.7 搜索查找类相关的指令

    9.7.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 (注意:k要小写,M要大写)

    9.7.2 locate指令

    • 说明:
      locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻
    • 基本语法:
      locate 搜索文件
    • 特别说明:
      由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
    • 应用实例:
      案例1:请使用locate指令快速定位 hello.txt 文件所在目录
        updatedb // 创建locate的数据库
        locate hello.txt

    9.7.3 grep指令和管道符号|

    • 说明:
      grep 过滤查找,管道符“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
    • 基本语法:
      grep [选项] 查找内容 源文件
    • 常用选项:
    • 应用实例:
      案例1:请在 /etc/profile 文件中,查找 "if" 所在行,并且显示行号。
        cat /etc/profile | grep -n if [在/etc/profile 中查找 if ,并显示行,区别大小写]
        cat /etc/profile | grep -ni if [在/etc/profile 中查找 if ,并显示行,不区别大小写]

    9.8 压缩和解压类相关的指令

    9.8.1 gzip/gunzip 指令

    • 说明:
      gzip 用于压缩文件,gunzip 用于解压文件。
    • 基本语法:
      gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
      gunzip 文件.gz (功能描述:解压缩文件命令)
    • 特别说明:
      当我们使用gzip对文件进行压缩后,不会保留原来的文件。
    • 应用实例:
      案例1:gzip压缩,将 /home/ 下的 hello.txt文件 进行压缩
      案例2:gunzip压缩,将 /home/ 下的 hello.txt.gz文件 进行解压缩

    9.8.2 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/ 目录不存在,会自动创建]

    9.8.3 tar 指令

    • 说明:
      tar 是打包指令,最后打包后的文件是 xxx.tar.gz 的文件。[可以压缩,和解压缩]
    • 基本语法:
      tar [选项] xxx.tar.gz 打包的内容/目录 (功能描述:打包目录或文件,压缩后的文件格式 xxx.tar.gz)
    • 选项说明:
    • 应用实例:
      案例1:压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz,命令 tar -zcvf a.tar.gz a1.txt a2.txt
      案例2:将 /home/ 文件夹压缩成 myhome.tar.gz,命令 tar -zcvf myhome.tar.gz /home/
      案例3:将 a.tar.gz 解压到当前目录,命令 tar -zxvf a.tar.gz
      案例4:将 myhome.tar.gz 解压到 /opt/tmp2/目录下,命令 tar -zxvf myhome.tar.gz -C /opt/tmp2/
    • 特别说明:
      解压到指定目录的前提:指定目录先要存在!如果指定目录没有,会报错!
  • 相关阅读:
    Android UI--自定义ListView(实现下拉刷新+加载更多)
    12306火车票订票网站的一个Bug
    golang中赋值string到array
    Node.js学习(14)----EJS模板引擎
    操作系统
    springMVC学习笔记--初识springMVC
    sqlplus 连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0
    对于事务和同步(并发)的简要理解
    Jsoup入门
    [LeetCode]Single Number
  • 原文地址:https://www.cnblogs.com/chenmingjun/p/10324886.html
Copyright © 2020-2023  润新知