文件管理
文件管理类命令
ls,
查看:cat,more,less,tail,head,tac
复制:cp
移动:mv
删除:rm
创建:touch
元数据属性:stat
查看内容类型:file
文本编辑器:nano,vi
Linux的文件类型
普通文件:-,f
目录文件:路径映射d
链接文件(符号链接):软连接l
设备文件:
字符设备:c,一次存取一个字符
块设备:b
命名管道:p
fi,fo
套接字文件:s
Linux的时间戳
访问时间:最近一次访问的时间
修改时间:写数据
改变时间:元数据改变的时间
ls 使用默认选择当前目录
-a:显示所有文件,包含隐藏文件
-A:不现实.和..常见的通用路径
--color:显示颜色
-l:长格式显示
文件类型 权限 硬链接数 属主 属组 最近一次的修改时间 文件名->原始文件
-d:显示目录自身的属性,通常与-l同时使用
-r:实现逆序显示
-R:递归显示
-i:inode号,index node
-h:文件大小以人类易读格式显示
tree
#cd /etc/yum.repos.d/
#wget http://172.16.0.1/centos6.5.repo
#rm CenOS-Base.repo
#yum -y install tree
I
名称解析 : name resolving
bash shell的特性之四:命令别名
clear 清屏
alias:当前shell中定义的所有别名:
任何随进程而生的属性,会在进程结束,属性消失
alias 别名=‘原始命令’
unalias 别名 取消定义的别名
在命令前加\使用命令本身,而不是别名
查看纯文本文件
file FILE..:查看文件内容的格式
cat:将文本连接起来显示在标准输出上
控制符 如换行符
-E --show-ends 显示结束符$
-e:等于-vE
-v:显示非打印符
-n:显示每行按顺序编号
-s:将多个连续的空白行合并显示一个空白行
tac:逆序显示文件
分屏显示
more:只支持向后翻(文件尾部以后)
less:支持前后翻
head:
-n #:显示前多少行
tail
-n # 显示后多少行
-f:
echo命令的用法:
-e
\b:删除前面的字符
\t:制表符
\v:垂直制表符
\n:换行符
\0NNN()
开始\033[1 3前景色 颜色(1-7)
4背景色; 文字 结束\033[0m
-n:不为显示内容自动换行
文件操作
cp copy
cp SRC DEST
假如SRC是一个文件:
如果目标是一个文件且目标存在:覆盖
如果目标文件不存在:创建新文件
如果目标存在,且是个目录:复杂源至目标目录中,并保持原名
cp SRC ... DEST
假如SRC有多个文件:
如果目标存在,且是一个文件:复制无法进行
如果目标存在,且是一个目录:复制各文件至目标目录中,并保持原名
如果目标不存在:复制无法进行
假如SRC只有一个且是目录:-r
如果目标是一个文件且目标存在:失败
如果目标文件不存在:创建新目录
如果目标存在,且是个目录:复制源目录到目标目录中,并保持原名
cp命令的常用选项:
-r:递归
-i:提示,交互
-f:强制覆盖
-a: -dr 保留所有的文件信息
-d:当源为连接文件时,复制链接文件本身,而非指向的源文件
-p:保持原有属性
mv:
移动,剪切,与cp相近
可以直接移动目录,不需要-r选项
rm:
移除,删除非空目录 rm -rf
touch:用来修改时间戳,创建空文件
-c:不创建空文件,只修改时间戳
-t:指定时间戳
-a:仅修改访问时间
-m:仅修改修改时间
stat命令:显示文件源数据信息,详细信息
stat FILE
-t 指定特定时间
Linux编辑器
行编辑器:sed (使用于脚本)
全屏编辑器:nano,vi,vim
bashshell的特性五:globbing 文件名通配
通配符:
*:匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定字符范围内的任意单个字符,不区分大小写
[[:upper:]]:大写字母
[[:lower:]]:小写字母
[[:alpha:]]:所有字母
[[:digit:]]:所有数字
[[:alnum:]]:字母+数字
[[:space:]]:空格
[[:punct:]]:标点符号 特殊字符
[^]:匹配指定字符范围外的任意单个字符
例如: 非数字[^0-9]
练习
练习一: 复制/var目录下所有1开头,以一个小写字母结尾,且中间出现一位数字的文件或目录至/tmp下
cp /var/l*?*[[:lower:]] /tmp
练习二: 复制/etc/目录下以P开头,中间跟了任意字符,并以d结尾的文件至/tmp/a目录中
cp -r /etc/p*d /tmp/a
练习三:复制/etc/目录下以P开头,中间跟了4个任意字符,并以d结尾的文件至/tmp/a目录中,如果a 不存在,先创建出来
cp -r /etc/p????d /tmp/a
练习四: 复制/etc/目录下以任意一位数字开头,并以非数字结尾的文件至/tmp/b目录中
cp -r /etc/[0-9]*[^0-9] /tmp/b
练习五: 复制/etc/目录下以非字母开头,后面跟了一个字母及其他任何长度字符的文件至/tmp/c目中
cp -r /etc/[^[:alpha:]][[:alpha:]]* /tmp/c/
用户和权限管理:
1.用户是什么?
用户:资源获取标识符,资源分配,安全权限模型的核心要素之一
密码:来实现用户认证的
2.没有用户,能否使用
能使用
/etc/passwd
加密方法:
对称加密:如果加密、解密使用相同的密码称之为对称加密
DES,3DES,AES
非对称加密:DSA,RSA
单向加密:雪崩效应,定长输出,不可逆
MD5:信息摘要 128bit定长输出16个字符
SHA1:安全的哈希算法 160bit
CRC32:循环冗余校验码
密码数据库:/etc/shadow
6 sha512
1 MD5
$加密算法$8位盐$乱码
加密 : openssl passwd -1 -salt 12345678
输入密码 然后加密成功
组
组可以理解为一个用户容器,里面装这角色
文件:
/etc/group
组名:密码占位符:GID:用户列表(附加组)
/etc/gshadow 密码
安全上下文:
运行中的进程有其属主和属组:取决于进程的属组和属主
/etc/skel 默认复制文件地址
/etc/defauit/useradd 定义默认家目录、环境配置文件目录等
用户管理命令
创建用户:
useradd UserName
生成的属性信息
/etc/passwd:
用户名:x(密码占位符):UID:GUID(基本组ID):用户备注信息(多个以,隔开):家目录:默认shell
/etc /shells:当前系统的安全shell列表
useradd:adduser
-u UID:指定UID
-g GID:指定GID,即用户的基本组,但GID要事先存在
-G GID:指定用户的额外组,但GID要事先存在
-d 目录: 指定家目录
-c 备注:备注
-s:shell:指定默认shell,应该指定使用/etc/shells文件中出现的shell
-m:创建用户时,强制给用户创建家目录
-M:创建用户时,但不创建家目录
-D: 改变其默认shell
-r: 创建系统用户 特点:id 1-499 不会为用户创建家目录 默认shell为/sbin/nologin
id Username :显示用户的id号
userdel:删除用户,默认会保留家目录
userdel UserName
-r:一并删除家目录
groupadd GrpName
-g GID:创建组并为其指定GID
用户类别
管理员:0
普通用户:1-65535
系统用户:1-499
登 陆用户:500+
用户组:
管理员组:
普通组:
以用户为视角,组可以分为两类:
基本组:显示在/etc/passwd中GID字
段组,为用户的基本组
额外组:附加组:/etc/group
设定用户密码:passwd
普通用户:passwd
管理员:
改自己密码:passwd
改其他用户密码:passwd UserName
-l:锁用户 用户密码前加两个!
-u:解锁
密码安全性策略:足够复杂
够长、交叉应用数字、大写字母、小写字母和特殊字符中的至少三种
尽量避免使用易猜测的密码:
定期更换:
/etc/shadow文件格式:
登陆名:加密密码:最近一次的密码修改时间(距离1970-1-1的时间):最短使用期限:最长使用期限:警告区间:非活动区间(登陆就要修改密码):账号的过期期限:预留段
-l: 锁用户
设定组密码:gpasswd GroupName
修改用户的属性定义(chsh):
chsh:修改默认的shell
chfn:修改用户注释
usermod:跟useradd命令使用方法类似
-u UID:
-g GID:
-G GID:默认会覆盖原有的附加组,如果要是添加,可以同时使用-a选项
-c string
-d new home 默认不会迁移用户的家目录,如果要迁移,同时使用-m选项
-s SHELL:
-l New_login_name:修改用户登录名称
-e 过期期限
-f 非活动期限
-L:锁定用户账号
-U:解锁
如何修改组属性定义:
groupmod:
-g GID
-n New Group 修改用户的属组
groupdel
gpasswd
修改账号日期属性:
chage:修改用户的日期属性
-E:距离1970-1-1号的时间天数,过了这个时间,账号不可访问
-I: 设置活动天数
-m:修改密码最小使用时间
-M:修改密码最长使用时间
-W:警告时间
查看用户的相关信息:
id
-n 显示名称
-u 显示UID
-g:显示基本组ID
-G:显示所有组ID
who 显示当前登录用户
whoami:显示当前终端登录的用户
su:Swith User
切换用户
-l:登陆式切换
-c:不切换用户,直接执行命令
练习
1.创建一个用户mandriva,其中ID号为2002,基本组为distro(组ID为3003) 附加组为linux
useradd -u 2002 -g distro =G linux mandriva
2.创建一个用户fedora,其全名为Fedora Community,默认为shell为tcsh
useradd -c "Fedora Community" -s /bin/tcsh fedora
3.修改mandriva的ID号为4004,基本组为Linux,附加组为distro和fedora
usermod -u 4004 -g linux -G distro,fedora
4.给fedora加密码,并设定其密码最短使用期限为2天最长为50天
passwd fedora
chage -m 2 -M 50 fedora
5.将mandriva的默认shell改为/bin/bash
usermod -s /bin/bash mandriva
chsh
答案不唯一