福州网站营销,北京著名网站建设公司,.tv可以做门户网站不,服务周到的响应式网站文章目录1 虚拟机1.1 简介1.2 Linux版本1.2.1 内核1.2.2 发行版1.3 文件和目录1.3.1 单用户操作系统和多用户操作系统1.3.2 window文件系统1.3.3 Linux下的文件系统2 概述2.1 为什么要学习命令2.2 一些基本操作和说明3 指令和选项4 基础指令4.1 ls指令4.1.1 讲解4.1.2 选项4.1.…
文章目录1 虚拟机1.1 简介1.2 Linux版本1.2.1 内核1.2.2 发行版1.3 文件和目录1.3.1 单用户操作系统和多用户操作系统1.3.2 window文件系统1.3.3 Linux下的文件系统2 概述2.1 为什么要学习命令2.2 一些基本操作和说明3 指令和选项4 基础指令4.1 ls指令4.1.1 讲解4.1.2 选项4.1.3 演示4.1.4 ls通配符4.2 pwd命令4.2.1 讲解4.3 cd命令4.3.1 讲解4.3.2 演示4.4 mkdir指令4.4.1 讲解4.4.2 演示4.5 touch指令4.5.1 讲解4.5.2 演示4.6 cp指令4.6.1 讲解4.6.2 选项4.6.3 演示4.7 mv指令4.7.1 讲解4.7.2 演示4.8 rm命令4.8.1 讲解4.8.2 选项4.8.3 讲解4.9 vim命令4.10 echo文字内容4.11 输出重定向4.11.1 讲解4.11.2 演示4.12 cat指令4.12.1 讲解4.12.2 选项4.12.3 演示4.13 more命令5 进阶指令重点5.1 head指令5.2 tail指令5.3 less指令5.3.1 讲解5.3.2 辅助功能键5.4 wc指令5.4.1 讲解5.4.2 演示4.5 clear指令4.6 管道重要4.6.1 讲解4.6.2 演示5.7 grep指令5.8 脚本命令bash6 远程管理常用命令6.1 关机和重启6.1.2 常用命令示例6.2 网卡和IP地址6.3 ifconfig指令6.4 ping指令7 用户权限相关命令7.1 用户和权限的基本概念7.1.1 基本概念7.1.2文件/目录的权限7.1.3 组7.2 ls -h输出信息介绍7.3 chmod简单使用重要7.4、修改目录权限7.5 超级用户介绍7.5.1 基本概念7.5.2 sudo7.6 组管理7.6.1 讲解7.6.2 演示8 用户管理命令8.1 新建用户和设置密码8.1.1 讲解8.1.2 演示8.2 查看UID、GID以及passwd文件介绍8.2.1 引入8.2.2 讲解8.3 who和whoami8.4 usermod设立主组和附加组8.5 usermod指定用户登录shell8.6 which重要8.6.2 bin和sbin8.7 su切换用户8.8 修改文件权限8.8.1 讲解8.8.2 演示8.9 chmod数字表示法8.10 chmod的复杂表示法8.10.1 讲解8.10.2 参数说明8.10.3 演示9 系统信息相关命令9.1 date指令重点9.2 cal指令9.3 df指令9.4 du指令9.4.1 讲解9.4.2 演示9.5 ps指令和进程概念9.5.1 相关指令9.5.2 ps选项说明9.5.3 演示9.6 top命令的基本使用9.7 kill命令的基本使用9.7.1 讲解9.7.2 演示9.8 tree命令的基本使用9.9 free指令9.10 pstree指令9.11 vmstat指令9.11.1 讲解9.11.2 演示10 其他命令10.1 find命令10.1.1 讲解10.1.2 演示10.2 软连接10.2.1 讲解10.2.2 演示10.3 硬链接10.3.1 讲解10.3.2 演示10.3.3 文件软硬链接的示意图11 压缩解压相关命令11.1 打包/解包11.1.1 讲解11.1.2 选项11.1.3 演示11.2 gzip压缩/解压缩11.2.1 原理11.2.2 命令格式11.2.3 演示10.3 bzip压缩/解压缩10.3.1 原理10.3.2 命令格式1 虚拟机
1.1 简介
虚拟机指通过软件模拟的具有完整硬件系统功能的运行在一个完全隔离环境中的完整计算机系统。
由于window我们用的比较熟悉而linux我们又不熟如果擅自把window操作系统卸载装上linux一旦用不懂失败的成本太高了所以我们需要虚拟机。 虚拟系统通过生成现有操作系统的全新虚拟镜像具有真实操作系统完全一样的功能。 进入虚拟系统后所有操作都是在这个全新的独立的虚拟系统里面进行可以独立安装运行软件保存数据拥有自己的独立界面不会对真正的系统产生任何影响 而且能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。
1.2 Linux版本
1.2.1 内核
内核是系统的心脏是运行程序和管理像磁盘和打印机等硬件设备的核心程序它提供一个在裸设备与应用程序间的抽象层。
Linux内核版本又分为稳定版和开发版两种版本是相互关联相互循环。
稳定版具有工业级强度可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或假如一些新的驱动程序。开发版由于要实验各种解决方案所以变化很快
1.2.2 发行版
linux发行版通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。
常见的发行版本如下 Ubuntu Redhat Fedora openSUSE …
但是内核还是只有一个。
1.3 文件和目录
1.3.1 单用户操作系统和多用户操作系统
在早期的window系统上面一台计算机在同一时间只能由一个用户使用一个用户独自享用系统的全部硬件和软件资源。而到了后来window7一个计算机是可以建立多个用户的其中administrator为初始用户这样的话多个用户共同享用系统的全部硬件和软件资源。Unix和Linux的设计初衷就是多用户操作系统。
1.3.2 window文件系统
在window操作系统上面我们管理文件是通过window文件系统的相当于多个树形结构。 每个驱动器都有自己的根目录结构这样形成了多个数并列的情形如图所示 1.3.3 Linux下的文件系统
在linux下我们是看不到这些驱动器盘符的我们看到的是文件夹目录 Ubuntu没有盘符这个概念只有一个根目录 “./”所有文件都在它下面。 注释 对于初学者来说最重要的是先掌握/home这个目录其中/home目录下有三个文件夹也就是说有三个用户名比如python这个一个用户名下三个文件夹对应这桌面、文档和下载。 一些关于Linux文件夹的补充 /bin 二进制可执行命令 /dev dev是Device设备的缩写/dev目录存放了设备文件即设备驱动程序用户通过这些文件访问外部设备。比如用户可以通过访问/dev/mouse来访问鼠标的输入就像访问其他文件一样。 /etc 系统管理和配置文件/etc目录存放着各种系统配置文件其中包括了用户信息文件/etc/passwd系统初始化文件/etc/rc等。linux正是*这些文件才得以正常地运行。 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点比如用户user的主目录就是/home/user可以用~user表示 /lib 标准程序设计库又叫动态链接共享库作用类似windows里的.dll文件 /sbin 超级管理命令这里存放的是系统管理员使用的管理程序 /tmp 公共的临时文件存储点 /root 系统管理员的主目录 /media linux 系统会自动识别一些设备例如U盘、光驱等等当识别后linux会把识别的设备挂载到这个目录下 /mnt 系统提供这个目录是让用户临时挂载其他的文件系统 /lostfound这个目录平时是空的系统非正常关机而留下“无家可归”的文件windows下叫什么.chk就在这里 /proc 虚拟的目录是系统内存的映射。可直接访问这个目录来获取系统信息。 /var 某些大文件的溢出区比方说各种服务的日志文件 2 概述
2.1 为什么要学习命令 Linux刚面世时并没有图形界面所有的操作全靠命令行完成如磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等。 在职场中作为后端程序员必须要或多或少的掌握一些linux常用的终端命令。 linux发行版本的命令大概有200多个但是常用的命令只有10多个而已。 提醒 学习终端命令的技巧 不需要死记硬背对于常用命令用的多了自然就记住了。不要尝试一次学会所有的命令有些命令是非常不常用的临时遇到临时百度就可以了。 2.2 一些基本操作和说明
【注1crtlshift 放大终端窗口的字体显示】
【注2crtl -可以缩小终端窗口的字体显示】
字符终端为用户提供了一个标准的命令行接口在字符终端窗口中会显示一个命令提示符通常为$。字符终端窗口中出现的命令提示符因用户不同而有所差异普通用户的命令提示符为“$”超级管理员用户的命令提示符为“#”。用户名系统名
3 指令和选项
linux的指令
指在linux终端命令行中输入的内容就称之为指令。
Linux通用的格式
指令主体 [选项] [操作对象]一个指令可以包含多个选项。 操作对象也可以是多个。
例如需要让张三同学去楼下买一瓶农夫山泉和清风餐巾纸在这个指令中“买东西”是指令的主体买的水和餐巾纸是操作的对象农夫山泉、清风是操作的选项。
查阅命令帮助信息知道
现阶段只需要知道通过以下两种方式可以查询命令的帮助信息
先学习常用命令及常用选项的使用即可工作中如果遇到问题可以借助网络搜索
help
command ——help【说明显示command命令的帮助信息】
man
man command【说明查阅command命令的使用手册】
【注man是manual的缩写是Linux提供的一个手册包含了绝大部分的命令函数的详细说明。】
4 基础指令
需要提前说明指令带有多个选项。
4.1 ls指令
4.1.1 讲解
对应英文list基本语法ls [选项] [路径]含义列出对应路径目录下的所有文件/文件夹的名称如果不填路径则显示当前工作目录下的。 关于路径 路径可以分为两种绝对路径、相对路径。 相对路径相对首先得有一个参照物一般就是当前的工作路径。 相对路径的写法在相对路径中通常会用到两个符号“./”【表示当前目录下】和“…/”【上一级的目录下】绝对路径绝对路径不需要参照物直接从根“/”开始寻找对应路径。 4.1.2 选项
选项含义-l表示list表示以列表的形式进行展示-a表示all即显示所有的文件/文件夹包含了隐藏文件/文件夹-F加此选项可以在显示的目录后面加/在可执行文件后加*在链接文件后加-h表示 human-readable 人性化阅读:以K,M,G为单位查看文件大小
4.1.3 演示
#以列表的形式进行展示
ls -l注意 在我们利用列表形式展示了某个路径下的所有文件/文件夹之后我们发现前面有一些类如drwxrwxr的东西。 我们可以注意到drwxrwxr的开头的d在某些地方他是“-”观察后面的可知“d”是代表文件夹“-”是代表文件。这里的这一串实际上对应的是某文件具有的权限后面会详细讲述。 我们还可以注意到上面有两排ubuntu18这两排的含义不一样。一排是用户名一排是用户组后面会详细讲述。 再后面的4096的这类数字是文件对应的大小。再后面的时间是该文档的创建时间。再后面的字符串是文件/文件夹的名称。 #列出指定路径下的所有文件/文件夹的名称以列表的形式并且在显示文档的大小的时候并且以可读性较高的形式显示。
ls -lh 【说明其中4.0k不是说这个文件只有4k大小。】
4.1.4 ls通配符
如果你学过python或者java那你肯定对正则表达式非常熟悉这个就有点类似正则表达式。
通配符含义*代表任意个数个字符代表任意一个字符至少1个[]表示可以匹配字符组中的任一一个[abc]匹配a,b,c中的任意一个[a-f]匹配从a到f范围内的任意一个字符
4.2 pwd命令
4.2.1 讲解
对应英文print working directory打印当前工作目录。作用实际上是为了防止有人懒不想打路径 4.3 cd命令
4.3.1 讲解
对应英文 change directory功能更改当前的工作目录也是用户最常用的命令之一基本语法cd 路径Linux所有的目录和文件名都是大小写敏感的
4.3.2 演示
命令含义cd切换到当前用户的主目录/home/用户目录cd ~切换到当前用户的主目录/home/用户目录cd .保持在当前目录不变cd …切换到上级目录cd -可以在最近两次工作目录之间来回切换4.4 mkdir指令
4.4.1 讲解
对应英文make directory功能创建目录文件夹基本语法mkdir [-p] 路径1 路径2… 路径n这里的路径可以是文件夹名称也可以使包含名称的一个完整路径
4.4.2 演示
在当前路径下创建目录“xuehaoniucha” 注意 ls列出的结果颜色说明其中蓝色的名称表示文件夹白色的表示文件绿色的表示其权限为最高权限即可以干任何事当一次性创建多层不存在的目录的时候添加-p参数否则会报错。新建目录的名称 不能与当前目录中 已有的目录或文件 同名 同时在当前路径下创建多个目录。 4.5 touch指令
4.5.1 讲解
功能创建文件 注意 如果文件 不存在 则可以创建一个空白文件如果文件 已经存在 可以修改文件的末次修改日期。 4.5.2 演示
touch 文件路径这里可以是直接文件名也可以使文件路径touch 文件路径1 文件路径2当然我们也可以在某个路径下面创建一个文件文件夹也是同理 4.6 cp指令
4.6.1 讲解
对应英文copy复制功能复制文件/文件夹到指定的位置
4.6.2 选项
选项含义-f已经存在的目标文件直接覆盖不会提示-i覆盖文件前提示-r若给出的源文件是目录文件则递归。
4.6.3 演示
cp 被复制的文档路径 文档被复制的路径【说明当然如果你只写了复制后所在的路径而没写文件名那么默认是复制前文字的名字如果有写那么就能在复制后顺路改名。】 【注意linux在复制过程中是可以重名的但是一般不建议这么做。】
那我们想要复制文件夹呢 如果直接复制我们会发现报错这是因为你只把文件夹复制过去了而没有把文件夹的东西复制过去如若想把文件夹和包括文件夹的东西全部复制过去的话那你必须要加“-r”。 说明 -r中的r表示Recursive递归的意思。 4.7 mv指令
4.7.1 讲解
对应英文move移动或者剪切功能移动文档到新的位置或者重命名文件
4.7.2 演示
语法mv 需要移动的文档路径注意 mv和cp一样在移动后也能对移动的文件进行重命名。剪切的时候是不需要递归的 4.8 rm命令
4.8.1 讲解
对应英文remove移除、删除功能移除/删除文档
语法rm 选项 需要移除的文档路径4.8.2 选项
序号选项含义01-fforce,强制02-rRecursive,递归
4.8.3 讲解
案例一删除一个文件 说明 删除文件的时候如果不带选项会提示是否删除如果确认输入“y/yes”否则输入“n/no”然后按下回车。如果在删除的时候不想频繁的确认则可以在指令中添加选项“-f”其中f表示force即强制。 案例二删除一个目录
如果要删除一个目录那么需要删除该目录下的所有东西所以需要用到递归。 【注意其中-r和-f连用就变成了-rf。】
案例三删除多个文件 案例四删除拥有同类字段的文件 4.9 vim命令
类似于window的notepad记事本是一款Linux上最受欢迎的文本编辑器
#打开一个文件可以存在也可以不存在
语法vim 文件的路径如果需要退出打开的文件在没有按下其他命令的时候按下shift英文冒号输入q按下回车即可。
4.10 echo文字内容
echo会在终端中显示参数指定的文字通常会和重定向联合使用。
语法echo 文字内容4.11 输出重定向
4.11.1 讲解
一般命令的输出都会显示在终端中有些时候需要将一些命令的执行结果保存到想要的文件中进行后续的分析/统计那么这时候就需要使用到输出重定向技术 “”:覆盖输出会覆盖掉原先的文件内容。 “”追加输出不会覆盖原始文件内容会在原始内容末尾继续添加。
语法正常执行的命令 / 文件的路径【注意文件可以不存在如果不存在系统自动帮你新建一个。】
4.11.2 演示
案例使用覆盖重定向保存ls -la的执行结果保存到当前目录下的ls.txt。 【说明如果使用在这个文件追加则继续在这个文件继续写下去不会覆盖原来的内容。】
4.12 cat指令
4.12.1 讲解
cat实际上不是取英文猫的意思。而是concatenate意为联系的。
4.12.2 选项
选项含义-b对非空输出行编号-n对输出的所有行编号
4.12.3 演示
作用1cat有直接打开一个文件的功能。
语法cat 文件的路径【说明cat和vim的差距就是vim是打开一个类似于notepad的软件可以打开文件而cat是不打开任何软件直接输出文件里面所有的东西到控制台。】
作用2cat还可以对文件进行合并
语法2cat 待合并的文件路径1 待合并的文件路径2 ... 待合并的文件路径n 合并之后的文件路径4.13 more命令
作用分屏显示文件内容
我们学cat的时候是可以查看文本编辑器里面写的内容的如 而用more会造成这种效果 【总结more命令可以用于分屏显示文件内容每次只显示一页内容他比较适合查看内容较多的文件。】
其中more是有一些操作用于翻页的
空格键显示手册页的下一屏
Enter一次滚动手册页的一行
b:回滚一屏
f前滚一屏
q退出
/word搜索word字符串还有一些选项
-n用于显示行号包括空白行
-b用于显示行号不包括空白行5 进阶指令重点
5.1 head指令
作用查看一个文件的前n行如果不指定n那默认显示前10行。
语法head -n 文件路径5.2 tail指令
作用1查看一个文件的末n行如果n不指定那么默认后十行。
语法1tail -n 文件路径【n表示数字】作用2可以通过tail指令来查看一个文件的动态变化
语法2tail -f 文件路径【注意需要注意的是-f是静态变化而-F是动态变化】
也就是说tail -F之后如果文件在这时候被打开并且改写那么我们是可以检测到的。
5.3 less指令
5.3.1 讲解
作用查看文件以较少的内容进行输出按下辅助功能键查看更多。
语法格式less 需要查看的文件路径5.3.2 辅助功能键 数字回车可以跳到指定行 空格键上下方向可以实现翻页 需要退出的时候输入Q就行了
5.4 wc指令
5.4.1 讲解
作用统计文件内容信息这个作用类似于word里面的统计行数文字数字节数。
语法wc -lwc 需要统计的文件路径其中-l表示lines行数-w表示words单词数-c表示bytes字节数。
5.4.2 演示 【注其中单词数的判断依据是空格。】
4.5 clear指令
说明这个指令和快捷键ctrlL等价。功能清除终端中已经存在的命令和结果信息。
语法clear 或者快捷键ctrlL需要注意的是该命令并不是真的清楚了之前的信息而是把之前的信息隐藏到了最上面通过滚动条继续查看以前的信息。
4.6 管道重要
4.6.1 讲解 管道符|一条竖线 作用管道一般用于“过滤”“特殊”“扩展处理” 语法管道不能单独使用必须需要配合前面所讲的指令来一起使用其作用主要是为了辅助作用并不是主要作用。
4.6.2 演示
过滤案例需要通过管道查询出根目录下包含的“y”字母的文档名称。
#ls |grep y针对上面这个命令说明
1、以管道作为分界线前面的命令有个输出后面需要先输入然后过滤完再输出。
通俗地讲就是管道后面的输出就是后面指令的输入。2、grep指令主要用于过滤特殊用法案例通过管道的操作方法来实现less的等价效果了解
比如之前我们用less可以查看一个文件可以用#less路径。现在用管道还可以这么写
cat 路径 |less扩展处理请使用学过的命令来统计某个目录下的文档的总个数。
ls 文档 |wc -lw5.7 grep指令
作用1linux系统中grep命令是一种强大的文本搜索工具
【注1在gedit文档中用crtlf可以打开搜索栏搜索对应的单词如果搜索到了对应的单词的话对应的单词会高亮显示。】
选项
-n显示匹配及行号
-v显示不包含匹配文本的所有行相当于求反
-i忽略大小写语法1grep 查找词 文件路径语法2grep 选项 查找词 文件路径例如-n 作用2grep允许文本文件进行模式查找所谓模式查找又被称为正则表达式。
常用的两种模式查找
^a:行首搜寻以a开头的行
ke$:行尾搜索以ke结束的行语法1#grep 选项 模式 文件路径 5.8 脚本命令bash
大多数sh脚本都可以在bash下运行
演示
目标1、创建一个test.sh文件在里面输入mkdir ddmkdir eels ffcat ff然后保存关闭文件2、用bash执行该文件gedit test.shbash test.sh拓展 shell是一个程序可以称之为壳程序用于用户与操作系统进行交互。用来区别与核相当于是一个命令解析器Shell有很多中这里列出其中几种 Bourne SHell(sh)Bourne Again SHell(bash)C SHell(csh)KornSHell(ksh)zsh 各个shell的功能都差不太多在某些语法的下达下面有些区别Linux预设就是bash。这里主要介绍bash。也就是说上面演示的命令不用bash用上面其他的命令解析器也是可以的。 6 远程管理常用命令
6.1 关机和重启
如果想要安全关机只需要使用shutdown命令。 注意 其中shutdown -r中的r表示重新启动的意思。如果不指定选项和参数默认表示1分钟后关闭电脑远程维护服务器时最好不要关闭系统而应该重新启动系统。 6.1.2 常用命令示例
重新启动操作系统其中now表示现在
shutdown -r now立刻关机其中now表示现在
shutdown now系统在今天的20:25会关机
shutdown 20:25取消之前指定的关机计划
shutdown -c6.2 网卡和IP地址
网卡
网卡是一个专门负责网络通讯的硬件设备
IP地址是设置在网卡上的地址信息
【说明我们可以把电脑比作电话网卡相当于SIM卡IP地址相当于电话号码】
IP地址
每台联网的电脑上都有IP地址是保证电脑之间正常通讯的重要设置。
【注每台电脑的IP地址不能相同否则会出现IP地址冲突并且没有办法正常通讯。】
6.3 ifconfig指令 作用查看/配置计算机当前的网卡配置信息。 对应英文configure a network interface
语法1ifconfig【注127.0.0.1被称为本地回环一般用来测试本机网卡是否正常。】
作用查询网卡对应的ip地址
语法2ifconfig |grep inet 【注一台计算机中有可能会有一个物理网卡和多个虚拟网卡在Linux中物理网卡的名字通常以ene××表示】
6.4 ping指令
作用检测到目标ip地址的连接是否正常对应英文ping
语法ping ip地址【注ping一般用于检测当前计算机到目标计算机之间的网络是否通畅数值越大速度越慢。】
7 用户权限相关命令
7.1 用户和权限的基本概念
7.1.1 基本概念 用户是linux系统工作中重要的一环用户管理包括用户和组管理。 在linux系统中不论是由本机或是远程登录系统每个系统都必须有一个账号并且对于不同的系统资源拥有不同的使用权限。 在linux中可以指定每一个用户针对不同的文件或者目录的不同权限。
7.1.2文件/目录的权限
权限英文缩写数字代号读readr4写writew2执行excutex1
7.1.3 组
为了方便用户管理提出了组的概念如下图所示: 在实际应用中可以预先针对组设置好权限然后将不同的用户添加到对应的组中从而不用依次为每一个用户设置权限。
7.2 ls -h输出信息介绍 ls -l可以查看文件夹下文件的详细信息从左到右依次是
权限第一个字符如果是d表示目录硬链接数通俗地讲就是有多少种方式可以访问到当前目录/文件拥有者家目录下 文件/目录 的拥有者通常都是当前用户组在linux中很多时候会出现组名和用户名相同的情况。大小时间名称 7.3 chmod简单使用重要
作用chmod可以修改用户/组 对 文件/目录 的权限
语法chmod /-rwx 文件名|目录名【说明ls查看linux1.txt的权限可读可写】 【说明gedit打开该文件可以读也可以写cat也可以读】 【说明当我们用chmod把linux1.txt的文件权限设置为不可读不可写的时候cat无法读取了同理gedit也无法打开文件了。】
7.4、修改目录权限 【说明创建一个文件夹时默认都有可执行权限】 【说明如果去掉可执行权限那么文件夹无法通过终端进入、查看目录和创建文件。因为其不能执行终端命令。】
【注目录的-r权限决定其能否被ls目录的-w权限决定其是否能被touch】 7.5 超级用户介绍
7.5.1 基本概念 Linux系统中的root账号通常用于系统的维护和管理对操作系统的所有资源具有所有访问权限。 在大多数版本的linux中都不推荐直接使用root账号登录系统因为可能会删除到系统重要文件。 在linux安装的过程中系统会自动创建一个用户账号而这个默认的用户就被称为“标准用户”。比如我们上面一直在用的ubuntu18这个账号用户。
7.5.2 sudo
su是substitute user的缩写表示使用另一个用户的身份。sudo命令用来以其他身份来执行命令预设的身份为root。用户使用sudo时必须先输入密码之后有5分钟的有效期限超过期限则必须重新输入密码。若其未经授权的用户企图使用sudo则会发出警告邮件给管理员。
7.6 组管理
7.6.1 讲解
【提示创建组/删除组的终端命令都需要通过sudo执行】
命令作用groupadd组名添加组groupdel组名删除组cat /etc/group确认组信息chgrp 组名 文件/目录名修改文件/目录的所属组
【提示组信息保存在 /etc/group 文件中/etc 目录是专门用来保存系统配置信息的目录】
【注在实际应用中可以预先针对组设置好权限然后将不同的用户添加到对应的组中从而不用依次为每一个用户设置权限。】
7.6.2 演示
sudo groupadd aex【说明普通权限不能创建用户组】
cat /etc/groupsudo groupdel aex8 用户管理命令
8.1 新建用户和设置密码
8.1.1 讲解
【提示创建用户/删除用户/修改其他用户密码的终端命令都需要通过sudo执行】
序号命令作用说明01useradd -m -g 组 新建用户名添加新用户-m 自动建立用户家目录-g指定用户所在的组否则会建立一个和用户名同名的组02passwd 用户名设置用户密码如果是普通用户直接用passwd可以修改自己的账户密码03userdel -r 用户名删除用户-r选项会自动删除用户家目录04cat /etc/passwd | grep 用户名确认用户信息新建用户后用户信息会保存在/etc/passwd文件中提示 创建用户时如果忘记添加 -m 选项指定新用户的家目录——最简单的方法就是删除用户重新创建创建用户时默认会创建一个和用户名同名的组名用户信息保存在 /etc/passwd文件中 8.1.2 演示
案例创建一个名为ChengYu的用户设置其密码查看其用户信息后将其删除。 8.2 查看UID、GID以及passwd文件介绍
8.2.1 引入
前面我们用过 cat /etc/passwd | grep 用户名 去查看过用户信息但是我们没注意用户信息里面具体的内容是什么。 x10011001/home/ChengYu代表加锁代表uid第二个1001代表Gid代表用户全名或本地账号代表家目录
8.2.2 讲解
序号命令作用01id 用户名查看用户UID和GID信息02who查看当前所有登录的用户列表03whoami查看当前登录用户的账户名
【注如果id后面不跟用户名那么默认查看现在登录用户的用户UID和GID信息】 前面我们查看的是创建的名为 ChengYu 的这个账户信息现在我们查看自己的账户信息。 admcdromsudo用户管理员权限可以访问系统光驱可以使用root权限
【注意我们发现利用cat和利用id查出来的信息是一样的。】
8.3 who和whoami
whowhoami8.4 usermod设立主组和附加组 功能usermod 可以用来设置用户的 主组/附加组 和登录shell 主组通常在新建用户时指定在etc/passwd的第四列GID对应的组。 附加组在etc/group 中最后一列表示该组的用户列表用于指定 用户的附加权限
【提示设置了用户的附加组之后需要重新登录才能生效】 8.5 usermod指定用户登录shell 8.6 which重要
作用which命令可以查看命令所在位置。 在上面的演示中我们发现有些命令在bin下有一些在sbin之下仔细观察我们还能知道只有用户管理命令才在sbin中。 8.6.2 bin和sbin
在Linux中绝大多数可执行文件都是保存在/bin、/sbin、/usr/bin、/usr/sbin /bin(binary)是二进制执行文件目录主要用于具体应用 /sbin(system binary)是系统管理员专用的二进制代码存放目录主要用于系统管理 /usr/bin(user commands for applications)后期安装的一些软件 /usr/sbin(super user commands for applications)超级用户的一些管理程序 【注cd这个终端命令是内置在系统内核中的没有独立的文件因此用which无法找到cd命令的位置。】
8.7 su切换用户
什么时候需要切换用户呢当命令执行权限不够时我们就需要切换用户。
序号命令作用说明01su -用户名切换用户并且切换目录-可以切换到用户家目录否则保持位置不变02exit退出当前登录账户
【注su不接用户名可以切换到root但是不推荐使用因为不安全。】
exit示意图如下 8.8 修改文件权限
8.8.1 讲解
序号命令作用01chown修改拥有者02chgrp修改组03chmod修改权限
命令格式如下
#修改文件|目录的拥有者
chown 用户名 文件名|目录名#递归修改文件|目录的组
chgrp -R 组名 文件名|目录名#递归修改文件权限
chmod -R 755 文件名|目录名8.8.2 演示 通过上面的演示我们可以看到在对CHE这个目录经过改拥有者和改用户组之后这个文件在图形化界面加锁了。我们观察这个文件的权限发现我们只有 r-x 权限了说明可读可执行但是不可写。 当我们把组改回ubuntu18这个用户时这个文件夹的权限又回来了
8.9 chmod数字表示法
#递归修改文件权限
chmod -R 755 文件名|目录名【说明在这里的7表示当前用户权限5表示当前用户组权限最后一个5表示其他用户权限。】
在前面的学习中我们使用的是下面的格式
#直接修改文件|目录的 读|写|执行 权限但是不能精确到 拥有者|组|其他
chmod /- rwx 文件名|目录名权限英文缩写数字代号读readr4写writew2执行excutex1
我们在前面提到过可以用数字来代替权限。如果我们想要一个文件具有用户可读用户组可读其他人可读那我们可以如下
chmod 444 文件名如果我们想要一个文件具有 用户可读可写用户组可读可写其他人可读那我们只需要对权限简单的做加法即可如下
chmod 664 文件名知道这个原理就可以了下面是这个原理的总结表 8.10 chmod的复杂表示法
8.10.1 讲解
前面我们chmod简单用法时学过用/-来增加或减少文件的权限然而在不添加任何指定用户的情况下系统默认所有人都执行此操作。
chmod [u/g/o/a][/-/] [r/w/x] file【注意[u/g/o/a]和[/-/]之间没有空格】
8.10.2 参数说明 [ u / g / o / a ] 为权限范围其中 uUser即文件或目录的拥有者gGroup即文件或目录的所属群组oOther除了文件或目录拥有者和所属群组外其他用户都属于这个范围aAll即全部用户 8.10.3 演示
目标 1、创建一个01.py于桌面上 2、查看该文件拥有权限 3、不赋予参数给所有用户添加读写执行权限 4、给目前用户设置仅读权限 5、查看该文件拥有权限
touch 01.py
ls -lhchmod rwx 01.py
ls -lh【注这里之所以其他用户设置了写权限仍然不可写是因为防止读写冲突具体见数据库原理】
chmod u-wx 01.py
ls -lh9 系统信息相关命令
本节内容主要是为了方便通过远程终端维护服务时查看服务器上当前系统日期和时间 / 磁盘空间占用情况/ 程序执行情况。
9.1 date指令重点
作用表示操作时间日期读取、设置
语法1date语法2date %F(等价与#date %Y-%m-%d)其中我们可以把-换成其他的形式如下图 【注意这里的Y和m和d都应该输入对应的大小写linux对大小写是敏感的。】
由于选项是一个整体不能用空格隔开所以我们写年月日的时候要用双引号或者单引号括起来。
其中是读取、显示的意思如果想要显示时间就得用。
语法3date %F%T#获取之前或者之后的某个时间备份
语法4date -d -1day %Y-%m-%d %H:%M:%S补充说明 %F:表示完整的年月日%T:表示完整的时分秒%Y:表示四位年份%m:表示两位月份带前导0%d:表示日期带前导0%H:表示小时带前导0%M:表示分钟带前导0%S:表示秒数带前导0 9.2 cal指令
作用用来操作日历的
#表示直接输出当前月份的日历
语法1cal 等价与cal -1#表示上现下个月的日历
语法2cal -3#表示输出某一个年份的日历
语法3cal -y 年份9.3 df指令
作用查看磁盘的空间
#disk free显示磁盘剩余空间
语法df-h其中-h表示以可读性高的方式表示9.4 du指令
9.4.1 讲解
#disk usage 显示目录下的文件大小
du -h [目录名]9.4.2 演示
du -h ~/Python学习9.5 ps指令和进程概念
所谓 进程 通俗地说就是 当前正在执行的一个程序。实际上ps指令就相当于window操作系统中的任务管理器对应英文process。
9.5.1 相关指令
序号命令作用01ps auxprocess status 查看进程的详细状况02top动态显示运行中的进程并且排序03kill [-9] 进程代号终止指定代号的进程-9表示强行终止
【注ps默认只会显示当前用户通过终端启动的应用程序】
9.5.2 ps选项说明
选项含义-a显示终端上的所有进程包括其他用户的进程-u显示进程的详细状态-x显示没有控制终端的进程即显示那些不需要终端启动的应用程序的进程-l按长格形式显示输出-w宽行输出-e显示所有进程
9.5.3 演示
ps auUSERPID%CPU%MEMVSZRSSTTYSTATSTARTTIME进程创建者用户名进程ID号占用CPU百分比占用内存百分比占用虚拟内存大小内存中页的数量进程所在终端的ID号进程运行状态进程启动时间进程已经占用CPU时间
9.6 top命令的基本使用
toptop 如果要退出top可以直接输入qtop自动每5秒刷新一次用top -d 10可以10秒刷新一次zombie代表僵尸进程。在Linux中有父进程和子进程的说法若父进程死亡子进程不死则子进程变为僵尸进程 9.7 kill命令的基本使用
9.7.1 讲解
kill命令用于杀死一个进程。如果要强制杀死可以使用kill -9 进程号。
9.7.2 演示
打开一个终端 再打开一个终端 ps aukill 6858
kill 6609bash即为dos命令窗口由于我开了两个不知道哪个才是所以两个都关一下试试看。使用kill命令时最好只终止由当前用户开启的进程而不要去终止root身份开启的进程否则可能导致系统崩溃。
9.8 tree命令的基本使用
作用tree命令可以以树状图列出文件目录结构。我们一般会加-d选项来让tree只显示目录 9.9 free指令
作用查看内存使用情况
语法格式
free -m其中-m中的m表示以mb为单位查看剩余的真实可以用的内存为115611211691665mb 交换用于临时内存当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。这实际上涉及到操作系统的原理感兴趣的可以去学习操作系统这门课。 9.10 pstree指令
进程树以树状图展现进程之间的派生关系 9.11 vmstat指令
9.11.1 讲解
vmstat是Virtual Memory Statistics虚拟内存统计的缩写如果vmstat命令没有带任何命令行参数将得到一次性的报告。vmstat命令报告主要的活动类型有进程procs、内存以千字节为单位、交换分区以千字节为单位、来自块设备硬盘驱动器的输入输出量、系统中断每秒钟发生的次数以及中央处理单元CPU分配给用户、系统和空闲时分别占用的比例。
9.11.2 演示
vmstat10 其他命令
10.1 find命令
10.1.1 讲解
find命令通常用来在 特定的目录下搜索符合条件的文件
序号命令作用01find [路径] -name 文件在某路径下搜索名为某某某的文件02find [路径] -perm 777在某路径下搜索权限为777的文件03find [路径] -size 1000000c在某路径下搜索大于1M的文件c表示字节04find [路径] -size -1c在某路径下搜索小于1个字节的文件
如果省略路径表示在当前文件夹下查找之前学习的通配符在使用find命令时同时可用
10.1.2 演示
#在etc目录查找名字包含ipv6的文件
sudo find /etc -name *ipv6*#在anaconda3目录查找包含权限777的文件
find ~/anaconda3 -perm 777find Desktop/ -size 1000000cfind Desktop/ -size -100000000c10.2 软连接
10.2.1 讲解
语法ln -s 被链接的源文件 链接文件功能建立文件的软链接用通俗的方式讲类似于windows下的快捷方式 注意 -s一定要加否则会变成硬链接 源文件要使用绝对路径不能使用相对路径这样可以方便移动链接文件后仍然能够正常使用 10.2.2 演示 目标 1、创建一个文件01.py 2、将它移动到主目录下的Python学习文件夹中 3、建立软链接其中快捷方式放在桌面上 4、查看其快捷方式的软链接源文件 touch 01.py
mv ~01.py ~/Python学习
ln -s ~/Python学习/01.py ~/Desktop/python01.py#处于桌面目录下
ls -l【注如果不用绝对路径你的快捷方式一换位置就找不到源文件了】
10.3 硬链接
10.3.1 讲解
在使用ln创建链接时如果没有-s选项会创建一个硬链接而不是软链接
10.3.2 演示 目标 1、将前一节的01.py在桌面建立一个硬链接 2、用ls -l查看桌面上硬链接文件的详细信息 3、删除源文件 4、查看源文件 5、用ls -l查看桌面上两个文件软链接和硬链接的详细信息 6、查看硬链接文件内容和软链接文件内容 ln ~/Python学习/01.py ~/Desktop/python02.py
ls -lrm rm ~/Python学习/01.py
ls -l这里发现软链接文件变红说明软链接的源文件找不到了。
ls ~/Python学习/此时发现源文件01.py消失。
cat python01.py
cat python02.py硬链接文件还在。
10.3.3 文件软硬链接的示意图
软链接相当于快捷方式由于文件名是分开存储的通过软链接创建的文件名可以找到对应原文件的对应路径找到源文件然后通过源文件的文件名访问源文件的内容这样的话就导致删除了一个快捷方式还有源文件名提供查找该文件名对应的数据但是如果删除了源文件名那么快捷方式通过路径找不到源文件名了也就自然找不到源文件对应的文件内容了。
而硬链接可以理解为建立别名这两个文件名都可以访问文件数据如果你删除其中一个文件名另外一个照样能找到原文件名对应的文件数据。 注意 在linux中文件名和文件的数据是分开存储的在linux中只有文件的硬链接数0才会被删除使用ls -l 可以查看一个文件的硬链接的数量在日常工作中几乎不会建立文件的硬链接知道即可 11 压缩解压相关命令
打包压缩是日常工作中备份文件的一种方式在不同的操作系统中常用的打包压缩方式是不同的
window常用rar
Mac常用zip
Linux常用tar.gz11.1 打包/解包
11.1.1 讲解
tar是Linux中最常用的备份工具此命令可以把 一系列文件打包到一个大文件中 也可以把一个打包的大文件恢复成一系列文件。
11.1.2 选项
选项含义-ccreate生成档案文件创建压缩文件-x解压解开档案文件-t查看内容-r像压缩归档文件末尾追加文件-f-f使用文件名字这个选项必须放在所有选项最后后面只能接文件名-z有gzip属性的-j有bz2属性的-Z有compress属性的-v显示所有过程-O从文件解开到标准输出-C代表change目录将当前工作目录改变为指定目录
11.1.3 演示 目标 删除桌面下的所有内容在桌面下新建三个空白文档01.py、02.py、03.py将这三个文件打一个py.tar的包新建tar目录并且将py.tar移动到tar目录下解包py.tar #必须处于桌面目录否则虚拟机报废
re -r *
touch 01.py 02.py 03.py
tar -cvf py.tar 01.py 02.py 03.pymkdir tar
mv py.tar tar
tar -xvf tar/py.tar
ls -l11.2 gzip压缩/解压缩
11.2.1 原理
tar与gzip命令结合可以实现文件的打包和压缩 tar只负责打包文件但不压缩gzip压缩tar打包后的文件其扩展名一般用xxx.gz
【注在Linux中最常见的压缩文件格式就是xxx.gz】
11.2.2 命令格式
#压缩文件
tar -czvf 打包文件名.tar.gz 被压缩的文件/路径..#解压缩文件
tar -xzvf 打包文件名.tar.gz#解压缩到指定路径
tar -zxvf 打包文件名.tar.gz -C 目标路径11.2.3 演示 目标 把我们前一小节的三个文件打包压缩为gzip的格式把我们打包压缩好的压缩文件解压缩 tar -czvf py.tar.gz 01.py 02.py 03.pytar -xzvf py.tar.gz10.3 bzip压缩/解压缩
10.3.1 原理
tar与bzip2命令结合可以实现文件 打包和压缩 用法和 gzip一样 tar只负责打包文件但不压缩用bzip2压缩tar打包后的文件其扩展名一般用xxx.tar.bz2
10.3.2 命令格式
#压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径#解压缩文件
tar -jxvf 打包文件.tar.bz2