Linux初学笔记(markdown格式)

Linux基础命令笔记

# Linux

## 命令格式与目录处理命令ls

### 命令格式

“`properties
命令格式:命令 [-选项][参数]
例:ls -la /etc
说明:1) 个别命令使用不遵循此格式
2) 当有多个选项时,可以写在一起
3) 简化选项与完整选项
-a 等于 –all
“`

### 目录处理命令ls

“`properties
命令名称:ls
命令英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法:ls 选项[-ald][文件或目录]
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性

文件权限标志
-rw-r–r–
–> 文件类型(-文件 d目录 l软链接文件)
–> rw– r– r–
u    g   o
u所有者 g所属组 o其他人
r读  w写  x执行
“`

## 关机重启命令

### shutdown命令(推荐)

“`properties
[root@localhost ~]#shutdown [选项] 时间
选项:
-c: 取消前一个关机命令
-h: 关机
-r: 取消前一个关机命令
“`

### 其他关机命令

“`properties
[root@localhost ~]#halt
[root@localhost ~]#poweroff
[root@localhost ~]#init 0
“`

### 其他重启命令

“`properties
[root@localhost ~]#reboot
[root@localhost ~]#init 6
“`

### 系统运行级别

“`properties
0        关机
1        单用户
2        不完全多用户,不含NFS服务
3        完全多用户
4        未分配
5        图形界面
6        重启

[root@localhost ~]#cat /etc/inittab
#修改系统默认运行级别
id:3:initdefault:

#查询系统运行级别
[root@localhost ~]#runlevel
“`

### 退出登录命令

“`properties
#注销用户
[root@localhost ~]#logout

#退出控制台
[root@localhost ~]#exit

#logout和exit的区别
logout 注销用户
exit 退出控制台,对于多层shell,用于逐层退出,到最顶层shell,作用就和logout相同。
如果没有切换过用户的话,这两个命令都是退出控制台了。
如果切换过用户的话,这两个命令都是注销当前用户,返回上一个用户
“`

## 链接命令

### ln链接命令

“`properties
命令名称:ln
命令英文原意:link
命令所在路径:/bin/ln
执行权限:所有用户
语法:
ln -s [原文件] [目标文件]
-s 创建软链接
ln    创建硬链接
功能描述:生成链接文件

示例
#创建文件/etc/issue的软链接/tmp/issue.soft
[root@localhost ~]#ln -s /etc/issue /tmp/issue.soft

#创建文件/etc/issue的硬链接/tmp/issue.hard
[root@localhost ~]#ln /etc/issue /tmp/issue.hard
“`

### 软链接和硬链接的区别

“`properties
#软链接特征:类似Windows快捷方式
1、lrwxrwxrwx l 软链接
软链接文件权限都为rwxrwxrwx
2、文件大小-只是符号链接
3、/tmp/issue.soft -> /etc/issue
箭头指向原文件

#硬链接特征:
1、拷贝cp -p + 同步更新
echo “this is a test” >> /etc/motd
2、可通过i节点识别
3、不能跨分区
4、不能针对目录使用
“`

## 文件处理命令

### touch创建文件命令

“`properties
命令名称:touch
命令所在路径:/bin/touch
执行权限:所有用户

语法:
touch [文件名]

功能描述:创建空文件
#示例:
[root@localhost ~]#touch demo.txt
“`

### cat查看文件内容命令

“`properties
命令名称:cat
命令所在路径:/bin/cat
执行权限:所有用户

语法:
cat [文件名]

功能描述:显示文件内容
-n  显示行号

#示例:
[root@localhost ~]#cat demo.txt
hello!
linux

[root@localhost ~]#cat -n demo.txt
1 hello!
2 linux
“`

### more查看长文件内容命令

“`properties
命令名称:more
命令所在路径:/bin/more
执行权限:所有用户

语法:
more [文件名]
(空格)或f 翻页
(Enter)  换行
q或Q    退出
功能描述:分页显示文件内容

示例:
[root@localhost ~]#more /etc/services

“`

### less查看长文件内容命令

