Linux60个小时速成

Posted 动次哒从

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux60个小时速成相关的知识,希望对你有一定的参考价值。

Linux速成

文章目录

1 前言

1.1 课程介绍

1.2 学习方向

1.3 应用领域

个人桌面领域

​ 此领域是传统 linux 应用最薄弱的环节,传统 linux 由于界面简单、操作复杂、应用软件少的缺点,一直被 windows 所压制,但近些年来随着 ubuntu、fedora、Debian、Manjaro等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,linux 在个人桌面领域的占有率在逐渐的提高。

服务器领域

​ linux 在服务器领域的应用是最强的。

​ linux 免费、稳定、高效等特点在这里得到了很好的体现,近些年来 linux 服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛。

嵌入式领域

​ 近些年来 linux 在嵌入式领域的应用得到了飞速的提高

​ linux 运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点,使其近些年来在嵌入式领域的应用得到非常大的提高

​ 主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、智能家居、智能硬件等都是其应用领域。以后再物联网中应用会更加广泛

1.4 学习阶段

  1. linux 环境下的基本操作命令,包括 文件操作命令(rm mkdir chmod, chown) 编辑工具使用(vi vim)linux 用户管理(useradd userdel usermod)等
  2. linux 的各种配置(环境变量配置,网络配置,服务配置)
  3. linux 下如何搭建对应语言的运行环境(大数据,JavaEE, Python 等)
  4. 能编写 shell 脚本,对 Linux 服务器进行维护。
  5. 能进行安全设置,防止攻击,保障服务器正常运行,能对系统调优。
  6. 深入理解 Linux 系统(对内核有研究),熟练掌握大型网站应用架构组成、并熟悉各个环节的部署和维护方法。

1.5 学习建议

  1. 高效而愉快的学习
  2. 先建立一个整体框架,然后细节
  3. 不需要掌握所有的 Linux 指令,要学会查询手册和百度
  4. 先 know how ,再 know why
  5. 计算机是一门”做中学”的学科,不是会了再做,而是做了才会.
  6. 适当的囫囵吞枣
  7. Linux 不是编程,重点是实际操作,各种常用指令要玩的溜

2 linux入门

2.1 linux简介

  1. Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
  2. Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
  3. Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
  4. Linux 是一款操作系统,免费,开源, 安全,高效,稳定, 处理高并发非常强悍,现在很多的企业级的项目都部署到 Linux/unix 服务器运行。

其内核于1991年10月5日首次发布

2.2 linux发行版

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

这些发行版的关系如下图

2.3 和unix的关系

unix怎么来的

2.4 linux怎么来的

​ 20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和ios这几种。

  1. Unix价格昂贵,不能运行于PC;
  2. DOS显得简陋,且源代码被软件厂商严格保密;
  3. MacOS是一种专门用于苹果计算机的操作系统。

​ 此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰当教授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统内部工作原理。

​ MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。

​ 全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。

