Linux基础入门学习笔记一

Linux基础入门

基本概念及操作

命令行操作体验

重要快捷键

  • [Tab] 使用Tab键来进行命令补全,
  • [Ctrl+c] Ctrl+c键来强行终止当前程序(你可以放心它并不会使终端退出)

其他一些常用快捷键

按键 作用
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂定当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a 将光标移至输入行头,相当于Home键
Ctrl+e 将光标移至输入行末,相当于End键
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动

Shell 常用通配符

字符 含义
* 匹配 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

用户及文件权限管理

Linux用户管理

查看用户

$ who am i

或者

$ who mom likes

结果如下:
这里写图片描述

  • 第一列表示打开当前伪终端的用户的用户名
  • 第二列pts/0pts 表示伪终端,0数字表示打开的伪终端序号。

也可以使用whoami来查看当前登录用户的用户名。

who命令其它常用参数:

参数 说明
-a 打印能打印的全部
-d 打印死掉的进程
-m 同am i,mom likes
-q 打印当前登录用户数及用户名
-u 打印当前登录用户登录信息
-r 打印运行等级

创建用户

在 Linux 系统里, root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户。
我们一般登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo 这个命令了。不过使用这个命令有两个大前提:

  1. 你要知道当前登录用户的密码
  2. 当前用户必须在 sudo 用户组。

su,su- 与 sudo

su 可以切换到用户user,执行时需要输入目标用户的密码,sudo 可以以特权级别运行cmd命令,需要当前用户属于sudo组,且需要输入当前用户密码。su - 命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。

例如创建一个叫lilei的用户:

$ sudo adduser lilei

Linux基础入门学习笔记一_第1张图片

$ ls /home

这个命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录

现在创建好一个用户后,并且可以使用创建的用户登录了,使用如下命令切换登录用户:

$ su -l lilei

退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d

Linux基础入门学习笔记一_第2张图片

用户组

如何知道自己属于哪些用户组呢?
使用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
  • group_name : 用户组
  • password : 用户组口令。password 字段为一个 ‘x’ 并不是说密码就是它,只是表示密码不可见而已。
  • GID : GID
  • user_list : 该用户组所包含的用户(User)
将其它用户加入 sudo 用户组

默认情况下新创建的用户是不具有 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

Linux 文件权限

查看文件权限

使用较长格式列出文件:

$ ls -l

Linux基础入门学习笔记一_第3张图片

解释如下:
Linux基础入门学习笔记一_第4张图片
Linux基础入门学习笔记一_第5张图片

  • 文件类型:Linux 里面一切皆文件
  • 文件权限:
    • 读权限,表示你可以使用 cat 之类的命令来读取某个文件的内容
    • 写权限,表示你可以编辑和修改某个文件
    • 执行权限,通常指可以运行的二进制程序文件或者脚本文件,如同 Windows 上的 ‘exe’ 后缀的文件
    • 需要注意的一点是,一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息
    • 所属用户组权限,是指你所在的用户组中的所有其它用户对于该文件的权限
  • 链接数:链接到该文件所在的 inode 结点的文件名数目
  • 文件大小:以 inode 结点大小为单位来表示的文件大小,你可以给 ls 加上 -lh 参数来更直观的查看文件的大小。

补充一下关于 ls 命令的一些其它常用的用法

  • 显示除了 ‘.’(当前目录),’..’ 上一级目录之外的所有包含隐藏文件(Linux 下以 ‘.’ 开头的文件为隐藏文件)

    $ ls -A

    当然,你可以同时使用 ‘-A’ 和 ‘-l’ 参数:

    $ ls -Al

    查看某一个目录的完整属性,而不是显示目录里面的文件属性:

    $ ls -dl <目录名>
  • 显示所有文件大小,并以普通人类能看懂的方式呈现:

    $ ls -AsSh

    其中小 s 为显示文件大小,大 S 为按文件大小排序

变更文件所有者

假设目前是 lilei 用户登录,新建一个文件,命名为 “iphone6”:

$ touch iphone6

可见文件所有者是 lilei :
这里写图片描述

现在,换回到shiyanlou用户身份,使用以下命令变更文件所有者为 shiyanlou :

$ cd /home/lilei
$ ls iphone6
$ sudo chown shiyanlou iphone6
$ cp iphone6 /home/shiyanlou

现在查看,发现 文件所有者成功修改为 shiyanlou :
Linux基础入门学习笔记一_第6张图片

修改文件权限

如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改,这里有两种方式:

二进制数字表示

Linux基础入门学习笔记一_第7张图片

每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)就对应这一个 “rwx”,也就是一个 ‘7’ ,所以如果我要将文件“iphone6”的权限改为只有我自己可以用那么就这样:

为了演示,先在文件里加点内容:

$ echo "echo \"hello shiyanlou\"" > iphone6

然后修改权限:

$ chmod 700 iphone6

Linux基础入门学习笔记一_第8张图片

加减赋值操作

$ chmod go-rw iphone6

这里写图片描述

‘g”o’还有’u’,分别表示group,others,user,’+’,’-’ 就分别表示增加和去掉相应的权限。

你可能感兴趣的:(Linux)