“`properties
命令名称:less
命令所在路径:/usr/bin/less
执行权限:所有用户

语法:
less [文件名]

功能描述:分页显示文件内容(可向上下翻页↑↓)

示例:
[root@localhost ~]#less /etc/services
“`

### head查看文件前几行命令

“`properties
命令名称:head
命令所在路径:/usr/bin/head
执行权限:所有用户

语法:
head [文件名]

功能描述:显示文件前面几行
-n   指定行数

示例:
[root@localhost ~]#head -n 20 /etc/services
“`

### tail查看文件后面几行命令(动态日志查看)

“`properties
命令名称:tail
命令所在路径:/usr/bin/tail
执行权限:所有用户

语法:
tail [文件名]

功能描述:显示文件后面几行
-n   指定行数
-f    动态显示文件末尾内容

示例:
[root@localhost ~]#tail -n 20 /etc/services
[root@localhost ~]#tail -f /tomcat/logs/catalina.out

“`

## vim编辑器

### vim常用操作

#### vim简介

vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。

**vim没有菜单,只有命令**

#### vim工作模式

![vim工作模式](D:\Linux\vim工作模式.png)

#### 插入命令

命令            作用

a                在光标所在字符后插入

A                在光标所在行尾插入

i                在光标所在字符前插入

I                在光标所在行行首插入

o                在光标下插入新的一行

O                在光标上插入新的一行

#### 定位命令

命令            作用

:set nu            设置行号

:set nonu        取消行号

gg                到第一行

G                到最后一行

nG                到第n行

:n                到第n行

$                移至行尾

0                移至行首

#### 删除命令

命令            作用

x                删除光标所在处的字符

nx                删除光标所在处后n个字符

dd                删除光标所在行,ndd删除n行

dG                删除光标所在行到文件末尾内容

D                删除光标所在处到行尾内容

n1,n2d            删除指定范围的行

#### 复制和剪切命令

命令            作用

yy                复制当前行

nyy                复制当前行以下n行

dd                剪切当前行

ndd                剪切当前行以下n行

p                粘贴在当前光标所在行下

P                粘贴在当前光标所在行上

#### 替换和取消命令

命令            作用

r                取代光标所在处字符

R                从光标所在处开始替换字符,按Esc结束

u                取消上一步操作

#### 搜索和搜索替换命令

命令            作用

/string            搜索指定字符串

​                搜索时忽略大小写:set ic

n                搜索指定字符串的下一个出现位置

:%s/old/new/g    全文替换指定字符串

:n1,n2s/old/new/g 在指定范围内替换指定字符串

#### 保存和退出命令

命令            作用

:w                保存修改

:w new_filename 另存为指定文件

:wq                保存修改并退出

ZZ                快捷键,保存修改并退出

:q!                不保存修改退出

:wq!                强制保存修改并退出(文件所有者及root可使用)

### vim使用技巧

1. 导入文档中的内容 r 文件名

示例:r demo.txt

2. 导入命令执行结果:r !命令

示例:r !date

​    2017年 07月 17日 星期一 10:14:36 CST

3. 自定义快捷键:map 快捷键 触发命令 (命令可以任意组合)

示例:map ^P I#<ESC>   注释

​    :map ^B 0x             取消注释

4. 连续行注释:n1,n2s/^/#/g

​           :n1,n2s/^#//g

​           :n1,n2s/^/\/\/g    //(java中的单行注释)

5. 替换:ab syso System.out.println(“”);  (eclipse中快捷键syso)

6. 自定义快捷键,电脑重启之后,设置的快捷键需要重新设置,如果需要自定义的编辑模式永久生效,需要在用户根目录(root用户[/root] 普通用户[/home/fei])配置.vimrc文件

示例:cd ~ 打开根目录

​    touch .vimrc 创建配置文件

​    vim .vimrc     编辑配置文件

​        set nu  显示行号

​        map ^P I#<ESC>   注释

​    :wq            退出并保存

## 软件包管理简介

### 1、软件包分类

– 源码包

​    脚本安装包

– 二进制包

​    RPM包

​    系统默认包

### 2、源码包

源码包的优点:

1. 开源,如果有足够的能力,可以修改源码
2. 可以自由选择所需的功能
3. 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
4. 卸载方便

源码包的缺点:

1. 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
2. 编译过程时间较长,安装比二进制安装时间长
3. 因为是编译安装,安装过程中一旦报错新手很难解决

### 3、RPM包

二进制包的优点:

1. 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
2. 安装速度比源码包安装快的多

二进制包的缺点

1. 经过编译,不再可以看到源代码
2. 功能选择不如源码包灵活
3. 依赖性

## RPM包管理-rpm命令管理

### 1、RPM包命名规则

“`properties
举例:httpd-2.2.15-15.el6.centos.1.i686.rpm

httpd                    软件包名

2.2.15                    软件版本

15                        软件发布的次数

el6.centos                适合的Linux平台

i686                    适合的硬件平台

rpm                        rpm包扩展名
“`

### 2、RPM包依赖性

– 树形依赖:a→b→ c
– 环形依赖:a→b→c→a
– 模块依赖:模块依赖查询网站

​    www.rpmfind.net

### 3、包全名与包名

“`properties
#包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
#包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库
“`

### 4、RPM安装

“`properties
rpm -ivh 包全名
选项:
-i(install)        安装
-v(verbose)        显示详细信息
-h(hash)        显示进度
–nodeps        不检测依赖性
“`

### 5、RPM包升级

“`properties
rpm -Uvh 包全名
选项:
-U(upgrade)        升级
“`

### 6、卸载

“`properties
rpm -e 包名
选项:
-e(erase)        卸载
–nodeps        不检查依赖性
“`

### 7、查询是否安装

“`properties
[root@localhost ~]# rpm    -q    包名
#查询包是否安装
选项:
-q    查询(query)
[root@localhost ~]# rpm –qa
#查询所有已经安装的RPM包
选项:
-a    所有(all)

“`

### 8、查询软件包详细信息

“`properties
[root@localhost ~]#    rpm –qi 包名
选项:
-i    查询软件信息(information)
-p    查询未安装包信息(package)

“`

### 9、查询包中文件安装位置

“`properties
[root@localhost ~]#    rpm –ql 包名 选项:
-l    列表(list)
-p    查询未安装包信息(package)

“`

### 10、查询系统文件属于哪个RPM包

“`properties
[root@localhost ~]#    rpm –qf 系统文件名 选项:
-f    查询系统文件属于哪个软件包(file)
“`

### 11、RPM包校验

“`properties
[root@localhost ~]# rpm –V 已安装的包名 选项:
-V    校验指定RPM包中的文件(verify)
#验证内容中的8个信息的具体内容如下:
 S    文件大小是否改变
 M    文件的类型或文件的权限(rwx)是否被改变
 5    文件MD5校验和是否改变(可以看成文件内容是否 改变)
 D    设备的中,从代码是否改变
 L    文件路径是否改变
 U    文件的属主(所有者)是否改变
 G    文件的属组是否改变
 T    文件的修改时间是否改变
“`

“`properties
#文件类型
1    c    配置文件(config file)
2    d    普通文档(documentation)
3    g    “鬼”文件(ghost file),很少见,就是该文件不 应该被这个RPM包包含
4    l    授权文件(license file)
5    r    描述文件(read me)

“`

### 12、RPM包中文件提取

“`properties
[root@localhost ~]# rpm2cpio 包全名 |    \ cpio -idv .文件绝对路径

#将rpm包转换为cpio格式的命令
rpm2cpio

#是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
cpio

[root@localhost ~]# cpio 选项 < [文件|设备]
#选项:
-i:copy-in模式,还原
-d:还原时自动新建目录
-v:显示还原过程

#示例
#查询ls命令属于哪个软件包
[root@localhost ~]# rpm -qf /bin/ls

#将ls命令移动到/tmp文件夹,造成ls命令误删除假象
[root@localhost ~]# mv /bin/ls /tmp/

#提取RPM包中ls命令到当前目录的/bin/ls下
[root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils- 8.4-19.el6.i686.rpm | cpio -idv    ./bin/ls

#把ls命令复制会/bin/目录,修复文件丢失
[root@localhost ~]# cp /root/bin/ls    /bin/
“`