2.5 与windows比较

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LGCtodW4-1653304158045)(file:///D:/%E5%A4%A7%E5%AD%A6/%E4%B8%9C%E8%BD%AF%E5%9F%B9%E8%AE%AD/linux%E6%95%99%E7%A8%8B_files/30a61r1n1csnkjn9d9sfgb39vj.png)]

3 安装虚拟机和CentOS

3.1 vmware 和 centos介绍

​ VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMware采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器

下载:

https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.0.0-16894299.exe

​ CentOS是免费的、开源的、可以重新分发的开源操作系统 ,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一。

CentOS Linux发行版是一个稳定的,可预测的,可管理的和可复现的平台,源于Red Hat Enterprise Linux(RHEL)依照开放源代码(大部分是GPL开源协议 )规定释出的源码所编译而成。

自2004年3月以来,CentOS Linux一直是社区驱动的开源项目,旨在与RHEL在功能上兼容。

下载:

http://mirrors.163.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

3.2 安装vmware

3.3 安装centos

3.4 联网和使用终端

3.5 设置共享目录

4 linux目录结构

4.1 树状目录

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

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

记住一句经典的话:在 Linux 世界里,一切皆文件。

4.2 详细介绍

/bin:

bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

/boot:

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

/dev:

​ dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

/etc:

etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home:

​ 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

/lib:

​ lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:

这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:

linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

/mnt:

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

/opt:

​ opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:

​ proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/root:

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

/sbin:

​ s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

/selinux:

​ 这个目录是 Redhat/CentOS 所特有的目录,selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:

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

/sys:

​ 这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

​ 该文件系统是内核设备树的一个直观反映。

​ 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp:

tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

/usr:

​ usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

/usr/bin:

系统用户使用的应用程序。

/usr/sbin:

超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:

内核源代码默认的放置目录。

/var:

var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/run:

是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc:

​ 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

​ 值得提出的是 /bin、/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 

​ 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

5 远程登录linux

5.1 为什么要远程登录

说明: 公司开发时候, 具体的情况是这样的

  1. linux 服务器是开发小组共享的.

  2. 正式上线的项目是运行在公网的.

  3. 因此程序员需要远程登录到 centos 进行项目管理或者开发.

  4. 画出简单的网络拓扑示意图(帮助理解)

  5. 远程登录客户端有 Xshell, Xftp , 我们学习使用 Xshell 和 Xftp , 其它的远程工具大同小异

5.2 安装和使用xshell

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

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

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

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

5.3 安装和使用xftp

​ Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的需要。它采用了标准的 Windows 风格的向导,它简单的界面能与其他 Windows 应用程序紧密地协同工作,此外它还为高级用户提供了众多强劲的功能特性。

5.4 开通sshd服务

监听22端口

5.5 乱码问题

6 关机、重启、登录与注销

6.1 关机与重启

shutdown:

shutdown -h now : 表示立即关机

shutdown -h 1 : 表示 1 分钟后关机

shutdown -r now: 立即重启

--------------------------------------------------------------------------------------------

halt:
halt是最简单的关机命令。其原理是调用shutdown -h。

--------------------------------------------------------------------------------------------

poweroff:
poweroff是halt的软连接,最终执行的还是halt命令。

--------------------------------------------------------------------------------------------

reboot:
reboot的工作过程与halt类似,其作用是重新启动。

--------------------------------------------------------------------------------------------

syn :
把内存的数据同步到磁盘

6.2 登录与注销

登录:
ssh root@192.168.142.128

切换用户:
su - 用户名

注销:
logout
exit

7 常用指令

7.1 文件目录类

pwd

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

print work directory
cd

基本语法

cd [参数]



•功能描述:

切换到指定目录

change directory



•常用参数

绝对路径/xx/xx 和相对路径 ./ ../

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

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



•如何理解绝对路径和相对路径

•应用实例

假设你现在/usr/lib目录

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

案例 2: 使用相对路径到/root 目录

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

案例 4:回到家目录
ls

•基本语法

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


l
•常用选项

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

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

-h : 信息的人性化显示(human)


•应用实例

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

•基本语法

mkdir [选项] 要创建的目录
•功能描述:

指令用于创建目录(make directory)



•常用选项
-p :创建多级目录



•应用实例

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

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

基本语法:

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



功能描述:

用于删除空目录


应用实例:

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


使用细节:

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

提示:

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

创建空文件

•基本语法

touch 文件名称

•应用实例

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

拷贝文件到指定目录

•基本语法

cp [选项] source dest
cp 源文件文件夹/文件 目标文件夹


•常用选项
-r :递归复制整个文件夹



使用细节
强制覆盖不提示的方法:\\cp
rm

移除【删除】文件或目录

•基本语法

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

•常用选项

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

-f : 强制删除不提示
mv
移动文件与目录或重命名

•基本语法

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

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

查看文件内容,是以只读的方式打开。

•基本语法

cat [选项] 要查看的文件

•常用选项

-n :显示行



•使用细节

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


cat 文件名 | more
more

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

指令中内置了若干快捷键,详见操作说明

•基本语法

more 要查看的文件

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


•基本语法

less 要查看的文件

echo
输出内容到控制台。

•基本语法

echo [选项] [输出内容]
>>>

\\> 指令 和 >> 指令

\\> 输出重定向 : 会将原来的文件的内容覆盖

\\>> 追加: 不会覆盖原来文件的内容,而是追加到文件的尾部。

•基本语法
ls -l > 文件名称 (功能描述:列表的内容写入文件 a.txt 中(覆盖写)
ls -l >> 文件名称 (功能描述:列表的内容写入文件 a.txt 中(不覆盖写)
head

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

•基本语法

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

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

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

•基本语法

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

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

3) tail -f 文件名称 (功能描述:实时追踪该文档的所有更新,工作经常使用, ctrl+c退出)
ln
软链接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径

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


删除软链接
rm -f 软链接名

•细节说明

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

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

•基本语法

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

•应用实例

history

history 10

!15

7.2 时间日期类

date

显示当前日期

•基本语法

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

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

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

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

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



设置系统时间:

date -s "2022-5-18 13:15:16"
cal

查看日历指令

•基本语法

cal

cal 2022

7.3 搜索查找类

find

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

•基本语法
find [搜索范围] [选项] •选项说明

案例:

1 使用find按文件名来查找语法:find / -name 文件名 ,这里可用通配符*

2 如果想按文件的修改时间来查找可以使用-mtime参数,后面接时间参数 -代表时间内 +代表时间以前

3 如果想按文件有大小来进行查找可以直接使用-size 参数后面加上文件大小即可 (+n 大于 -n 小于 n 等于)

4 如果相针对文件类型进行查找可以直接使用-type参数 ,文件的类型有 文件f 目录d 设备b,c 链接l 等

5 在查找的时候还可以把两个查找类型进行结合起来使用,使用-a代表并且 -o代表或者

6 查找当前目录下所有.txt文件并打印出详细的文件信息

find . -type f -name "*.txt" -exec ls -l  \\;

7 查找当前目录下内容修改时间是30天以前的.log文件并删除 (使用-ok会有提示)

find . -type f -name "*.log" -mtime +30 -exec rm  \\;

find . -type f -name "*.log" -mtime +30 -ok rm  \\;

7.4 locate

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

locaate

•基本语法

locate 搜索文件



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

7.6 grep和管道符号|

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

•基本语法

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

cat a.txt | grep -n yes

7.7 压缩和解压类

gzip 与 gunzip

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

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

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

细节说明:

当我们使用 gzip 对文件进行压缩后,不会保留原来的文件

zip 与 upzip

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



•基本语法

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

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



•zip 常用选项

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



•unzip 的常用选项
-d<目录> :指定解压后文件的存放目录
tar

tar 指令是打包指令,最后打包后的文件是 .tar.gz 的文件。

•基本语法

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

7.8 帮助信息类

man

	man命令显示的内容是手册页,包含指令帮助、配置文件帮助和编程帮助等信息。一般man命令显示的帮助信息要更加丰富,它比命令的help选项多了命令的用法示例、命令的描述等内容。
help

help命令用于显示shell内部的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。


内部命令:就是shell程序的一部分,在系统启动时就加载进入内存,时常驻内存的,所以我们执行内部命令的时候执行速度比较快

外部命令:也就是文件系统命令,它不是shell程序组成部分,是shell程序之外的程序,使用时需要从硬盘读取入内存,所以相对来说速度就慢一点。


区分内部命令和外部命令:使用type命令可以区分,如 type cd

8 用户管理

8.1 介绍

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

​ 在实际的项目中,由于要涉及到多个部门共同参与(如前端、后端、数据组。。。),这时就需要为每位开发人员创建一个用户,为了方便给不同的人分配不同的权限,可以将用户分为不同的组,之后对各个组分配权限就很方便了。

对于创建的每一个用户,都会在/home文件夹下默认创建一个以用户名命名的文件夹,用于该用户文件的存放。

8.2 用户操作

以下均是

8.3 添加用户

useradd 用户名 【当创建用户成功后,会自动的创建和用户同名的家目录,还会创建同名的组】

useradd -d 指定目录 新的用户名 【为新增用户指定家目录】

useradd – g 用户组 用户名

8.4 修改密码

passwd 用户名

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

8.5 删除用户

userdel 用户名

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

8.6 查询用户信息

id 用户名

8.7 切换用户

语法:

su 要切换的用户名

su - 【没有带用户名,则默认切换到 root 用户】

注意:

从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。

当需要返回到原来用户时,使用 exit 指令

8.8 查看当前登录用户

whoami

8.9 用户组操作

1 创建令孤冲、张无忌、任盈盈 账号

useradd lhc

useradd zwj

useradd ryy





2 分别给设置密码

passwd lhc

passwd zwj

passwd ryy





3 创建华山派 、武当、魔教 三个组

groupadd hs_g

groupadd wd_g

groupadd mj_g



4 令孤冲归到华山派,张无忌-》武当, 任盈盈-》魔教

usermod -g hs_g lhc

usermod -g wd_g zwj

usermod -g mj_g ryy



5 令孤冲搬家,搬到衡山

mkdir /home/hengshan

usermod -d /home/hengshan lhc



6 令孤冲叛变,投入魔教

usermod -g mj_g lhc





7 把张无忌所在的武当组删除

userdel zwj

groupdel wd_g



8 最后看一下/etc/passwd 和 、/etc/shadow的变化

tail -n 15 /etc/passwd

8.10 新增组

groupadd 组名

8.11 删除组

groupdel 组名

8.12 修改用户的组、初始目录

usermod – g 新的组名 用户名

usermod – d 目录名 用户名

8.13 用户和组的相关文件

/etc/passwd文件

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

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

特殊账号:

8.14 /etc/shadow

口令配置文件

密码生成的算法:

8.15 /etc/group文件

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

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

9 权限管理

9.1 介绍

Linux中所有内容都是以文件的形式保存和管理,即:一切皆文件。

  • 普通文件是文件。
  • 目录(在win下称为文件夹)是文件。
  • 硬件设备(键盘、硬盘、打印机)是文件。

Linux下有两种用户:超级用户(root)、普通用户。

  • 超级用户:可以再linux系统下做任何事情,不受限制,命令提示符是"#"
  • 普通用户:在linux下做有限的事情, 命令提示符是"$"

linux文件对不同用户可以分别设置权限,管理员(root)有所有权限。

文件访问者的分类

  • 文件和文件目录的所有者:u—User
  • 文件和文件目录的所有者所在的组的用户:g—Group
  • 其它用户:o—Others

9.2 查看文件类型和所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者,当然后期可以改

使用命令查看: ls -l

9.3 权限说明

9.4 修改文件权限-chmod

9.4.1 第一种方式:+ 、-、= 变更权限

使用chmod命令来改变文件的权限,

注:只有文件的拥有者和root用户才能调用chmod命令改变权限

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

  1. chmod u=rwx,g=rx,o=x 文件目录名
  2. chmod o+w 文件目录名
  3. chmod a-x 文件目录名

练习:

创建haha.txt

touch haha.txt



给它设置权限:所有者有读写权限,同一组成员只读,其他人无权限
chmod o-r haha.txt



给同一组成员加上 执行权限

chmod g+x haha.txt

9.4.2 第二种方式:通过数字变更权限

规则:r=4 w=2 x=1 ,rwx=4+2+1=7

chmod u=rwx,g=rx,o=x 文件目录名

相当于 chmod 751 文件目录名

练习1:

创建hehe.txt

设置所有者rwx , 同一组rw, 其它 r

chmo 764 hehe.txt
练习2:

假设有一个文件a.txt , 它的权限 731

rwx-wx--x


问题解决:

两个用户

chenqf

chenqf2



同属于一个组
java_g



有这么一个文件( ls -lh)
-rw-r---w-. 1 chenqf java_g 11 517 17:15 a.txt



此时, 用户chenqf2拥有可读权限,但是cat /home/chenqf/a.txt 查看时权限,什么原因?怎么办?

原因是因为:
chenqf2用户 没进入 chenqf家目录的权限

怎么办?
让chenqf2拥有进入chenqf家目录的权限, 就是让家目录所有者的同一组成员拥有可执行权限
chmod g+x chenqf

9.5 修改文件所有者-chown

chown newowner file [改变文件的所有者]

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



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

9.6 修改文件所在组-chgrp

chgrp newgroup file

实战练习:

练习1:

  1. 练习文件权限管理[课堂练习]
  2. 建立两个组(神仙,妖怪)
  3. 建立四个用户(唐僧, 悟空,八戒,沙僧)
  4. 给四个用户设置密码
  5. 把悟空,八戒放入妖怪组, 唐僧、沙僧 在神仙
  6. 用悟空( 切换用户 )建立一个文件 (monkey.java 该文件要输出 i am monkey) echo ‘i am monky’ > monkey.java
  7. 给八戒一个可以rw 的权限
  8. 八戒修改 monkey.java 加入一句话( i am pig)
  9. 设置唐僧、沙僧对该文件没有权限
  10. 把 沙僧 放入妖怪组
  11. 让沙僧 修改 该文件 monkey, 加入一句话 (“我是沙僧,我也是妖怪!”);

练习2:

  1. 用 root 登录,建立用户 lucy,自己设定密码
  2. 用 lucy 登录,在主目录下建立目录 ff/gg/hh
  3. 在 hh 中建立一个文本文件 hello.txt, 向 hello.txt 输出 hello,kitty
  4. 改变 hello.txt 的权限为当前用户可读可写可执行,组用户可读可执行,其他用户只读
  5. 删除新建立的目录 ff/gg/hh
  6. 删除用户 lucy 及其主目录中的内容
  7. 重新启动 linux 或关机

10 vi和vim

10.1 vi和vim介绍

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

​ Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确

性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

10.2 三种模式

​ 命令模式: 启动 vim编辑器 后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作;

​ 编辑模式: 该模式中主要的操作就是录入文件内容,可以 对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vi编辑器的最后一行会出现"–INSERT–"的状态提示信息;

​ 末行模式: 该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vim编辑器的最后一行会出现冒号:提示符。

10.3 各种操作说明

10.3.1 光标移动

10.3.2 复制、粘贴、删除

10.3.3 保存文件及退出vi编辑器

10.3.4 文本内容替换

Linux60个小时速成

15个极好的Linux find命令示例

Top- Linux必学的60个命令

linux为啥 find查不到文件

李新海:只需6小时,让你口才速成

linux find命令