重定向命令的输出,将命令的输出结果,写入到文本文件中
>: 覆盖重定向
>>: 追加重定向
[root@server0 ~]# head -2 /etc/passwd #显示文件的头两行
[root@server0 ~]# head -2 /etc/passwd > /opt/pass.txt
[root@server0 ~]# cat /opt/pass.txt
[root@server0 ~]# hostname
[root@server0 ~]# hostname > /opt/pass.txt
[root@server0 ~]# cat /opt/pass.txt
[root@server0 ~]# head -2 /etc/passwd >> /opt/pass.txt
[root@server0 ~]# cat /opt/pass.txt
######################################################
管道操作 | : 将前面命令的输出结果作为参数,交由后面命令在处理一次
请显示 /etc/passwd 文件内容的8~12行?
[root@server0 ~]# head -12 /etc/passwd | tail -5
[root@server0 ~]# cat -n /etc/passwd | head -12 | tail -5
[root@server0 ~]# ifconfig | head -2
请显示 ifconfig命令输出结果的第二行 内容?
[root@server0 ~]# ifconfig | head -2 | tail -1
#######################################################
计算器: bc %:取余数运算 , 所有的 余数 都 小于 被除数
########################################################
# echo server0.example.com
# echo server0.example.com > /etc/hostname
# cat /etc/hostname
# echo nameserver 172.25.254.254 > /etc/resolv.conf
# cat /etc/resolv.conf
# echo 1+1 | bc
# echo 2*3 | bc
########################################################
有效信息: 去除注释以#开头 去除 空行
'^$' 匹配空行
# grep -v '^#' /etc/login.defs
# grep -v '^#' /etc/login.defs | grep -v '^$'
# grep -v '^#' /etc/login.defs | grep -v '^$' > /opt/1.txt
# cat -n /opt/1.txt
######################################################
管理用户和组
用户: 1.登陆操作系统 2.访问控制(不同的用户 权限不同)
组:方便对用户的管理
唯一标识: UID GID
管理员root: UID为0
组: 基本组(私有组) 附加组(从属组 公共组)
一个用户至少要属于一个组
#####################################################
用户基本信息存放在 /etc/passwd 文件
[root@server0 ~]# grep 'nsd01' /etc/passwd
nsd01:x:1002:1002::/home/nsd01:/bin/bash
用户名:密码占位符号 :UID:GID:用户的描述信息:家目录所在位置:解释器
• 使用 useradd 命令
– useradd [选项]... 用户名
• 常用命令选项
– -u 用户id、-d 家目录路径、-s 登录Shell
– -g 基本组、-G 附加组
/sbin/nologin:阻止用户登陆系统(没有可以交互的shell)
[root@server0 ~]# useradd nsd01
[root@server0 ~]# id nsd01
[root@server0 ~]# grep 'nsd' /etc/passwd
[root@server0 ~]# useradd -u 1500 nsd02 #指定UID创建
[root@server0 ~]# id nsd02
[root@server0 ~]# grep 'nsd' /etc/passwd
[root@server0 ~]# useradd -d /opt/abc nsd03 #指定家目录创建
[root@server0 ~]# grep 'nsd' /etc/passwd
[root@server0 ~]# ls /opt
[root@server0 ~]# useradd -s /sbin/nologin nsd08
[root@server0 ~]# grep 'nsd08' /etc/passwd
nsd08:x:1503:1503::/home/nsd08:/sbin/nologin
[root@server0 ~]# groupadd tarena #创建组
[root@server0 ~]# useradd -G tarena nsd09 #创建用户加入tarena组
[root@server0 ~]# id nsd09 #查看用户信息
##########################################################
• 使用 passwd 命令
– passwd [用户名]
– echo '密码' | passwd --stdin 用户名
[root@server0 ~]# passwd nsd01
非交互式 设置密码
[root@server0 ~]# echo redhat | passwd --stdin nsd01
##########################################################
存放密码信息的文件/etc/shadow
#########################################################
• 使用 usermod 命令
– usermod [选项]... 用户名
• 常用命令选项
– -u 用户id、-d 家目录路径、-s 登录Shell
– -G 附加组
# useradd tom
# grep 'tom' /etc/passwd
# usermod -u 1600 -d /mnt/test -s /sbin/nologin tom
# grep 'tom' /etc/passwd
##########################################################
删除用户
• 使用 userdel 命令
– userdel [-r] 用户名
[root@server0 ~]# userdel nsd01
[root@server0 ~]# ls /home/
[root@server0 ~]# id nsd01
id: nsd01: no such user
[root@server0 ~]# userdel -r nsd02
[root@server0 ~]# id nsd02
id: nsd02: no such user
[root@server0 ~]# ls /home/
#####################################################
补充: su 命令行临时切换身份
[root@server0 ~]# useradd nsd10
[root@server0 ~]# echo 123 | passwd --stdin nsd10
[root@server0 ~]# su - nsd10
[nsd10@server0 ~]$ passwd
Changing password for user nsd10.
Changing password for nsd10.
(current) UNIX password: #先输入旧密码
New password: #新密码
Retype new password: #确认新密码
passwd: all authentication tokens updated successfully.
[nsd10@server0 ~]$ exit
#####################################################
管理组账号
组基本信息存放在 /etc/group 文件
[root@server0 ~]# groupadd stugrp
[root@server0 ~]# grep 'stugrp' /etc/group
stugrp:x:1702:
组名:组的密码占位符号:GID:组成员的列表
[root@server0 ~]# useradd dc
[root@server0 ~]# useradd jack
[root@server0 ~]# useradd kenji
[root@server0 ~]# useradd kaka
###################################################
• 使用 gpasswd 命令
– gpasswd -a 用户名 组名
– gpasswd -d 用户名 组名
– gpasswd -M 用户名列表 组名
[root@server0 ~]# grep 'stugrp' /etc/group
[root@server0 ~]# gpasswd -a dc stugrp #添加用户到组
[root@server0 ~]# grep 'stugrp' /etc/group
[root@server0 ~]# gpasswd -a kaka stugrp
[root@server0 ~]# grep 'stugrp' /etc/group
[root@server0 ~]# gpasswd -d dc stugrp #将用户dc从组中删除
[root@server0 ~]# grep 'stugrp' /etc/group
[root@server0 ~]# gpasswd -M 'dc,jack,kenji' stugrp #定义组列表
[root@server0 ~]# grep 'stugrp' /etc/group
[root@server0 ~]# gpasswd -M '' stugrp #清空组内所有成员
[root@server0 ~]# grep 'stugrp' /etc/group
########################################################
删除组
• 使用 groupdel 命令
– groupdel 组名
#####################################################
tar备份与恢复
• 归档的含义
– 将许多零散的文件整理为一个文件
– 文件总的大小基本不变
• 压缩的含义
– 按某种算法减小文件所占用空间的大小
– 恢复时按对应的逆向算法解压
Linux独有的压缩工具:
gzip -----> *.gz
bzip2 -----> *.bz2
xz -----> *.xz
红色:压缩包
[root@server0 ~]# rm -rf /opt/*
[root@server0 ~]# cp /etc/passwd /opt/a.txt
[root@server0 ~]# cp /etc/passwd /opt/b.txt
[root@server0 ~]# cp /etc/passwd /opt/c.txt
[root@server0 ~]# cd /opt/
[root@server0 opt]# ls
[root@server0 opt]# gzip a.txt
[root@server0 opt]# ls
[root@server0 opt]# bzip2 b.txt
[root@server0 opt]# ls
[root@server0 opt]# xz c.txt
[root@server0 opt]# ls
################################################
tar 是归档工具, 打包
[root@server0 /]# tar -cf 归档文件的名字 被归档文件或目录
[root@server0 /]# rm -rf /opt/*
[root@server0 /]# rm -rf /mnt/*
[root@server0 /]# tar -cf /opt/file.tar /etc/passwd /home/
[root@server0 /]# ls /opt/
[root@server0 /]# tar -xf /opt/file.tar -C /mnt/
[root@server0 /]# ls /mnt/
[root@server0 /]# ls /mnt/etc/
[root@server0 /]# ls /mnt/home/
• tar 集成备份工具
– -c:创建归档
– -x:释放归档
– -f:指定归档文件名称
– -z、-j、-J:调用 .gz、.bz2、.xz 格式的工具进行处理
– -t:显示归档中的文件清单
– -P:保持归档内文件的绝对路径
[root@server0 /]# rm -rf /opt/*
[root@server0 /]# rm -rf /mnt/*
[root@server0 /]# tar -zcf /opt/home.tar.gz /home
tar: 从成员名中删除开头的“/”
[root@server0 /]# ls /opt/
[root@server0 /]# tar -jcf /opt/home01.tar.bz2 /home/
tar: 从成员名中删除开头的“/”
[root@server0 /]# ls /opt/
[root@server0 /]# tar -Jcf /opt/home02.tar.xz /home/
tar: 从成员名中删除开头的“/”
[root@server0 /]# ls /opt/
[root@server0 /]# tar -xf /opt/home02.tar.xz -C /mnt/
[root@server0 /]# ls /mnt/
查看包里面有什么内容
[root@server0 /]# tar -tf /opt/home.tar.gz
[root@server0 /]# tar -zcPf /opt/file.tar.gz /home/
使用 tar 工具完成以下备份任务:
– 创建一个名为 /root/backup.tar.bz2 的归档文件
– 其中包含 /usr/local 目录中的内容
[root@server0 /]# tar -jcf /root/backup.tar.bz2 /usr/local/
tar: 从成员名中删除开头的“/”
[root@server0 /]# ls /root/
#查看包里面内容
[root@server0 /]# tar -tf /root/backup.tar.bz2
#######################################################
find 查找文档所在位置
-type 类型 f(文本文件) d(目录) l(快捷方式)
-name 名字
-size 大小 + | -
-user 按照文档所属用户
[root@server0 /]# find /boot/ -type d #目录
[root@server0 /]# find /boot/ -type l #快捷方式
[root@server0 /]# ls /boot/grub/menu.lst
[root@server0 /]# ls -l /boot/grub/menu.lst
[root@server0 /]# find /boot/ -type f #文本文件
####################################################
[root@server0 /]#
[root@server0 /]# touch /root/stu01.txt
[root@server0 /]# touch /root/stu02.txt
[root@server0 /]# mkdir /root/student
[root@server0 /]# find /root -name "stu*"
/root/stu01.txt
/root/stu02.txt
/root/student
[root@server0 /]# find /root -name "stu*" -type f
/root/stu01.txt
/root/stu02.txt
[root@server0 /]# find /root -name "stu*" -type d
/root/student
#########################################################
[root@server0 /]# find /boot/ -size +10M
[root@server0 /]# find /boot/ -size -10M
#######################################################
• 使用find命令完成以下任务
– 找出所有用户 student 拥有的文件
[root@server0 /]# find / -user student -type f
[root@server0 /]# find /home -user student
# find / -user student -type f -exec cp {} /root/findfiles \;
#########################################################
– 优势:以 {} 代替每一个结果,逐个处理,遇 \; 结束
[root@server0 /]# find /boot/ -size +10M
[root@server0 /]# ls /opt/
# find /boot/ -size +10M -exec cp {} /opt/ \;
[root@server0 /]# ls /opt/