Linux60个小时速成
Posted 动次哒从
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux60个小时速成相关的知识,希望对你有一定的参考价值。
Linux速成
文章目录
- 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 学习阶段
- linux 环境下的基本操作命令,包括 文件操作命令(rm mkdir chmod, chown) 编辑工具使用(vi vim)linux 用户管理(useradd userdel usermod)等
- linux 的各种配置(环境变量配置,网络配置,服务配置)
- linux 下如何搭建对应语言的运行环境(大数据,JavaEE, Python 等)
- 能编写 shell 脚本,对 Linux 服务器进行维护。
- 能进行安全设置,防止攻击,保障服务器正常运行,能对系统调优。
- 深入理解 Linux 系统(对内核有研究),熟练掌握大型网站应用架构组成、并熟悉各个环节的部署和维护方法。
1.5 学习建议
- 高效而愉快的学习
- 先建立一个整体框架,然后细节
- 不需要掌握所有的 Linux 指令,要学会查询手册和百度
- 先 know how ,再 know why
- 计算机是一门”做中学”的学科,不是会了再做,而是做了才会.
- 适当的囫囵吞枣
- Linux 不是编程,重点是实际操作,各种常用指令要玩的溜
2 linux入门
2.1 linux简介
- Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
- Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
- Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
- 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这几种。
- Unix价格昂贵,不能运行于PC;
- DOS显得简陋,且源代码被软件厂商严格保密;
- 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 为什么要远程登录
说明: 公司开发时候, 具体的情况是这样的
-
linux 服务器是开发小组共享的.
-
正式上线的项目是运行在公网的.
-
因此程序员需要远程登录到 centos 进行项目管理或者开发.
-
画出简单的网络拓扑示意图(帮助理解)
-
远程登录客户端有 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 的总和)
- chmod u=rwx,g=rx,o=x 文件目录名
- chmod o+w 文件目录名
- 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 5月 17 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:
- 练习文件权限管理[课堂练习]
- 建立两个组(神仙,妖怪)
- 建立四个用户(唐僧, 悟空,八戒,沙僧)
- 给四个用户设置密码
- 把悟空,八戒放入妖怪组, 唐僧、沙僧 在神仙
- 用悟空( 切换用户 )建立一个文件 (monkey.java 该文件要输出 i am monkey) echo ‘i am monky’ > monkey.java
- 给八戒一个可以rw 的权限
- 八戒修改 monkey.java 加入一句话( i am pig)
- 设置唐僧、沙僧对该文件没有权限
- 把 沙僧 放入妖怪组
- 让沙僧 修改 该文件 monkey, 加入一句话 (“我是沙僧,我也是妖怪!”);
练习2:
- 用 root 登录,建立用户 lucy,自己设定密码
- 用 lucy 登录,在主目录下建立目录 ff/gg/hh
- 在 hh 中建立一个文本文件 hello.txt, 向 hello.txt 输出 hello,kitty
- 改变 hello.txt 的权限为当前用户可读可写可执行,组用户可读可执行,其他用户只读
- 删除新建立的目录 ff/gg/hh
- 删除用户 lucy 及其主目录中的内容
- 重新启动 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个小时速成