一、Linux系统学习Idea
学习Linux先明确是学习Linux操作系统还是某个Linux发行版(Ubuntu、CentOS、Fedora、OpenSUSE、Debian、Mint等),发行版指的是由个人或者团队组织编写的操作系统,通常会包括一些系统软件和应用的软件,以及一个用来简化系统初始安装的安装工具,一个典型的Linux发行版会包括Linux内核、一些GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境。
二、LInux基础操作技能
我们在电脑上操作Linux,需要一个客户端,我们称之为 X Client,常用的客户端桌面环境有XFCE、LXDE、KDE和GNOME等。我们下面的操作都是用XFCE。这里还需要了解一个叫“终端”的东西,英文名叫 Terminal,我们在使用LInux的时候并不是直接与系统进行交互的,而是通过一个叫shell的中间程序来完成的,而这个程序是需要我们在一个窗口进行输入的显示的。终端的本质其实就是对应着LInux上的设备,Linux多用户登陆是可以通过不同的设备来完成,默认提供6个。
了解完Terminal,也来了解一下Shell,Shell的中文名是"壳",蛋壳里就应该有”核“,也就是Linux内核,Shell提供给使用者使用界面,在UNIX/Linux 中比较流行的Shell有bash、zsh、ksh、csh等,Ubuntu终端默认使用bash。
2.1 快捷键Tab
这个是一个补全的快捷键,十分常用,就是你输入命令的前几个字母,然后按一下Tab键,就可以提示你命令的全称。
2.2 停止键 Ctrl+C
这个命令的重要性不言而喻,当输入了一个错误的命令的时候,这个时候只需要按住这个按钮就可以实现终止命令的效果。
按键
作用
Ctrl+d
键盘输入结束或退出终端
Ctrl+s
暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z
将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a
将光标移至输入行头,相当于Home键
Ctrl+e
将光标移至输入行末,相当于End键
Ctrl+k
删除从光标所在位置到行末
Alt+Backspace
向前删除一个单词
Shift+PgUp
将终端显示向上滚动
Shift+PgDn
将终端显示向下滚动
2.3 常用通配符
通配符可以用来对字符串进行模糊匹配,通常出现在命令的参数内,Shell在参数值中遇到了通配符时,将其当做路径或者文件名在磁盘上搜寻可能得匹配,若符合要求的匹配存在,就会进行代换(路径扩展),否则就将该通配符作为一个普通字符传递给命令,再由命令进行处理。
比如上面的我新建了2个txt文件,但后来我忘了文件名,但是记得是txt文件,那么我就可以按照上面的方式去进行模糊检索,找到我们想要的结果。
还有,如果我们需要匹配创建一些文件,比如相同前缀,只是后缀不同,可以这么操作:
更多的操作就不一一展示了,大家可以看看下面的列表:
字符
含义
*
匹配 0 或多个字符
?
匹配任意一个字符
[list]
匹配 list 中的任意单一字符
[^list]
匹配 除 list 中的任意单一字符以外的字符
[c1-c2]
匹配 c1-c2 中的任意单一字符 如:[0-9][a-z]
{string1,string2,...}
匹配 string1 或 string2 (或更多)其一字符串
{c1..c2}
匹配 c1-c2 中全部字符 如{1..10}
2.4 命令行中自寻帮助
这个命令就是 man 了,后面跟上命令名称即可。
2.5 安装额外命令
有一些命名本身系统没有自带的,需要我们额外安装,大致的脚本如下:
$sudo apt-get update
$sudo apt-get install sysvbanner
三、用户及文件权限管理
我们知道LInux是允许多个用户同时登陆的操作系统,因此需要对各自用户的文件资源进行管理,不同用户之间不可以轻易地看到、修改彼此的文件。
3.1 查看当前用户- who
关键命令用 who am i,即可输出当前的用户名,更多参数:
参数
说明
-a
打印能打印的全部
-d
打印死掉的进程
-m
同am i,mom likes
-q
打印当前登录用户数及用户名
-u
打印当前登录用户登录信息
-r
打印运行等级
3.2 用户的创建与删除
在Linux中最高权限的用户角色就是root了,他可以做一切的操作,极为强大与危险,建议平时还是使用普通角色来操作系统,避免出现不想看到的情况。但要创建Linux用户,是需要用到root权限的,那么我们可以使用 sudo 命令来切换到root用户。
创建了用户,那么我们可以用过 su -l 来切换用户了。
那接下来,我们可以学习下如何删除用户了,也是简单的命令 sudo deluser ,默认删除用户后是会保留相关的工作路径下的文件,如果加上 --remove-home 就会把所有的东西都删掉啦。
3.3 用户组的创建、赋权与删除
用户组的概念其实很好理解,其实就是我们所加入的“组织”,那么我们如果查看当前状态下到底加入了什么用户组呢?
group
可以看到只有一个叫 samlam的用户组,这个就是上面我创建用户时候自带的,我们可以尝试用sudo命令,但是发现没有权限(因为我们不在sudo用户组底下),所以事情来了,如何把我们刚刚给自己新建的用户也赋予上sudo权限呢?
其实也很简单的,就是用 usermod 命令即可实现。
删除用户组,也是很简单的一个命令 groupdel 。
3.4 文件权限管理
这个简单理解就是限制文件被谁访问,给不同的用户或者用户组赋予文件的访问、修改权限。
我们经常用到 ls 这个命令,我们还可以加一些参数,显示更多信息:
我们创建一个文件,默认会是当前用户为其所有者:
那么其实我们是可以修改所有者的:
默认我们创建的文件都是 rw-rw-r-- 的,也就是没有执行的权限,我们需要对文件的权限进行修改,在了解文件权限修改命令前,我们先要理解一下权限的显示方式,它一般常用的是二进制数字表示,具体见下图:
每个文件有三组固定的权限,分别对应拥有者,所属用户组,其他用户,记住这个顺序是固定的。文件的读写执行对应字母 rwx,以二进制表示就是 111,用十进制表示就是 7。例如我们刚刚新建的文件 learning 的权限是 rw-rw-r--,换成对应的十进制表示就是 664,这就表示这个文件的拥有者,所属用户组具有读写权限,不具有执行权限,其他用户只有读权限。
在了解了上面的原理,我们可以修改文件权限:
chmod 600 learning
ls -alh learning