## RPM包管理-yum在线管理

### 1、IP地址配置和网络yum源

#### 1.1 IP地址配置

“`properties
[root@localhost ~]# setup
#使用setup工具

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
把ONBOOT=“no” 改为
ONBOOT=“yes“
#启动网卡

[root@localhost ~]# service network restart
#重启网络服务
“`

#### 1.2 网络yum源

“`properties
[root@localhost yum.repos.d]# vi /etc/yum.repos.d/CentOS-Base.repo
 [base]    容器名称,一定要放在[]中
 name    容器说明,可以自己随便写
 mirrorlist    镜像站点,这个可以注释掉
 baseurl    我们的yum源服务器的地址。默认是CentOS官方的yum源服务 器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地 址
 enabled    此容器是否生效,如果不写或写成enable=1都是生效,写成
enable=0就是不生效
 gpgcheck    如果是1是指RPM的数字证书生效,如果是0则不生效
 gpgkey    数字证书的公钥文件保存位置。不用修改
“`

### 2、yum命令

#### 2.1 查询

“`properties
1)查询
[root@localhost yum.repos.d]# yum list
#查询所有可用软件包列表

[root@localhost yum.repos.d]# yum search 关键字
#搜索服务器上所有和关键字相关的包
“`

#### 2.2 安装

“`properties
2)安装
[root@localhost yum.repos.d]# yum –y install 包名 选项:
install    安装
-y    自动回答yes
“`

#### 2.3 升级

“`properties
[root@localhost yum.repos.d]# yum -y update 包名 选项:
update    升级
-y    自动回答yes
注意:升级一定要加包名,否则linuk系统全盘升级,一般很牛逼的人都不会轻易去尝试。
“`

#### 2.4 卸载

“`properties
[root@localhost yum.repos.d]#    yum    -y    remove    包名 选项:
remove    卸载
-y    自动回答yes
注意:尽量不要使用yum卸载,因为它会自动把依赖包也卸载掉,但是有些依赖包不仅仅是一个软件在使用,其他软件也在使用这个依赖包。
“`

#### 2.5 yum软件组管理命令

“`properties
[root@localhost ~]#    yum    grouplist
#列出所有可用的软件组列表

[root@localhost ~]#    yum    groupinstall    软件组名
#安装指定软件组,组名可以由grouplist查询出来

[root@localhost ~]#    yum    groupremove    软件组名
#卸载指定软件组
“`

### 3、光盘yum源搭建

#### 3.1 光盘yum源搭建步骤

“`properties
1)挂载光盘
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
2)让网络yum源文件失效
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Debuginfo.repo Centos-Debuginfo.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.bak
3)修改光盘yum源文件
[root@localhost yum.repos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever-Media
baseurl=file///mnt/cdrom
#地址为你自己的光盘挂载地址
# file:///media/cdrom/
# file:///media/cdrecorder/
#注释这两个不存在的地址
gpgcheck=1
enabled=1
#把enabled=0改为enabled=1,让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RRM-GPG-KEY-CentOS-6

注意:一般配置文件有严格的格式限制,不能多加空格或者注释。
“`
## 源码包管理

### 1、源码包与RPM包的区别

“`properties
1、区别
 安装之前的区别:概念上的区别
 安装之后的区别:安装位置不同

#RPM包安装位置
是安装在默认位置中
#RPM包默认安装路径
/etc/                配置文件安装目录
/usr/bin/            可执行的命令安装目录
/usr/lib/            程序所使用的函数库保存位置
/usr/share/doc/        基本的软件使用手册保存位置
/usr/share/man/        帮助文件保存位置

#源码包安装位置
安装在指定位置当中,一般是
/usr/local/软件名/

#安装位置不同带来的影响
RPM包安装的服务可以使用系统服务管 理命令(service)来管理,例如RPM包安 装的apache的启动方法是:
/etc/rc.d/init.d/httpd start
service httpd start

#而源码包安装的服务则不能被服务管理命 令管理,因为没有安装到默认路径中。所 以只能用绝对路径进行服务的管理,如:
/usr/local/apache2/bin/apachectl start

“`

