文章目录
linux终端
终端(Terminal)和控制台(Console)是有区别的。
在物理机系统上可以通过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换
Shell
通常在图形界面中对实际体验带来差异的不是不同发行版的各种终端模拟器,而是这个 Shell(壳)。有壳就有核,这里的核就是指 UNIX/Linux 内核,Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe 。普通意义上的 Shell 就是可以接受用户输入命令的程序。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。同样的 UNIX/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做“虚拟 shell”或“图形 shell”。
########################################################################################################
UNIX/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言。当然这一点也有别于 Windows 下的命令行,虽然该命令行也提供了很简单的控制语句。在 Windows 操作系统下,有些用户从来都不会直接使用 Shell,然而在 UNIX 系列操作系统下,Shell 仍然是控制系统启动、X11 启动和很多其它实用工具的脚本解释程序。
在 UNIX/Linux 中比较流行的常见的 Shell 有 bash、zsh、ksh、csh 等等,Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity(基于 GNOME)。
命令行操作
1 重要快捷键:
Tab键来进行命令补全
Ctrl+c键来强行终止当前程序
2 其他一些常用快捷键
按键 | 作用 |
---|---|
Ctrl+d | 键盘输入结束或退出终端 |
Ctrl+s | 暂停当前程序,暂停后按下任意键恢复运行 |
Ctrl+z | 将当前程序放到后台运行,恢复到前台为命令fg |
Ctrl+a | 将光标移至输入行头,相当于Home键 |
Ctrl+e | 将光标移至输入行末,相当于End键 |
Ctrl+k | 删除从光标所在位置到行末 |
Alt+Backspace | 向前删除一个单词 |
Shift+PgUp | 将终端显示向上滚动 |
Shift+PgDn | 将终端显示向下滚动 |
3.学会利用历史输入命令
键盘上的方向上键↑
4.学会使用通配符
通配符是一种特殊语句,主要有星号(*)和问号(?),用来对字符串进行模糊匹配(比如文件名、参数名)。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正字符。
如: ls *.txt
创建多个文件:touch test_{1…10}.txt
Shell 常用通配符:
字符 | 含义 |
---|---|
* | 匹配 0 或多个字符 |
? | 匹配任意一个字符 |
[list] | 匹配 list 中的任意单一字符 |
[^list] | 匹配 除list 中的任意单一字符以外的字符 |
[c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] |
{string1,string2,…} | 匹配 string1 或 string2 (或更多)其一字符串 |
{c1…c2} | 匹配 c1-c2 中全部字符 如{1…10} |
5.学会在命令行中获取帮助
用户可以通过执行man命令调用手册页
Linux 用户管理
查看用户
打开终端,输入命令:
$ who am i
或者
$ who mom likes
输出的第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami 即可),第二列的 pts/0 中 pts 表示伪终端
who 命令其它常用参数:
参数 | 说明 |
---|---|
-a | 打印能打印的全部 |
-d | 打印死掉的进程 |
-m | 同am i,mom likes |
-q | 打印当前登录用户数及用户名 |
-u | 打印当前登录用户登录信息 |
-r | 打印运行等级 |
创建用户
在 Linux 系统里, root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户。
我们一般登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo 这个命令了。不过使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo 用户组。
su,su- 与 sudo:
su 可以切换到用户 user,执行时需要输入目标用户的密码,sudo 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。su - 命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。
创建用户:
$ sudo adduser user1
退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d。
用户组
在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,就跟家的形式差不多。
一个用户是可以属于多个用户组的
在 Linux 里面查看自己属于哪些用户组
-
方法一:使用 groups 命令
-
方法二:查看 /etc/group 文件
$ cat /etc/group | sort
将其它用户加入 sudo 用户组:
默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入 sudo 用户组从而获取 root 权限:# 注意 Linux 上输入密码是不会显示的
$ su -l user1
$ sudo ls
使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令。
$ groups user1
$ sudo usermod -G sudo user1
$ groups user1
删除用户是很简单的事:
$ sudo deluser user1 --remove-home
Linux 文件权限
查看文件权限:
使用较长格式列出文件:
$ ls -l
Linux 里面一切皆文件
变更文件所有者
$ sudo chown shiyanlou iphone6
修改文件权限
方式一:二进制数字表示
$ chmod 600 test
方式二:加减赋值操作
$ chmod go-rw test
**
adduser 和 useradd 的区别
**
useradd 只创建用户,创建完了用 passwd user1 去设置新用户的密码。adduser 会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。