基础命令(文件内容管理)

1.cat:在当前终端显示文本文件内容

  格式:cat [文件路径]

    -n  从1开始对所有输出的行数编号

    -b  和-n相似,只不过对于空白行不编号;
2.head:从文件内容开头输出,默认头部10行

  格式:head [文件路径]

    -c N  输出文件头部的N(N为整数)个字节内容

    -n N  输出文件头部的N(N为整数)行的内容  

3.tail:从文件尾部内容输出,默认尾部10行

  格式:tail [文件路径]

    -c N  输出文件尾部的N(N为整数)个字节内容
    -n N  输出文件的尾部N(N位数字)行的内容

    -f   动态监控文件内容是否有追加
4.more:分屏显示文件内容

  格式:more [文件路径]

    -<数字>:指定每屏显示的行数
  操作:按Space键显示文本的下一屏内容

    按Enter键显示文本的下一行内容

    按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式

    按H键:显示帮助屏,该屏上有相关的帮助信息

    按B键:显示上一屏内容

    按Q键:退出more命令

5.less:与more类似,分屏显示文件内容

  格式:less [文件路径]

    -e  文件内容显示完毕后,自动退出

    -N  每一行行首显示行号

  操作:PageUp键向上翻页

    PageDown键向下翻页
6.grep:使用正则表达式筛选显示文件内容,一般应用于管道命令

  格式:grep [正则表达式或字符串] [文件路径]

    -s  不显示错误信息

    -v  反转查找

  示例:

  grep home home.txt  返回包含“home”的文本行

基础命令(归档和压缩)

1.tar:打包解包和压缩解压

  格式:tar [选项] [文件路径]

    -c  建立新的备份文件

    -x  解包备份文件

    -C <目录>  这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项

    -t  列出备份文件的内容

    -z  通过gzip指令处理备份文件;

    -v  显示指令执行过程

    -r  添加文件到已经压缩的文件;

    -j  支持bzip2格式文件

  示例:

  tar -cvf log.tar log2012.log  仅打包,不压缩

  tar -zcvf log.tar.gz log2012.log  打包后,以 gzip 压缩,解压将c替换为x

  tar -jcvf log.tar.bz2 log2012.log   打包后,以 bzip2 压缩,解压将c替换为x

  tar -zxvf log.tar.gz -C /root  解gzip方式压缩的包,存放到/root下

  tar -jxvf log.tar.bz2  解bzip2方式压缩的包,后面可用-C加存放路径

用户和组

用户介绍

系统中的每个进程(运行程序)都作为一个特定用户运行,每个文件归一个特定用户所有,对文件和目录的访问收到用户的显示,与运行进程相关联的用户可确定该进程可访问的文件和目录

·用户:用户是能够获取系统资源的权限的集合

·用户分类:

  a.管理员 root:具有使用系统所有权限的用户

b.普通用户:即一般用户,其使用系统的权限受限

c.系统用户:保障系统运行,一般不提供密码登录系统

·用户查询

  id                  查看当前用户信息

id user          查看用户user信息

ls –l              长格式显示文件属性,第三列为所属用户

ps au            查看当前终端所关联的用户的进程,第一列为所属用户(进程管理详解)

·用户相关文件(用户):/etc/passwd

  文件内容格式:username:password:UID:GID:GECOS:diretory:shell

    username:用户名或帐号,不唯一

password:用户密码占位符,具体密码存放在/etc/shadow文件中

UID:用户的ID号,作为用户的唯一标识号

GID:用户所在组的ID号,作为用户组的唯一标识号(为用户的主要组)

GECOS:用户的详细信息(如姓名,年龄,电话等)

diretory:用户个人数据和配置文件所的家目录

shell:用户所在的shell环境

·用户相关文件(密码):/etc/shadow,一开始,加密的密码存储在全局可读的/etc/passwd文件中,被认为有最合理的安全性,但随密码暴力破解、字典攻击的普及,加密密码或’密码哈希’就被移到了更加安全的/etc/shadow中

  文件内容格式:name:password:lastchange:minage:maxage:warning:inactive:expire:blank

    name:有效登录名称

    password:已加密密码(开头!表示密码已锁定)

    lastchange:-d,最近更改密码的日期(以1970.1.1日的天数表示)

    minage:-m,不可更改密码的天数,0表示无要求

    maxage:-M,必须更改密码的最大天数

    warning:-W,密码即将到期的警告期,0表示不提供警告

    inactive:-I,密码过期后宽限的时间,过后失效无法登录

    expire:账户失效,以距离1970.1.1的天数表示

    blank:预留字段

  注:密码时间管理暂不说明

