Linux 实验 [Day 01]
记录一下学习 Linux 以及动手实验的内容。

图片来源:实验楼
1. Linux 简介(略过)
2. Linux 基本概念及操作:命令、快捷键与通配符
2.1 基础命令
ls, pwd, cd, cat, touch等
2.2 终端快捷键
| 按键 | 作用 |
|---|---|
| Ctrl+d | 键盘输入结束或退出终端 |
| Ctrl+s | 暂停当前程序,暂停后按下任意键恢复运行 |
| Ctrl+z | 将当前程序放到后台运行,恢复到前台为命令fg |
| Ctrl+a | 将光标移至输入行头,相当于Home键 |
| Ctrl+e | 将光标移至输入行末,相当于End键 |
| Ctrl+k | 删除从光标到行末位置的内容 |
| Alt+Backspace | 向前删除一个单词 |
| Shift+PgUp | 将终端显示向上滚动 |
| Shift+PgUp | 将终端显示向下滚动 |
2.3 通配符
通配符是一种特殊语句,主要有星号(*)和问号(?),用来对字符串进行模糊匹配(比如文件名、参数名)。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完> 整名字时,常常使用通配符代替一个或多个真正字符。
假设当前目录底下有asd.txt和fgh.txt两个文件:
ls *.txt
输出:
asd.txt fgh.txt
ls as?.txt
输出:
asd.txt
一次性创建多个类似文件:
touch file_{1..10}.txt
Shell 常用通配符:
| 字符 | 含义 |
|---|---|
| * | 匹配0或多个字符 |
| ? | 匹配任意一个字符 |
| [list] | 匹配list中的任意单一字符 |
| [^list] | 匹配除list中字符以外的任意单一字符 |
| [c1-c2] | 匹配c1-c2中的任意单一字符,如:[0-9][a-z] |
| {string,string2,...} | 匹配string1或string2(或更多)中全部字符串 |
| {c1,..,c2} | 匹配c1-c2中全部字符,如{1..10} |
2.4 帮助命令
在Linux环境中,如果你遇到困难,可以使用man命令,它是Manua1pages的缩写。
Manual pages是UNIX或类UNIX操作系统中在线软件文档的一种普遍的形式,内容包括计算机程序(包括库和系统调用)、正式的标准和惯例,甚至是抽象的概念。用户可以通过执行man命令调用手册页。
你可以使用如下方式来获得某个命令的说明和使用方式的详细介绍:
man <command_name>
比如你想查看 man 命令本身的使用方式,你可以输入:
man man
通常情况下,man 手册里面的内容都是英文的,这就要求你有一定的英文基础。man 手册的内容很多,涉及了 Linux 使用过程中的方方面面。为了便于查找,man 手册被进行了分册(分区段)处理,在 > Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为8个区段,安排如下:
| 区段 | 说明 |
|---|---|
| 1 | 一般命令 |
| 2 | 系统调用 |
| 3 | 库函数,涵盖了C标准库 |
| 4 | 特殊文件(通常是/dev中的设备)和驱动程序 |
| 5 | 文件格式和约定 |
| 6 | 游戏和屏保 |
| 7 | 杂项 |
| 8 | 系统管理命令和守护进程 |
要查看相应区段的内容,就在 man 后面加上相应区段的数字即可,如:
man 1 ls
想要获得更详细的帮助,你还可以使用info命令,不过通常使用man就足够了。如果你知道某个命令的作用,只是想快速查看一些它的某个具体参数的作用,那么你可以使用--help参数,大部分命令都会带> 有这个参数,如:
ls --help
3. 用户及文件权限管理
- 实验内容
- Linux 中创建、删除用户,及用户组操作
- Linux 中的文件权限设置
- 实验知识点
- Linux 用户管理
- Linux 权限管理
3.1 Linux 用户管理
3.1.1 查看用户
打开终端,输入:
who am i
输出的第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami 即可),第二列的 pts/0 中 pts 表示伪终端,所谓伪是相对于 /dev/tty 设备而言的,伪终端就是当你在图形用户界面使用 /dev/tty7 时每打开一个终端就会产生一个伪终端, pts/0 后面那个数字就表示打开的伪终端序号,你可以尝试再打开一个终端,然后在里面输入 who am i ,看第二列是不是就变成 pts/1 了,第三列则表示当前伪终端的启动时间。
who命令及其他参数:
|参数|说明|
|-a|打印能打印的全部|
|-d|打印死掉的进程|
|-m|同am i,mom likes|
|-q|打印当前用户数及用户名|
|-u|打印当前登录用户登录信息|
|-r|打印运行等级|
3.1.2 创建用户
新建一个叫 lilei 的用户:
sudo adduser lilei
这个命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录:
ls /home
现在你已经创建好一个用户,并且你可以使用你创建的用户登录了,使用如下命令切换登录用户:
su -l lilei
3.1.3 用户组
在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,就跟家的形式差不多,你的兄弟姐妹(不同的用户)属于同一个家(用户组),你们可以共同拥有这个家(共享资源),爸妈对待你们都一样(共享权限),你偶尔写写日记,其他人未经允许不能查看(私有资源和权限)。当然一个用户是可以属于多个用户组的,正如你既属于家庭,又属于学校或公司。
在 Linux 中如何查看一个用户属于哪些用户组呢?
方法一:使用groups命令:
lilei
输出:
lilei : lilei
其中冒号之前表示用户,后面表示该用户所属的用户组。这里可以看到 shiyanlou 用户属于 shiyanlou 用户组,每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组(差不多就相当于家长的意思)。
方法二、查看/etc/group文件:
cat /etc/group | sort
这里 cat 命令用于读取指定文件的内容并打印到终端输出。 | sort 表示将读取的文本进行一个字典排序再输出。
可以使用命令过滤掉一些你不想看到的结果:
cat /etc/group | grep -E "lilei"
将其他用户加到 sudo 用户组
默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入 sudo 用户组从而获取 root 权限:
sudo usermod -G sudo lilei
使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令。
3.1.4 删除用户
删除用户并移除其 home 目录:
sudo deluser lilei --remove-home
删除用户但不移除其 home 目录:
sudo deluser lilei --remove-home
3.2 文件权限
文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。
Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。
在 Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
3.2.1 查看文件权限
使用ls -l查看文件权限:
ls -l
输出:
总用量24
drwxr-xr-x4 hadoop hadoop 4096 9月29 07:45 hadoop
drwxr-xr-x9 labex labex 4096 9月29 07:41 labex
drwxr-xr-x 2 1001 1001 409612月1520:22 lilei
drwxr-xr-x 2 lilwi lilwi 4096 12月1520:22 lilwi
drwxr-xr-x 2 shiyanlou shiyanlou 4096 9月29 07:36 project

