Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
cp SRC DEST
如果复制文件不存在 新建DEST,并将SRC中内容填充至DEST中
如果目录存在
如果DEST是文件:将SRC中的内容覆盖至DEST
此时建议cp命令使用-i选项
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件
cp SRC... DEST DEST
src..为多个文件 必须存在且为目录其他情况均为错
cp SRC DEST
SRC是目录
要使用 -r递归复制
如果DEST不存在 :则创建指定目录,后复制S
如果DEST存在:
如果是文件报错
是目录:
常用选项
-i 交互式
rm
-f 强制
-r 递归
rm -rf /
文本编辑器 nano
nano a.txt
全屏编辑器
bash的基础特性
1.命令别名(alias)
2. alias NAME='VALUE'
定义别名NAME,其相当于执行命令value
注意:仅对当前shell进程有效如需要永久有效要定义在配置文件中
仅对当前用户 ~/.hashhrc
对所有用户有效: /etc/bashhrc
修改后要重新读取配置文件
source /path/to/config_file
撤销别名 unalias
2.文件名通配 glob
通配符 *,?,[]
1 *
长度任意的任意字符
a*b
2 ?
任意一个字符
a?b
3 []匹配范围的任意单个字符
[0-9] 0-9挑一个
[a-z] 不区分大小写
[A-Z] 大写
^ 匹配指定范围外的任意单个字符
[^0-9] 0-9之外任意单个字符
练习
[root@izm5e5qf7n47jhwufk5eo9z ~]# ls -d /var/l*[0-9]*[[:lower:]]
[root@izm5e5qf7n47jhwufk5eo9z ~]# ls -d /tmp/l*[0-9]*[[:lower:]]
/tmp/labc8m
ctrl+a 跳转至命令开始处
ctrl+e 跳转至结尾
ctrl+c 取消
4.bash I/O重定向 管道
打开文件都有一个fd :file descriptor (文件描述符)
I/O重定向 改变标准位置
输出重定向 :COMMMAND>NEW_POS, COMMAND>>NEW_POS
覆盖重定向 追加重定向
set -c 禁止覆盖重定向
2> 覆盖重定向错误输出流
2>> 追加重定向错误输出数据流
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -100 /etc/rc.d/rc.sysiiiinit > /tmp/sysinit.out 2> /tmp/sysinit.err
[root@izm5e5qf7n47jhwufk5eo9z ~]# cat /tmp/sysinit.err
tail: cannot open 鈥etc/rc.d/rc.sysiiiinit鈥for reading: No such file or directory
[root@izm5e5qf7n47jhwufk5eo9z
COMMAND > /path/to/file.out 2>&1
COMMAND >> /path/to/file.out 2>>&1
输入重定向 <
tr 转换或删除字符
tr
[root@izm5e5qf7n47jhwufk5eo9z ~]# tr abc ABC
abcdef
ABCdef
输出转化为大写
[root@izm5e5qf7n47jhwufk5eo9z ~]# tr 'a-z' 'A-Z' < /etc/fstab
#
# /ETC/FSTAB
# CREATED BY ANACONDA ON SUN OCT 15 15:19:00 2017
#
# ACCESSIBLE FILESYSTEMS, BY REFERENCE, ARE MAINTAINED UNDER '/DEV/DISK'
# SEE MAN PAGES FSTAB(5), FINDFS(8), MOUNT(8) AND/OR BLKID(8) FOR MORE INFO
#
UUID=EB448ABB-3012-4D8D-BCDE-94434D586A31 / EXT4 DEFAULTS 1 1
删除
[root@izm5e5qf7n47jhwufk5eo9z ~]# tr -d aa
aasfsa
sfs
输入大量字符保存到/tmp/test.out 接收EOF字符结束
[root@izm5e5qf7n47jhwufk5eo9z ~]# cat >>/tmp/test.out<
> SDFS
> SDFG
> EOF
管道
COMMAND1| COMMAND2 | COMMAND3|..
[root@izm5e5qf7n47jhwufk5eo9z ~]# echo "$PATH" | tr 'a-z' 'A-Z'
/USR/LOCAL/SBIN:/USR/LOCAL/BIN:/USR/SBIN:/USR/BIN:/ROOT/BIN
[root@izm5e5qf7n47jhwufk5eo9z ~]# echo "$PATH" | tr 'a-z' 'A-Z' | tr -d 'U'
/SR/LOCAL/SBIN:/SR/LOCAL/BIN:/SR/SBIN:/SR/BIN:/ROOT/BIN
tee命令 标准输出并保存一份到指定路径
[root@izm5e5qf7n47jhwufk5eo9z ~]# tee /tmp/tee.out
1
1
234
234
34
34
^C
[root@izm5e5qf7n47jhwufk5eo9z ~]# cat /tmp/tee.out
1
234
34
练习22222222
1
[root@izm5e5qf7n47jhwufk5eo9z ~]# head -n 5 /etc/passwd | tr 'a-z' 'A-Z' |tee>/tmp/passwd.out
[root@izm5e5qf7n47jhwufk5eo9z ~]# cat /tmp/passwd.out
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN
LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN
[root@izm5e5qf7n47jhwufk5eo9z
2
[root@izm5e5qf7n47jhwufk5eo9z ~]# who | tail -n 3| tr 'a-z' 'A-Z' >/tmp/who.out
[root@izm5e5qf7n47jhwufk5eo9z ~]# cat /tmp/who.out
ROOT PTS/3 2018-04-13 19:29 (114.227.229.194)
ROOT PTS/4 2018-04-13 20:13 (114.227.229.194)
ROOT PTS/5 2018-04-13 20:32 (114.227.229.194)
文本处理工具 wc ,cut,sort,uniq
wc
-l
-w
-c
[root@izm5e5qf7n47jhwufk5eo9z ~]# wc /etc/passwd
25 35 1104 /etc/passwd
行 单词数 字节
[root@izm5e5qf7n47jhwufk5eo9z ~]# ifconfig | wc -l
16
cut
-d
linux 用户权限管理
资源分派
Authentication:认证
Authorization 授权
Accounting:审计
Audition
linux 用户 Username/UID
管理员:root 0
普通用户:1-65535
系统用户:1-499
守护进程获取资源进行权限分配
登录用户:500+
交互式登录
Linux 组 Groupname/GID
管理员组:root,0
普通组 :
系统组:1-499
普通组:500+
Linux安全上下文:
运行中的程序:进程(process)
以进程发起者的身份运行:
root:cat
tom:cat
进程所能访问的所有资源权限取决于进程的发起者身份
linux组的类别
用户的基本组(主组)
组名同用户名:且仅包含一个用户私有组
用户的附加组(额外组)
linux 用户和组相关的配置文件
/ect/passwd 用户及其属性信息(名称 UID 基本组)
/ect/group 组及其属性
/etc/shadow 用户密码及其相关属性
/etc/gshadow 组密码及其相关属性
/etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
name:passwd:UID:GID:GECOS:directory:shell
用户名:密码:UID:GID:GECOS:主目录:默认shell
/etc/group
wheel:x:10:
组名:组密码:GID:以当前组为附加组的用户列表(多个用,分隔)
/etc/shadow
用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账号过期日期:保留字段
tom:$6$I3mySRML$v4WDRwje6Q36JbJHjkQegqogDAyxmO4aTqgKBPAB1PDKIEFD6n.7v9iduFgY2FsUP1NtZGa/KIZiMaOHgEvCT0:17634:0:99999:7:::
[root@izm5e5qf7n47jhwufk5eo9z ~]# useradd user2
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -1 /etc/passwd
user2:x:1004:1004::/home/user2:/bin/bash
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -1 /etc/group
user2:x:1004:
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -1 /etc/shadow
user2:!!:17634:0:99999:7:::
[root@izm5e5qf7n47jhwufk5eo9z ~]#
用户和组相关的管理命令
用户创建:useradd
useradd
-u UID:[UID_MIN-UID_MAX], 定义在/etc/login.defs
-g GID:指明用户所属基本组 可为组名也可为GID
-c "COMMIT" 注释
-d 指定家目录
-s 指明shell路径
-G 指明附加组组必须实现存在
-r 创系统组
CenOS7 id<1000
[root@izm5e5qf7n47jhwufk5eo9z ~]# groupadd mygrp
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -1 /etc/group
mygrp:x:1005:
[root@izm5e5qf7n47jhwufk5eo9z ~]# useradd -g mygrp user3
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -1 /etc/passwd
user3:x:1005:1005::/home/user3:/bin/bash
[root@izm5e5qf7n47jhwufk5eo9z ~]# id user3
uid=1005(user3) gid=1005(mygrp) groups=1005(mygrp)
-d
[root@izm5e5qf7n47jhwufk5eo9z ~]# useradd -d /home/ttt user5
useradd: user 'user5' already exists
[root@izm5e5qf7n47jhwufk5eo9z ~]# useradd -d /home/ttt userr4
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -1 /etc/passwd
userr4:x:1008:1008::/home/ttt:/bin/bash
-c
[root@izm5e5qf7n47jhwufk5eo9z ~]# useradd -c "useroooo" user4
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -1 /etc/passwd
user4:x:1007:1007:useroooo:/home/user4:/bin/bash
-G
[root@izm5e5qf7n47jhwufk5eo9z ~]# useradd -G mygrp user7
[root@izm5e5qf7n47jhwufk5eo9z ~]# id user7
uid=1009(user7) gid=1009(user7) groups=1009(user7),1005(mygrp)
[root@izm5e5qf7n47jhwufk5eo9z ~]# groupadd -g 3000 testgrp
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -1 /etc/group
testgrp:x:3000:
-r
[root@izm5e5qf7n47jhwufk5eo9z ~]# groupadd -r sql
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -1 /etc/group
sql:x:995:
查看用户 id信息
-u UID
-g GID
-G Groups
-n name
[root@izm5e5qf7n47jhwufk5eo9z ~]# id tom
uid=1002(tom) gid=1002(tom) groups=1002(tom)
[root@izm5e5qf7n47jhwufk5eo9z ~]# id -u tom
1002
[root@izm5e5qf7n47jhwufk5eo9z ~]# id -g tom
1002
[root@izm5e5qf7n47jhwufk5eo9z ~]# id -r tom
id: cannot print only names or real IDs in default format
[root@izm5e5qf7n47jhwufk5eo9z ~]# id -G TOM
id: TOM: no such user
[root@izm5e5qf7n47jhwufk5eo9z ~]# id -G tom
1002
切换用户或以其他用户身份执行命令:su
切换用户的方式
su username 非登录式切换 不会读取目标用户的配置文件
su - username 登录式切换 会读取用户的配置文件
root su至其他用户无须密码,非root用户切换时要
[root@izm5e5qf7n47jhwufk5eo9z ~]# su tom
[tom@izm5e5qf7n47jhwufk5eo9z root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[tom@izm5e5qf7n47jhwufk5eo9z root]$ exit
[root@izm5e5qf7n47jhwufk5eo9z ~]# su - user7
[user7@izm5e5qf7n47jhwufk5eo9z ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user7/.local/bin:/home/user7/bin
加密机制:
加密:明文-->密文
单向加密:提取数据指纹
md5: 128bit
sha1 160bit
用户属性修改 usermod
-d
-u UID
-g GID
-G 附加组 原来组会被覆盖 若保留原有则要同时使用-a表示追加
-s 新的默认shell
-c 注释
-d 新家目录 原有家目录中文件不会同时移至新家目录 若要移动同时使用-m
-l 新登录名
[root@izm5e5qf7n47jhwufk5eo9z ~]# groupadd g1
[root@izm5e5qf7n47jhwufk5eo9z ~]# groupadd g2
[root@izm5e5qf7n47jhwufk5eo9z ~]# tail -1 /etc/group
g2:x:3002:
[root@izm5e5qf7n47jhwufk5eo9z ~]# usermod -G g2,g1 tom
[root@izm5e5qf7n47jhwufk5eo9z ~]# id tom
uid=1002(tom) gid=1002(tom) groups=1002(tom),3001(g1),3002(g2)
给用户添加密码 passwd
passwd username: 修改指定用户密码 仅root
passwd 修改自己密码
删除用户:userdel
-r:删除用户家目录
修改组 groupmod
-n group_name :新名字
-g GID:新的GID
删除组 groupdel
groupdel GROUP
组密码:gpasswd
-r
[root@izm5e5qf7n47jhwufk5eo9z ~]# ls /home
blair jerry tom ttt user1 user2 user3 user4 user7 wwwroot
[root@izm5e5qf7n47jhwufk5eo9z ~]# userdel -r user3
[root@izm5e5qf7n47jhwufk5eo9z ~]# ls /home
blair jerry tom ttt user1 user2 user4 user7 wwwroot
文件权限
u 属主
g 属组
o 其他
权限 目录
r
w
x
文件
r 可使用文件查看类工具获取其内容
w 可修改其内容
x 可把此文件提请内核启动为一个进程
目录
r 可以使用ls查看此目录中文件列表
w 可再次目录中创建文件,也可删除此目录中的文件
x 可以使用 1s -l 查看此目录中文件列表 可以cd进入此目录
--- 000
--x 001
修改文件权限 chmod
chmod
-R 递归修改 修改目录权限连文件一起
[root@izm5e5qf7n47jhwufk5eo9z ~]# touch /tmp/aaa.txt
[root@izm5e5qf7n47jhwufk5eo9z ~]# ls /tmp/aaa.txt
/tmp/aaa.txt
[root@izm5e5qf7n47jhwufk5eo9z ~]# ls -l /tmp/aaa.txt
-rw-r--r-- 1 root root 0 Apr 14 14:27 /tmp/aaa.txt
[root@izm5e5qf7n47jhwufk5eo9z ~]# chmod 640 /tmp/aaa.txt
[root@izm5e5qf7n47jhwufk5eo9z ~]# ls -l /tmp/aaa.txt
-rw-r----- 1 root root 0 Apr 14 14:27 /tmp/aaa.txt
[root@izm5e5qf7n47jhwufk5eo9z ~]# chmod u=rwx,g=r /tmp/aaa.txt
[root@izm5e5qf7n47jhwufk5eo9z ~]# ls -l /tmp/aaa.txt
-rwxr----- 1 root root 0 Apr 14 14:27 /tmp/aaa.txt
修改文件属主 chown
cchown [OPTION]... [OWNER][:[GROUP]] FILE...
-R 递归修改
[root@izm5e5qf7n47jhwufk5eo9z ~]# chown tom:tom /tmp/aaa.txt
[root@izm5e5qf7n47jhwufk5eo9z ~]# ls -l /tmp/aaa.txt
-rwxr----- 1 tom tom 0 Apr 14 14:27 /tmp/aaa.txt
修改文件属组 chgrp
Usage: chgrp [OPTION]... GROUP FILE...
or: chgrp [OPTION]... --reference=RFILE FILE...