组介绍

·组:用户的集合,权限的容器

·组分类:

  a.普通用户组(补充组/附加组):可以加入多个用户

b.系统组:一般加入一些系统用户

c.私有组(主要组):也称基本组,当创建用户时,如果没有为其指明所属组,则为其自动定义一个私有的用户组,名称与用户名同名。私有组可以变成普通用户组,其他用户加入该组时,则变成普通组

  注:每个用户只有一个主要组,一般由/etc/passwd第4个字段的组GID定义

  注:用户创建的新文件归主要组所有

  注:创建用户的主要组是名称和用户相同的新建组,该新建用户是其用户专用组的唯一成员

·与组相关的文件/etc/group

  文件内容格式:group_name:password:GID:user_list

    group_name:组名

passwoerd:组密码

GID:组的ID号,唯一标识号

user_list:以group_name为附加组的用户列表

基础命令用户和组管理命令

1.useradd:创建用户

  格式:useradd [用户名]

    -u  指定用户UID

    -g  指定用户GID

    -d  指定用户家目录,默认是/home/username

    -s  指定用户所在的shell环境

    -G  指定用户的附加组

    注:大部分参数可应用于usermod命令修改用户

  示例:

  增加一用户wendy,指定UID为1888,家目录/home/oracle,shell为/bin/sh

useradd –u 1888 –d /home/oracle –s /bin/sh wendy

2.usermod:修改用户信息

  格式:usermod [选项] [用户名]

    -u  配置用户UID

    -g  配置用户GID

    -d  配置用户家目录,默认是/home/username

    -m  与-d 一起用表示把用户家目录的内容也移走

    -s  配置用户所在的shell环境

    -G  配置用户的附加组

    注:大部分参数可应用于usermod命令修改用户

  示例:

  修改用户wendy,UID为1000,家目录/oracle,shell为/bin/bash

usermod –u 1000 –d /oracle –s /bin/bash -m wendy

3.userdel:删除用户

  格式:userdel [用户名]

    -r  连同家目录一起删除

    注:不加-r只从/etc/passwd中删除,默认情况保存家目录及数据

  示例:

  删除用户wendy及家目录

  userdel –r wendy

  问题:

  存在无人拥有的文件和目录,只有UID号和GID号,没有所属用户和所属组

  是因为删除用户不加-r选项,保留的家目录及数据将继承原用户的UID和GID号,

4.groupadd:创建组

  格式:groupadd [组名]

    -g  指定GID

    -r  指定/etc/login.defs文件中有效系统GID编号范围内的系统组

  示例:

  增加用户组grp,指定UID为1001

  groupadd  –g  1001  grp

  注:一般指定1000+,避免和系统组冲突

5.groupmod:修改组信息

  格式:groupmod [选项] [组名]

    -n  修改组名

    -g  指定新GID号

  示例:

  修改harry组名为natasha

  groupmod  -n harry natasha

6.groupdel:删除组

  格式:groupdel [组名]

  注:组内必须没有任何成员才能删除,同样要避免无组文件和目录

文件权限

·文件系统权限:linux通过文件权限控制用对文件的访问

·文件所属用户类别

  所属用户:通常为创建文件的用户

  所属组:通常为创建文件的用户的所在组

  其他用户:除了创建用户和该用户所在组内用户以外的用户

  注:一般同一文件的所属用户权限高于所属组高于其他用户

·文件基本权限

  三种文件权限:读取、写入、执行

    读取:r表示read,可以读取文件的内容,列出目录的内容

    写入:w表示write,可以更改文件的内容,可以创建或者删除目录中的内容

    执行:x表示execute,可以作为命令执行文件,可以访问目录中的内容

注:三种权限根据情况进行组合以达到控制文件系统的目的

注:文件被创建,所有者自动拥有所有权限

注:对目录无执行权限,不能cd进入该目录,只能ls目录里的文件名字

注:对目录无执行权限,目录内文件有操作权限可以正常操作目录内文件

注:对目录没有读权限,看不到内容,但是可以cd进目录和对目录内进行操作

注:对目录有写权限,可以删除目录内的任何文件,无关目录内文件的权限,后面会介绍特殊权限‘粘滞位’来覆盖这个问题

注:对目录没有写权限,目录内文件文件可写则可写,但是不能删除或创建

