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命令 ...
随机推荐
- 异常:java.lang.RuntimeException: Canvas: trying to draw too large(161740800bytes) bitmap
现象 今天做一个安卓项目的时候,我使用了10张图片,这10张图片都是放在了drawable目录下. 根据这个错误,我在网上寻找解决问题的方案,然后我放在了mipmap-xxhdpi下结果可以运行. 但 ...
- C语言Ⅰ博客作业04
问题 回答 这个作业属于哪个课程 c语言程序设计ll 这个作业要求在哪里 https://blog.csdn.net/qq_42264638/article/details/102381471 我在这 ...
- Server MyEclipse Tomcat v7.0 was unable to start within 45 seconds. If the server requires more time
启动Tomcat服务器时经常遇到这个错误, Server MyEclipse Tomcat v7.0 was unable to start within 45 seconds. If the ser ...
- appium自动化的一个实例
实现appium的自动化,三步走,具体如下: 第一步:启动appium的服务端: 可以通过命令行的方式启动:cmd,然后输入appium,如下图 也可以打开桌面程序appium,点击右上角的运行按钮, ...
- 转:FileSync plugin for Eclipse 安装注意事项 Eclipse文件同步插件
习惯了使用MyEclipse,各种插件不用自己安装,觉得开发起来很方便,现在大家都用Eclipse了,还有不用Eclipse用更高级的,IT当然开发大型项目没人用UltraEdit吧,虽然是一个不错的 ...
- redis数据类型--set
set是String的一个无序集合,最大存储量2^32-1(大概40多亿) 1.操作命令:(xxx可以是任意字符串) sadd xxx a b c d e (添加一个或多个) smembers xxx ...
- FSM有限状态机 ---C#、Unity
抽象类State public interface State//定义状态接口 { void Init();//初始化 int GetCurrentStateId();//返回当前状态Id void ...
- 上手spring boot项目(二)之spring boot整合shiro安全框架
题记:在学习了springboot和thymeleaf之后,想完成一个项目练练手,于是使用springboot+mybatis和thymeleaf完成一个博客系统,在完成的过程中出现的一些问题,将这些 ...
- 用Cocoapods并结合Github管理,导入,更新,下载自己的SDK
转自:http://www.jianshu.com/p/129d3c315ea6
- 移动开发在路上-- IOS移动开发 五 网络请求封装
接着上次的讲,这次我们讲 网络请求的封装 打开创建的项目,让我们一起来继续完成他, 上次我们说到GET请求地址的拼接: 我们接着上次的继续完善: 下边我们要定义的是 block //定义block ...