Linux 实验 [Day 01]

记录一下学习 Linux 以及动手实验的内容。安全

图片来源:实验楼

1. Linux 简介(略过)

2. Linux 基本概念及操做:命令、快捷键与通配符

2.1 基础命令

ls, pwd, cd, cat, touch等bash

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.txtfgh.txt两个文件:函数

ls *.txt

输出:oop

asd.txt fgh.txt
ls as?.txt

输出:学习

asd.txt

一次性建立多个相似文件:spa

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命令调用手册页。
你可使用以下方式来得到某个命令的说明和使用方式的详细介绍:code

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. 用户及文件权限管理

  1. 实验内容
    1. Linux 中建立、删除用户,及用户组操做
    2. Linux 中的文件权限设置
  2. 实验知识点
    1. Linux 用户管理
    2. 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 用户组,每次新建用户若是不指定用户组的话,默认会自动建立一个与用户名相同的用户组(差很少就至关于家长的意思)。

方法2、查看/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 权限管理这部份内容的用户能够经过其它方式学习。

相关文章
相关标签/搜索