·当创建一个文件的时候,系统保存了有关该文件的全部信息,包括:文件的位置、总计/总用量、文件类型、文件的权限位、SELinux的标记、链接数/目录数、属主属组、文件大小、文件的修改时间、文件名/文件链接名

·ls -l命令查看一个文件的详细属性

[root@Linux ~]# ls -l abc.txt

-rw-r--r--.  1  root root  762  07-29 18:19  abc.txt

说明:

1. -rw-r--r--        该文件的文件类型和权限位

2. "."           支持SELinux标记

3. "1"           该文件硬链接的数目/引用计数

4. root root                文件属主&属组

5. "762"                      字节来表示的文件长度,记住,不是K字节!

6. 07-29 18:19            文件的最后更新时间。

7. abc.txt                    文件名。

·第一字段:第一个字符,文件类型(七种)

-rw-r--r--. :第一个横杠是该文件的文件类型,最后的点表示有selinux标识

  -  普通文件

  d  目录文件

  l  链接文件

  s  套接字文件

  b  块设备文件

  p  命名管道文件

  注:所创建的文件绝大多数都是普通文件、目录文件或符号链接文件

·第一字段:权限位置

rw-r--r-- :这是该文件的权限位,一共是9个字符,他们分别对应9个权限位,三位一组,表示属主权限、属组权限和其他用户权限

  rw-:前三位,文件属主可读、写

  r--:中间三位,组内用户可读

  r--:最后三位,其他用户只可读

  注:为加强系统安全,创建文件时,系统不会自动的赋予属主执行权限

  注:与NTFS权限不同,linux权限只适用于设置了linux权限的目录或文件

  注:目录中的文件和子目录不会继承父目录的权限,通过特殊权限设置继承,此处不做说明

  注:root拥有完全控制文件权限,可以通过selinux策略或者存在问题的进程和文件的安全性上下文限制,此处不做说明

  注:除了基础三权限,linux系统下还有特殊权限和粘滞位,此处不做说明

·第二字段:链接占用的节点

  1

  普通文件:该文件的硬链接数

  目录:该目录所含子目录的个数,新建空目录,此目录的第二字段就是2,表示该目录下有两个子目录。

  注:每一个目录都有一个指向它本身的子目录"." 和指向它上级目录的子目录"..",此默认子目录是隐藏的。

·第三字段:文件(目录)属主&属组

  root root   该字段表示该文件(目录)属主&属组是谁,属组为属主所在的主组。

  注:只有文件的拥有者才具有改动文件属性的权利。

  注:root具有改动任何文件属性的权利。

  注:对目录,只有拥有该目录的用户,或具有w权限用户才有在目录下创建文件的权利。

  注:如果某一用户被删除,而该用户家目录还存在,ls -l 查看该文件将显示一个代表用户存在前ID号的数字。(无主无组文件)

·第四字段:文件大小

  768        文件或者目录所占用的系统空间,以字节为单位

  注:如果是目录,表示该目录大小,而非目录及其下面的文件的总大小

·第五字段:时间戳

  08-03 08:27       文件(目录)最近访问(修改)时间

  注:可通过touch、mkdir修改时间戳

·第六字段:文件/目录名

  abc.txt        如果是链接,会有"->"符号,跟着它指向的文件名

基本命令(文件权限管理)