图片来源:实验楼

图片来源:实验楼
3.2.2 变更文件所有者
先创建一个文件如file,然后使用ls -l查看该文件属性:
总用量0
-rw-rw-r-- 1 lilei lilei 0 12月15 20:47 file
换回到原用户,使用以下命令变更文件所有者为原用户:
sudo chown usr1 file
再查看属性:
总用量0
-rw-rw-r-- 1 usr1 lilei 0 12月15 20:47 file
3.2.3 修改文件权限
如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改,这里有两种方式:
方法一:二进制数字表示

图片来源:实验楼
每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)对应一个 " rwx ",也就是一个 “ 7 ” ,所以如果我要将文件file的权限改为只有我自己可以用那么就这样:
chmod 600 file
方法二:加减赋值操作
chmod [obj][+/=][r/w/x] file
- [obj]表示用户,g/o/u 分别表示 group/others/user,写的时候顺序无所谓
- [+/-]分别表示增加和去掉相应的权限
- [r/w/x]对应三种权限,写的时候顺序无所谓
例子:
chmod go-rw file
↑表示去掉 group 和 others 的 rw 权限。
chmod uog+rwx file
↑表示给三种对象都加上 rwx 权限。
chmod ug-wxr file
↑表示去掉 user 和 group 的 rwx 权限。
3.3 其他
adduser 和 useradd 的区别是什么?
答:useradd 只创建用户,创建完了用 passwd lilei 去设置新用户的密码。adduser 会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。
Linux 还有一些关于隐藏权限和特殊权限的内容,想全面了解 Linux 权限管理这部分内容的用户可以通过其它方式学习。
Linux 实验 [Day 01]的更多相关文章
- Linux网络服务01——Linux网络基础设置
Linux网络服务01--Linux网络基础设置 一.查看及测试网络 1.使用ifconfig命令查看网络接口 (1)查看活动的网络接口 ifconfig命令 [root@crushlinux ~]# ...
- Linux 生产实习01
Linux 生产实习01 标签(空格分隔): Linux 2018.07.02 相关软件下载地址:Linux Study 0x01. 安装 VMware Workstation VMware Work ...
- BlackArch Linux 2019.06.01 宣布发布
导读 BlackArch Linux是一个基于Arch Linux的发行版,专为渗透测试人员和安全研究人员设计,并包含大量渗透测试和安全实用程序,已宣布发布2019.06.01版本. BlackArc ...
- Linux实验二报告
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级: 201352 姓名:池彬宁 贺邦 学号:2013521 ...
- Linux实验四报告
张文俊 + 原创作品转载请注明出处+ <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.学习内容 系统 ...
- 《Linux实验要求》
实验 1:登录和使用基本的 Linux 命令 实验环境: 安装了 Red Hat Enterprise Linux 6.0 可运行系统,并且是成功验证系统. 有另外一个无特权用户 student,密码 ...
- Linux实验二
一 第一个实验 Linux基础 1 通过娄老师关于分析学霸学渣的前言 明白了真正的学习一门功课应该是思考本质 而不是纯属记忆 2 全部的命令如下 Linux命令格式:command [o ...
- Linux实验:hdfs shell基本命令操作(一)
[实验目的] 1)熟练hdfs shell命令操作 2)理解hdfs shell和linux shell命令 [实验原理] 安装好hadoop环境之后,可以执行hdfs shell命令对hdfs 的空 ...
- Linux实验:hdfs shell基本命令操作(二)
[实验目的] 1)熟练hdfs shell命令操作 2)理解hdfs shell和linux shell命令[实验原理] 安装好hadoop环境之后,可以执行hdfs shell命令 ...
随机推荐
- 为宇宙第一强的IDE干一票
背景 在博客园看到很多人说.net在国内已死,很多人在为.net前途担忧,包括一些创业大佬也提及到这些问题,提及到客户指定了说使用php或者java. 那么基本可以确认了,.net 处于风雨漂泊的地位 ...
- Rust 入门 (三)_下
这部分我们学习 rust 语言的 变量.数据类型.函数.注释.流程控制 这五个方面的内容.前文介绍了前两个内容,本文介绍后三个内容. 函数 函数在 rust 代码普遍存在,我们也已经见过了它的主函数 ...
- LESSON 5 - Markov Sources
1. Markov sources The state of the Markov chain is used to represent the “memory” of the source ...
- 程序员的算法课(16)-B+树在数据库索引中的作用
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...
- swiper实现一个好看的轮播图
轮播是我们在编写页面中经常遇到的模块,所以网上也会有各种有有关轮播图的插件.今天忽然间看到了swiper上一个高颜值的轮播功能,顺便做一下分享. 首先页面在head内要先引用 swiper的css 和 ...
- oracle创建jobs定时任务报错:PLS-00306: wrong number or types of arguments in call to 'JOB'
原脚本: begin sys.dbms_job.submit(job => job, what => 'xxx;', ...
- 【如何让代码变“高级”(二)】-这样操作值得一波666(Java Stream)(这么有趣)
[如何让代码变“高级”(二)]-这样操作值得一波666(Java Stream)(这么有趣) 开发中的代码 在开发中的代码是不是很常见这样的代码: 这样的? for循环取元素取值 List<Us ...
- Cisco 7200 路由 PPPOE 拨号详解
1.1配置虚拟拨号接口 R1(config)#vpdn enable #启用vpdn虚拟专用拨号网络 R1(config)#interface dialer 1 ...
- luogu P1336 最佳课题选择 |背包dp
题目描述 Matrix67要在下个月交给老师n篇论文,论文的内容可以从m个课题中选择.由于课题数有限,Matrix67不得不重复选择一些课题.完成不同课题的论文所花的时间不同.具体地说,对于某个课题i ...
- mint UI MessageBox 使用
一.全局注册 1.在main.js中引入 //引入 import { MessageBox } from 'mint-ui'; //全局使用,挂载到原型上 Vue.prototype.$messa ...