### 2、源码包的安装过程

#### 2.1 安装准备

“`properties
#安装C语言编译器
[root@localhost ~]# yum –y install gcc
#下载源码包
[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
“`

#### 2.2 安装注意事项

“`properties
#源代码保存位置:/usr/local/src/
#软件安装位置:/usr/local/
#如何确定安装过程报错:
a.安装过程停止
b.并出现error、warning或no的提示
“`

#### 2.3 源码包安装过程

“`properties
#下载源码包
[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
#解压缩下载的源码包
[root@localhost ~]# tar -xvf httpd-2.2.34.tar.gz /usr/local/apache2
#进入解压缩目录
[root@localhost ~]# cd /usr/local/apache2/httpd-2.2.34
#定义安装位置
[root@localhost httpd-2.2.34]# ./configure  –prefix=/usr/local/apache2
“`

#### 2.4 ./configure 软件配置与检查

“`properties
Ø  定义需要的功能选项。

Ø  检测系统环境是否符合安装要求。

Ø  把定义好的功能选项和检测系统环境的信息 都写入Makefile文件,用于后续的编辑。
“`

#### 2.5 源码包的编译与安装

“`properties
#编译解压后的源码包
[root@localhost httpd-2.2.34]# make

#清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
[root@localhost httpd-2.2.34]# make clean

#将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录。
[root@localhost httpd-2.2.34]# make install
“`

#### 2.6 测试是否安装成功

“`properties
#启动apache服务
[root@localhost httpd-2.2.34]# /usr/local/apache2/bin/apachectl start
#在浏览器输入
localhost:80
#浏览器显示内容
It works!
“`

#### 2.7 源码包的卸载

“`properties
#不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件
“`

## 脚本安装包

### 1、 脚本安装包简介

“`properties
# 脚本安装包并不是独立的软件包类型,常见 安装的是源码包。
# 是人为把安装过程写成了自动安装的脚本, 只要执行脚本,定义简单的参数,就可以完 成安装。
# 非常类似于Windows下软件的安装方式
“`

### 2、 Webmin的作用

“`properties
#Webmin 是一个基于 Web 的 Linux 系统管 理界面。您就可以通过图形化的方式设置 用户帐号、Apache、DNS、文件共享等服 务。
“`

### 3、Webmin安装过程

“`properties
#创建文件夹webmin
[root@localhost ~]# mkdir /usr/local/webmin
#进入/usr/local/webmin
[root@localhost ~]# cd /usr/local/webmin

#下载软件
[root@localhost webmin]# wget https://sourceforge.net/projects/webadmin/files/webmin/1.850/webmin-1.850.tar.gz/download

# 解压缩,并进入解压缩目录
[root@localhost webmin-1.850]# tar -xvf webmin-1.850.tar.gz
# 执行安装脚本
[root@localhost webmin-1.850]# ./setup.sh

注意:安装过程中,键盘enter键,就表示执行下一步;
:安装过程中,需要设置登录名和密码
小技巧:Ctrl+Backspace(退格键)     删除
# 安装完之后,测试是否安装成功
# 开启防火墙10000端口
[root@localhost webmin-1.850]# /sbin/iptables -I INPUT -p tcp –dport 10000 -j ACCEPT
[root@localhost webmin-1.850]# /etc/rc.d/init.d/iptables save

# 浏览器测试,输入linux Ip+端口号(10000)
成功的话,会进入一个登陆界面
“`
## 用户和用户组管理

### 1、用户管理简介

“`properties
# 越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和 服务器操作规范。
# 在Linux中主要是通过用户配置文件来查 看和修改用户信息
“`

### 2、用户配置文件

#### 2.1    用户信息文件/etc/passwd

