linux基本概念以及常用指令

By   读完需2分钟

文件权限

在linux中的每一个文件或者目录都包含访问权限,这些访问权限决定谁能访问以及可以进行的操作。
使用linux查看指令

ll -a # 查看当前路径下的所有文件以及目录的详细信息


[hqwsky@localhost  .ssh]$ ll -a
总用量 16
drwx------  2 hqwsky hqwsky 4096 9月   3 22:04 .
drwx------ 46 hqwsky hqwsky 4096 9月   3 21:41 ..
-rw-r--r--  1 hqwsky hqwsky   30 9月   3 21:38 config
-rw-------  1 hqwsky hqwsky  797 9月   3 21:41 known_hosts

当执行ll -a命令后显示的结果,最前面的第2~10个字符用来表示权限,第一个字符用来区分文件和目录。
d:表示一个目录,目录是一种特殊的文件
-:表示为普通的文件
l:表示符号链接文件,实际上它指向另一个文件
b,c:分别表示区块设备和其他的外围设备,是特殊类型的文件

下面详细介绍一下权限的种类和设置权限的方法: 第2~10个字符中每3个为一组,左边的一组表示文件所有者权限,也就是文件创建者的权限,中间的一组字符表示为与所有者同组的用户的权限,右边的3个字符表示是不同组的其他用户的权限。
r(read, 读):对于文件而言,具有读取文件内容的权限;对于目录来说,具有浏览目录的权限
w(write,写):对于文件而言,具有新增、修改文件内容的权限;对目录而言,具有删除、移动目录的权限
x(execute,执行):对文件而言,具有执行文件的权限;对目录而言,用户具有进入目录的权限
-:表示不具有相应的权限

每个user都有自己的工作目录,通常放置在/home下,这些专属目录的默认权限为rwx——,表示只有所有者才有完整的权限,其他的用户没有任何权限,此外默认的权限可用umask命令修改

使用chmod改变访问权限

文件和目录的权限表示,用rwx来表示所有者、用户组和其他用户的权限。为了方便表示,可以使用数字来表示权限:
r:对应数值4
w:对应数字2
x:对应数字1
-:对应数字0
理解mode的值,其实很简单,我们可以将rwx看成二进制数,1代表有,0代表没有,那么rwxr-xr–则可以表示为111101100,转换为十进制数为754.


[hqwsky@localhost git]$ ll 
总用量 4
drwx------ 3 hqwsky hqwsky 4096 9月   3 18:33 repo
[hqwsky@localhost git]$ sudo chmod 755 repo
[hwqsky@localhost git]$ ll
总用量 4
drwxr-xr-x 3 hqwsky hqwsky 4096 9月   3 18:33 repo

使用chown改变所有权

文件与目录不仅可以改变权限,其所有权以及所属用户组也可以改变。

chown option username:groupname file


[hqwsky@localhost git]$ ll 
总用量 4
drwxr-xr-x 3 hqwsky hqwsky 4096 9月   3 18:33 repo
[hqwsky@localhost git]$ sudo chown huangjl repo
[hqwsky@localhost git]$ ll 
总用量 4
drwxr-xr-x 3 huangjl hqwsky 4096 9月   3 18:33 repo
[hqwsky@localhost git]$ sudo chown :huangjl repo
[hqwsky@localhost git]$ ll 
总用量 4
drwxr-xr-x 3 huangjl huangjl 4096 9月   3 18:33 repo
[hqwsky@localhost git]$ sudo chown hqwsky:hqwsky repo
[hqwsky@localhost git]$ ll 
总用量 4
drwxr-xr-x 3 hqwsky hqwsky 4096 9月   3 18:33 repo

要修改目录的权限,使用-R参数就可以

添加用户

用户的概念:
linux是多用户操作系统,所以我们能在linux系统建若干用户(user),比如有人想用你的计算机,但是你不想让他用你的用户名登录,因为你的用户名的资料不想让别人看到,这时,可以给他建一个新的用户名,互不影响。linux的用户账号一般记录在/etc/passwd文件中
用户组的概念:
用户组(group)就是具有相同特征的用户(user)的集合体; 有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的.
用户和用户组的对应关系可以是:一对一、多对一、一对多或多对多。


1. 与用户(user)相关的配置文件  
  /etc/passwd 注:用户(user)的配置文件  
  /etc/shadow 注:用户(user)的密码文件,哈希加密的密文  

2. 与用户组(group)相关的配置文件  
  /etc/group 注:用户组(group)配置文件  
  /etc/gshadow 注:用户组(group)的影子文件  

3. 管理用户(user)的命令:  
   useradd  username 注:添加用户username,默认用户组名为username,默认会在/home下创建该用户的工作目录  
   userdel  username 注: 删除用户username
   passwd username 注:为用户username设置密码,会提示用户输入新的密码,并确认  
   usermod username 注:修改用户username的登录名,家目录等  
   su username 注:切换到用户username的家目录(工作目录)  
   sudo 注:sudo以root权限直接执行命令,可以使用visudo来编辑/etc/sudoers使用无root密码执行  

4. 管理用户(group)的命令:  
   groupadd groupname 注:添加用户组groupname  
   groupdel groupname 注:删除用户组groupname  
   groupmod groupname 注:修改用户组的信息  
 
 
5. /etc/default/useradd文件:  
通过useradd添加用户时的规则  
GROUP = 100  
HOME=/home  注:把用户的家目录(工作目录)建在/home中;  
INACTIVE=-1  注:是否启用帐号过期停权,-1表示不启用;  
EXPIRE=   注:帐号终止日期,不设置表示不启用;  
SHELL=/bin/bash  注:所用SHELL的类型;  
SKEL=/etc/skel   注: 默认添加用户的目录默认文件存放位置  

linux常用指令

1. cat命令
   cat file    # 用于显示整个文件
   cat file1 file2 > file     # 合并文件
   cat file > /dev/null     # 不显示文件内容
   cat file1 >> file2      # 将file1内容追加到file2 
2. touch命令
   一般用于修改文件的时间戳,或者新建一个不存在的文件
   touch -t  YYMMDDhhmm[.SS] file   # 指定文件的时间戳
   touch file1  file2  # 同时创建多个文件