Tab
键来进行命令补全,Ctrl+c
键来强行终止当前程序(你可以放心它并不会使终端退出)其他一些常用快捷键
按键 | 作用 |
---|---|
Ctrl+d | 键盘输入结束或退出终端 |
Ctrl+s | 暂定当前程序,暂停后按下任意键恢复运行 |
Ctrl+z | 将当前程序放到后台运行,恢复到前台为命令fg |
Ctrl+a | 将光标移至输入行头,相当于Home键 |
Ctrl+e | 将光标移至输入行末,相当于End键 |
Ctrl+k | 删除从光标所在位置到行末 |
Alt+Backspace | 向前删除一个单词 |
Shift+PgUp | 将终端显示向上滚动 |
Shift+PgDn | 将终端显示向下滚动 |
字符 | 含义 |
---|---|
* | 匹配 0 或多个字符 |
? | 匹配任意一个字符 |
[list] | 匹配 list 中的任意单一字符 |
[!list] | 匹配 除list 中的任意单一字符以外的字符 |
[c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] |
{string1,string2,…} | 匹配 sring1 或 string2 (或更多)其一字符串 |
{c2..c2} | 匹配 c1-c2 中全部字符 如{1..10} |
在 Linux 环境中,如果你遇到困难,可以使用man
命令,它是Manual page
的缩写。
你可以使用如下方式来获得某个命令的说明和使用方式的详细介绍:
$ man
要查看相应区段的内容,就在 man 后面加上相应区段的数字即可,如:
$ man 1 ls
会显示第一区段中的ls命令man页面。
如果你知道某个命令的作用,只是想快速查看一些它的某个具体参数的作用,那么你可以使用–help参数,大部分命令都会带有这个参数,如:
$ ls --help
$ who am i
或者
$ who mom likes
pts/0
中 pts
表示伪终端,0
数字表示打开的伪终端序号。也可以使用whoami
来查看当前登录用户的用户名。
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 -
命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。
例如创建一个叫lilei的用户:
$ sudo adduser lilei
$ ls /home
这个命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录
现在创建好一个用户后,并且可以使用创建的用户登录了,使用如下命令切换登录用户:
$ su -l lilei
退出当前用户跟退出终端一样可以使用 exit
命令或者使用快捷键 Ctrl+d
。
如何知道自己属于哪些用户组呢?
使用groups命令
$ groups shiyanlou
冒号之前表示用户,后面表示该用户所属的用户组。默认情况下在sudo用户组里的可以使用sudo命令获得root权限。
查看/etc/group文件
$ cat /etc/group | sort
cat
命令用于读取指定文件的内容并打印到终端输出| sort
表示将读取的文本进行一个字典排序再输出输出的东西太多,可以使用如下命令来过滤:
$ cat /etc/group | grep -E "shiyanlou|sudo"
etc/group
文件格式说明
格式如下:
group_name:password:GID:user_list
默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入sudo用户组从而获取 root 权限。
$ su -l lilei
$ sudo ls
会提示 lilei 不在 sudoers 文件中,意思就是 lilei 不在 sudo 用户组中。
使用 usermod
命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令
$ su shiyanlou
$ groups lilei
$ sudo usermod -G sudo lilei
$ groups lilei
$ sudo deluser lilei --remove-home
使用较长格式列出文件:
$ ls -l
cat
之类的命令来读取某个文件的内容ls
加上 -lh
参数来更直观的查看文件的大小。补充一下关于 ls 命令的一些其它常用的用法
显示除了 ‘.’(当前目录),’..’ 上一级目录之外的所有包含隐藏文件(Linux 下以 ‘.’ 开头的文件为隐藏文件)
$ ls -A
当然,你可以同时使用 ‘-A’ 和 ‘-l’ 参数:
$ ls -Al
查看某一个目录的完整属性,而不是显示目录里面的文件属性:
$ ls -dl <目录名>
显示所有文件大小,并以普通人类能看懂的方式呈现:
$ ls -AsSh
其中小 s 为显示文件大小,大 S 为按文件大小排序
假设目前是 lilei 用户登录,新建一个文件,命名为 “iphone6”:
$ touch iphone6
现在,换回到shiyanlou用户身份,使用以下命令变更文件所有者为 shiyanlou :
$ cd /home/lilei
$ ls iphone6
$ sudo chown shiyanlou iphone6
$ cp iphone6 /home/shiyanlou
现在查看,发现 文件所有者成功修改为 shiyanlou :
如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改,这里有两种方式:
二进制数字表示
每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)就对应这一个 “rwx”,也就是一个 ‘7’ ,所以如果我要将文件“iphone6”的权限改为只有我自己可以用那么就这样:
为了演示,先在文件里加点内容:
$ echo "echo \"hello shiyanlou\"" > iphone6
然后修改权限:
$ chmod 700 iphone6
加减赋值操作
$ chmod go-rw iphone6
‘g”o’还有’u’,分别表示group,others,user,’+’,’-’ 就分别表示增加和去掉相应的权限。