“`properties
#查看用户信息配置文件信息
[root@localhost ~]# vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
demo:x:500:500::/home/demo:/bin/bash
liqi:x:501:501::/home/liqi:/bin/bash
mysql:x:498:498:MySQL server:/var/lib/mysql:/bin/bash
ucenter:x:502:502::/ucenter:/bin/bash

#可以利用man 命令 (man 5 配置文件名) 查看帮助
[root@localhost ~]# man 5 passwd
#看主要内容 The field descriptions are:
accout
password
UID

#第1字段:用户名称
#第2字段:密码标志
#第3字段:UID(用户ID)
    0:            超级用户
    1-499:        系统用户(伪用户)
例如:mysql:x:498:498:MySQL server:/var/lib/mysql:/bin/bash
    500-65535:    普通用户
例如:demo:x:500:500::/home/demo:/bin/bash

#第4字段:GID(用户初始组ID)
#第5字段:用户说明
#第6字段:家目录
    普通用户:/home/用户名/
    超级用户:/root/
#第7字段:登录之后的Shell
//shell是用户和计算机交流的中介,“登录shell”保证用户和计算机交流(一般Linux默认的用户shell都是bash ,也就是说你可以登录进去敲命令。),“非登陆shell(/bin/nologin 就是一个非登陆shell)”无法让用户与计算机交流。
“`

#### 2.2 初始组和附加组

“`properties
#初始组:就是指用户一登录就立刻拥有这 个用户组的相关权限,每个用户的初始组 只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。
#附加组:指用户可以加入多个其他的用户 组,并拥有这些组的权限,附加组可以有 多个。
“`

#### 2.3 Shell是什么

“`properties
#Shell就是Linux的命令解释器。
#在/etc/passwd当中,除了标准Shell是/bin/bash之外,还可以写如/sbin/nologin(用户禁用),/usr/bin/passwd等。
“`
### 3、影子文件/etc/shadow

#### 3.1 影子文件/etc/shadow

“`properties
[root@localhost ~]# cat /etc/shadow
root:$6$CDD56Ji0/1P8TRCD$9QaqGR9Jpy6v9tYbs12rnhMynPdyYy2Y.AEsfUbh4bEgc7aF5UvIWB5DjYc6owmWsHus0WAfTOzJPTWAfp2.b/:17350:0:99999:7:::
“`

**配置文件详解**

“`properties
#第1字段:用户名
#第2字段:加密密码
加密算法升级为SHA512散列加密算法
如果密码位是“!!”或“*”代表没有密码,不能登 录
# 第3字段:密码最后一次修改日期
使用1970年1月1日作为标准时间,每过一天时间戳 加1
//改密码提示 it is based on a dictionary word(它是基于字典的词)        is too similar to the old one(和之前设置的密码太相似)

# 第4字段:两次密码的修改间隔时间(和 第3字段相比)
# 第5字段:密码有效期(和第3字段相比)
# 第6字段:密码修改到期前的警告天数( 和第5字段相比)
# 第7字段:密码过期后的宽限天数(和第5 字段相比)
    0:代表密码过期后立即失效
  -1:则代表密码永远不会失效。
# 第8字段:账号失效时间
    要用时间戳表示
# 第9字段:保留
“`

#### 3.2 时间戳换算

“`properties
#把时间戳换算为日期
    date -d “1970-01-01 16066 days”
# 把日期换算为时间戳
    echo $(($(date –date=”2017/07/29″ +%s)/86400+1))
注意:时间 +%s 有个空格 一定要加上
“`

### 4、组信息文件/etc/group和组密码文件/etc/gshadow

#### 4.1 组信息文件/etc/group

“`properties
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
demo:x:500:
liqi:x:501:

第一字段:组名
第二字段:组密码标志
第三字段:GID
第四字段:组中附加用户
“`

#### 4.2 组密码文件/etc/gshadow

“`properties
[root@localhost ~]# cat /etc/gshadow
root:::
bin:::bin,daemon
demo:!::
liqi:!::

第一字段:组名
第二字段:组密码
第三字段:组管理员用户名
第四字段:组中附加用户
“`

### 5、 用户管理相关文件

#### 5.1 用户的家目录