1.chmod:修改文件权限

  符号法格式:chmod  [Who/What/Which]  [文件名]

    Who指权限组:    用户(u)、组(g)、其他(o)、全部(a)

    what指动作:     添加(+)、删除(-)、精确设置(=)

    which指权限:    读取(r)、写入(w)、执行(xX)

  注:符号法,适合进行单一权限添加或删除

  注:执行X,只对目录或者任意权限位置有执行权限的文件生效

  注:-R选项为递归,表示设置权限时,目录下的子目录和文件也生效设置,与X搭配使用,能够对所有目录设置执行(搜索)权限,但是要注意带执行权限的文件

  示例:

  为abc.txt的属主增加执行权限

  chmod u+x abc.txt

  数值法格式:chmod  [###]  [文件名]

    用数字表示权限:r=4,w=2,x=1,0表示无权限

#表示一组权限rwx之和

    每个#代表一个权限位置:属主、属组、其他

  示例:

  将abc.txt权限修改为rwxr-xr--

  chmod 754 abc.txt

2.chown:更改文件的所有权

  格式:chown [用户或组] [文件名]

    chown  user  file           #修改用户属主

chown  :group  file           #修改用户属组

chown  user:group  file     #修改用户属主和属组

-R  为递归整个目录树

-h  在改变符号链接文件的属主时不影响该链接所指向的目标文件

注:只有root和属主可改文件所有权,普通用户只能改属组,改属主后无法回改

Linux基础系列-Day2的更多相关文章

  1. Linux基础系列-Day1

    Linux发展简史 Unix:1969年由美国电话电报公司(AT&T)贝尔实验室的两个工程师所创造的操作系统,它允许计算机同时处理多用户和程序. BSD:重要的Unix分支,1977年由加州大 ...

  2. Linux基础系列—Linux内核源码目录结构

    /** ****************************************************************************** * @author    暴走的小 ...

  3. Linux基础系列—Linux体系结构和Linux内核结构

    /** ****************************************************************************** * @author    暴走的小 ...

  4. Linux基础系列-Day8

    Shell编程基础 Shell介绍 Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器).它类似于windows下的的cmd.exe.它接收用户命令,然后调用相应的应用程序 ...

  5. Linux基础系列-Day7

    NFS服务(基于CentOS 7.0) NFS(Network File System),网络文件系统,是linux与linux之间进行文件共享的服务,在NFS应用,本地NFS的客户端可以透明地读写位 ...

  6. Linux基础系列-Day6

    Samba服务(基于CentOS 7.0) Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,Samba主要用于Linux或UNIX和Windows系统之 ...

  7. Linux基础系列-Day5

    网络管理 ifconfig网络管理工具 ifconfig依赖于命令中使用一些选项属性,不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置,但是通过ifconfig修改的通常为临时配置,即系统 ...

  8. Linux基础系列-Day4

    top系统监控 top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具.通过top命令所提供的互动式界面,用热键可以管理. [root@centos-py ...

  9. Linux基础系列-Day3

    Vim文本编辑器 •Linux设计的重要原则是信息存储在基于文本的文件中.  注:Linux“一切皆文件”是指包含文本文件和用户不可读的二进制文件(如block设备文件) •文本文件:无格式文件,作用 ...

随机推荐

  1. ionic@2.0 beta版本安装指南

    由于访问npm官方源下载ionic速度缓慢,淘宝提供了npm源,方便国内人士访问. 1.通过config命令 npm config set registry https://registry.npm. ...

  2. 使用abp的 redis cache

    top 使用abp的 redis cache -1. 在微软维护的github项目的release里找到redis的windows版本 64位 大约5M,安装,安装,然后在安装目录找到redis.wi ...

  3. 基于springmvc静态文件资源配置问题

    1.在这里只教大家一种非常实用的 比较简单的一种: 如果两种都配置记得注释掉这种:

  4. webstorm vue环境设置

    1. 首先安装vue插件,安装方法: setting  -->  plugin  ,点击plugin,在内容部分的左侧输入框输入vue,会出现两个关于vue的插件,点击安装即可.安装完成后,就可 ...

  5. 制作Solaris系统的USB启动盘

    制作方法: 1. wget http://192.168.2.5/surefiler-installer/2011-12-09/devel-2011.12.9.tgz 2. cd /root tar  ...

  6. Windows下基于python3使用word2vec训练中文维基百科语料(一)

    在进行自然语言处理之前,首先需要一个语料,这里选择维基百科中文语料,由于维基百科是 .xml.bz2文件,所以要将其转换成.txt文件,下面就是相关步骤: 步骤一:下载维基百科中文语料 https:/ ...

  7. 报错注入遇到ERROR 1242 (21000): Subquery returns more than 1 row解决方案

    我的SQL语句是这样写的. mysql> select 1,2,3 and updatexml(1,concat(1,(select user from mysql.user),1),1);ER ...

  8. Linux内核中链表的实现与应用【转】

    转自:http://blog.chinaunix.net/uid-27037833-id-3237153.html 链表(循环双向链表)是Linux内核中最简单.最常用的一种数据结构.         ...

  9. python mysql插入数据遇到的错误

    1.数据插入的时候报错:not enough arguments for format string,大概意思就是说没有足够的参数格式化字符串. 我的数据库插入方法是这样的 def add_data( ...

  10. 【Educational Codeforces Round 19】

    这场edu蛮简单的…… 连道数据结构题都没有…… A.随便质因数分解凑一下即可. #include<bits/stdc++.h> #define N 100005 using namesp ...