“`properties
# 普通用户:/home/用户名/,所有者和所属
组都是此用户,权限是700
# 超级用户:/root/,所有者和所属组都是
root用户,权限是550

[root@localhost ~]# cd /home
[root@localhost home]# ll
总用量 24
drwx——. 4 demo demo  4096 7月   6 23:45 demo
drwx——. 4 liqi liqi  4096 7月   6 09:32 liqi
drwx——. 2 root root 16384 7月   4 02:36 lost+found
“`

#### 5.2 用户的邮箱

“`properties
# /var/spool/mail/用户名/长度

[root@localhost ~]# cd /var/spool/mail
[root@localhost mail]# ll
总用量 8
-rw-rw—-. 1 demo    mail    0 7月  24 08:22 demo
-rw-rw—-. 1 liqi    mail  609 7月   6 01:55 liqi
-rw——-. 1 root    mail 1215 7月   6 01:57 root
-rw-rw—-. 1 rpc     mail    0 7月   4 02:43 rpc
-rw-rw—-. 1 ucenter mail    0 7月   7 01:51 ucenter
“`

5.3 用户的模板目录

“`properties
# /etc/skel ,每创建一个用户时,系统会按照模板文件给新得生成对应的文件

[root@localhost ~]# cd /etc/skel
[root@localhost skel]# ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2

示例:
[root@localhost skel]# touch warning.txt
[root@localhost skel]# vim warning.txt
随便写点内容
#创建一个用户
[root@localhost skel]# useradd user1
#为用户设置密码
[root@localhost skel]# passwd user1
更改用户 user1 的密码 。
新的 密码:
无效的密码: 过于简单化/系统化
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

#切换到use1用户
[root@localhost user1]# su user1
[user1@localhost ~]$ ls -a
.   .bash_logout   .bashrc  warning.txt
..  .bash_profile  .gnome2
我们可以看到这个用户的家目录生成了warning.txt

“`

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92923

(0)
思定思定
上一篇 2018-03-26
下一篇 2018-03-26

相关推荐

  • inode的理解

    一、inode是什么 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的&q…

    Linux干货 2017-01-16
  • 计算机组成及Linux基础

    第1题:描述计算机的组成及功能 1.1计算机的组成       计算机是有 运算器,控制器,存储器,输入设备和输出设备组成计算机 1.2计算机各部件功能 运算器 对数据进行算术运算,逻辑运算和对数据进行加工处理 存储器 存储程序,数据和各种信号,命令等信息,并在需要时提供这些信息 控制器 是整个计算机的中枢神…

    Linux干货 2017-07-02
  • Week6 Vim编辑器使用指南及练习

    vim编辑器 vim模式: 模式转换.png 编辑–>输入: i: 在当前光标所在字符的前面,转为输入模式; a: 在当前光标所在字符的后面,转为输入模式; o: 在当前光标所在行的下方,新建一行,并转为输入模式; I:在当前光标所在行的行首,转换为输入模式 A:在当前光标所在行的行尾,转换为输入模式 O:在当前光标所在行的上方,新建一行,…

    Linux干货 2017-02-17
  • Shell脚本编程中作业

    一、作业: 1、1、编写服务脚本/root/bin/testsrv.sh,完成如下要求 (1) 脚本可接受参数:start, stop, restart, status (2) 如果参数非此四者之一,提示使用格式后报错退出 (3) 如是start:则创建/var/lock/subsys/SCRIPT_NAME, 并显示“启动成功” 考虑:如果事先已经启动过一…

    Linux干货 2016-08-24
  • 几个正则表达式和find查找语句事例

    显示当前系统上root、fedora、或user1用户的默认shell; ~]# grep -E "^(root|bin|hadop)" /etc/passwd | cut -d: -f7 找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如: hello(); ~]#grep -E -o &qu…

    Linux干货 2016-10-30
  • select循环与菜单的用法

    select循环与菜单的用法 1、select循环主要用于创建菜单,其按数字顺序排列并且显示在标准错误输出上,并显示PS3提示符,等待用户输入选择内容,用户一旦输入菜单中的某个数字,则执行相应菜单中的命令。用户输入的内容被保存在内置变量REPLY中。 select的用法: select variable [in list] ; do   …

    Linux干货 2016-08-21