第一、基本命令的使用
命令的分类:
内部命令---shell内部代码实现的
外部命令---单独一个外部程序文件
帮助手册命令: man -a man ; man fstab
info : info date ; 接受控制命令 l ? h home
内部命令帮助: help cd ; help command
外部命令帮助:mount -h / mount --help
目录命令:
cd 绝对路径 相对路径
cd ~ cd -
mkdir
# mkdir dir1
# mkdir -p dir2/subdir3/subsubdir4
文件命令:
ls
ls -l
-rw-r--r-- 1 root root 2062 2007-01-08 avahi-autoipd.action
文件属性和权限 文件的硬链接数 文件的拥有者 文件拥有组
-rw-r--r-- 1 root root 2062 2007-01-08 avahi-autoipd.action
文件大小 文件的最后修改日期 文件名
ls -lh
ls -a <--把.开头的文件和目录都显示出来
ls -ld dir2
- rw-r--r--
文件的分类:
- 普通文件
d 文件夹
c 字符设备
b 块设备
l 符号链接
s socket套接字文件,网络程序在本地生成的特殊连接接口
p 管道文件
touch
touch file{2,3,4,5,6}
touch {a,b,c}file{1,2,3}
rm
rm file*
rm -i 提示是否确定删除
rm -f 不提示,强行删除
[root@dns test]# rm * -rf 没提示的情况下删除目录
[root@dns test]# rmdir dir3 只能删除空目录
cat
more less
more /etc/rc.d/rc.sysinit
less /etc/rc.d/rc.sysinit
管道:
cat /etc/rc.d/rc.sysinit | less
cat /etc/rc.d/rc.sysinit | more
cat /etc/rc.d/rc.sysinit | grep "reboot"
重定向:
cat /etc/rc.d/rc.sysinit > output.txt 标准正确输出重定向
echo "hello pts2" > /dev/pts/2
cat /sldjflskdjflksdjf 2> /tmp/test/error 标准错误输出重定向
cat /sldjflskdjflksdjf 2> /dev/null
cat /etc/rc.d/rc.sysinit > /dev/null
[root@dns test]# ls -l error output.txt noexist
ls: noexist: 没有那个文件或目录
-rw-r--r-- 1 root root 53 10-20 11:30 error
-rw-r--r-- 1 root root 27183 10-20 11:28 output.txt
[root@dns test]# ls -l error output.txt noexist &> /dev/null
<---全都重定向
echo "this is line 2" >> output.txt <---内容追加
cp
cp 源文件 目标路径
cp -a /home/tom/test ./tomfile2 <--- -a尽可能保留文件的原来属性
cp -r
cp -ar /home/tom/mail/ ./
mv -f
第二、VIM编辑器的使用
三种模式:
命令行模式
编辑模式(插入模式、替换模式)
末行模式
从命令行模式-->编辑模式 : i I a A o O s S
cw 删除光标所在的单词并且进入编辑状态
dw 删除一个单词
r 修改光标所在的那个字符
w 按单词移动光标
0 回到行首
$ 回到行末
gg 回到页首
GG 回到页末
yy 复制行
p 粘贴行
4yy 复制4行 p就粘贴
dd 删除一行
u 撤销上一次操作
U 撤销正行的操作
ctrl + r
从命令行模式到末行模式 shift + :
set nu === set number 显示行号
set nonu === set nonumber 取消显示行号
set autoindent 自动对齐 set noautoindent 取消自动对齐
:1,$s/if/hello/ 替换,把第一行到最后一行的第一个if替换成hello
:1,$s/word/new/g 全局替换,把一行中所有匹配的都替换
:2,3s/new/old/g 指定行替换
:240 快速把光标定位在240行
q 退出
q! 强行退出
w 保存
wq! <--强行保存并退出
split 横分 split /etc/hosts
vsplit 竖分
第三、用户管理
系统的分类:
单用户多任务系统 : 只有一个帐号并且这个帐号就是管理员,但支持多任务,支持多个人使用同一个帐号同时登录系统进行管理
多用户多任务系统 : 只有一个帐号是管理员,其余的都是普通帐号,根据他的属性进行分类,权限分明
在多用户的基础上,引出用户的分类:
1、管理员,具有所有的权限 uid = 0
2、系统帐号(伪帐号):uid的范围是 1 - 499,这些帐号默认是不允许登录,用来给予某些服务运行时候所用的身份
3、普通帐号: 一般情况下可以登录
1、相关文件
/etc/passwd
/etc/shadow
/etc/login.defs
/etc/group
/etc/gshadow
2、相关命令
useradd
usermod
userdel
passwd
groupadd
groupdel
groupmod
gpasswd
chfn
su
finger
id
3、详细说明
vim /etc/passwd
root:x:0:0:tanpao,uplooking,124324324,24235454:/root:/bin/bash
root 用户名
x 密码字段
0 用户id , uid
0 用户组id
tanpao,uplooking,124324324,24235454 帐号的个人信息
/root 用户的家目录
/bin/bash 用户的默认shell
cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin 《--这个就能达到不让帐号登录的目的
/bin/tcsh
/bin/csh
/bin/ksh
/bin/zsh
/etc/shadow
root:$1$.qEM76lH$8mVJ/RWiKAfR05g2OpuV10:14535:0:99999:7:a:b:c
root 用户名
$1$.qEM76lH$8mVJ/RWiKAfR05g2OpuV10 md5加密后的密码
14535 最后一次修改密码的时间,这个时间是距离1970-01-01 00:00:00到现在的天数
0 密码修改的最低时间间隔, 0不限制 ,假如是2就说明每次修改密码需要间隔2天
99999 密码的有效期,99999代表密码永久生效,假如30,就代表密码30天后过期
7 密码过期前多少前就开始警告你密码准备还有多少天过期
a 密码过期后你还能有多少天能登录系统,假如是2,那么密码过期后2天之内你可以登录系统,
默认值-1,就是代表,尽管密码过期了,过了很久,你都可以登录,但强制改密码
b 指定帐号过期的日期,这个日期距离1970-01-01 00:00:00到过期那天的天数
c 保留字段
具体命令使用:
useradd 或者 adduser
useradd moto 命令自动完成下面的7个大步骤:
1、在/etc/passwd添加一行信息
moto:x:534:603::/home/moto:/bin/bash
2、在/etc/shadow添加一行信息
moto:!!:14537:0:99999:7:::
3、在/etc/group添加组的信息
moto:x:603:
4、在/etc/gshadow添加组的密码信息
moto:!::
5、默认在/home建立家目录,名字和用户名一样
ls -ld /home/moto
6、把用户的环境变量文件复制到家目录
cp /etc/skel/.bash* /home/moto
7、创建用户的邮件文件
touch /var/mail/moto
useradd -e -d -f -g -G -s
/etc/passwd
root:x:0: 0 :tanpao,uplooking,124324324,24235454:/root:/bin/bash
-g -d -s
/etc/shadow
root:$1$.qEM76lH$8mVJ/RWiKAfR05g2OpuV10:14535:0:99999:7: a : b :c
-f -e
例子:useradd -s /sbin/nologin -d /rhome/ftpuser1 ftpuser1
usermod 参数和useradd基本一行
chfn moto
finger moto
删除用户:
[root@dns 10]# userdel ftpuser1
[root@dns 10]# ls /rhome/
ftpuser1
[root@dns 10]# ls /var/mail/ftpuser1
彻底删除一个用户,包括家目录和邮件
userdel -r username
修改密码:
passwd
[root@dns 10]# groupadd goodbbs
[root@dns 10]# tail -1 /etc/group
goodbbs:x:604:
组名 : 组密码 : 组id :组成员
[root@dns 10]# gpasswd -a tom goodbbs
正在将用户“tom”加入到“goodbbs”组中
[root@dns 10]# tail -1 /etc/group
goodbbs:x:604:tom
[root@dns 10]# gpasswd -a mary goodbbs
正在将用户“mary”加入到“goodbbs”组中
[root@dns 10]# tail -1 /etc/group
goodbbs:x:604:tom,mary
[root@dns 10]# tail -1 /etc/gshadow
goodbbs:!: :tom,mary
组名:密码:组管理员:组成员
[root@dns 10]# gpasswd -A tom goodbbs
[root@dns 10]# tail -1 /etc/gshadow
goodbbs:!:tom:tom,mary
[root@dns 10]# id jack
uid=532(jack) gid=534(jack) groups=534(jack)
[tom@dns ~]$ gpasswd -a jack goodbbs
正在将用户“jack”加入到“goodbbs”组中 <---永久把某个用户添加到tom具有管理权限的用户组里
[tom@dns ~]$ id jack
uid=532(jack) gid=534(jack) groups=534(jack),604(goodbbs)
临时切换组身份
[nokia@dns ~]$ id
uid=535(nokia) gid=535(nokia) groups=535(nokia),603(moto)
[nokia@dns ~]$ newgrp goodbbs 《---失败的原因是goodbbs没有设定密码
密码:
抱歉。
[root@dns tom]# gpasswd goodbbs
正在修改 goodbbs 组的密码
新密码:
请重新输入新密码:
[root@dns tom]# tail -1 /etc/gshadow
goodbbs:$1$1fiB//mU$pKxkyMWb9zp5tkkIRC1.y1:tom:tom,mary,jack
[nokia@dns ~]$ id
uid=535(nokia) gid=535(nokia) groups=535(nokia),603(moto)
[nokia@dns ~]$ newgrp goodbbs <---这个只是临时修改组身份,重新登录就会失效
密码:
[nokia@dns ~]$ id
uid=535(nokia) gid=604(goodbbs) groups=535(nokia),603(moto),604(goodbbs)
删除组
groupdel gooddel
改组名:
[root@dns tom]# groupmod -n newmoto moto
用户身份切换:
[root@dns 10]# su - nokia <---完全切换,不继承上一个用户的环境变量
[nokia@dns ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/mysql/bin:/home/nokia/bin
[nokia@dns ~]$ ifconfig
-bash: ifconfig: command not found
[root@dns 10]# su nokia <---不完全切换,继承上一个用户的环境变量
[nokia@dns 10]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/mysql/bin:/root/bin:/usr/local/mysql/bin
第四、用户权限
d rwx, r-x, r-x 4 root root 4096 10-20 11:46 dir2
拥有者权限u 拥有组的权限g 其他人权限o
r ---> read 读权限
针对文件夹,具有r权限,就代表具有对这个文件夹进行列表的权限
针对文件,具有r权限,就代表你能读取这个文件的内容
w ---> write 写权限
针对文件夹,具有w权限,就代表具有他能在该文件夹下创建文件
针对文件,具有w权限,就代表具有修改该文件内容的权限
x ---> execute 执行权限
针对文件夹,具有x权限,才能切换到该文件夹
针对文件,具有x去权限,就代表能够运行它,一般这个"它"都是命令或者脚本
- rw-r--r-- 1 root root 838 10-20 11:39 fstab
setfacl
getfacl
修改权限的命令:
chmod
[root@dns test]# touch file1
[root@dns test]# ll
总计 0
-rw-r--r-- 1 root root 0 10-20 17:00 file1
[root@dns test]# chmod u+x file1
[root@dns test]# ll
总计 0
-rwxr--r-- 1 root root 0 10-20 17:00 file1
[root@dns test]# chmod g+x file1
[root@dns test]# ll
总计 0
-rwxr-xr-- 1 root root 0 10-20 17:00 file1
[root@dns test]# chmod u-x,g-x,o+x file1
[root@dns test]# ll
总计 0
-rw-r--r-x 1 root root 0 10-20 17:00 file1
[root@dns test]# ll
总计 0
-rw-r--r-x 1 root root 0 10-20 17:00 file1
[root@dns test]# chmod u=rwx,g=rx,o=--- file1
[root@dns test]# ll
总计 0
-rwxr-x--- 1 root root 0 10-20 17:00 file1
rwx, r-x, r-x
111, 101, 101
7 5 5
00 0
01 1
10 2
11 3
100 4
101 5
110 6
111 7
[root@dns test]# ll
总计 0
-rwxr-x--- 1 root root 0 10-20 17:00 file1
[root@dns test]# rwx,r-x,r-x
[root@dns test]# chmod 755 file1
[root@dns test]# ll
总计 0
-rwxr-xr-x 1 root root 0 10-20 17:00 file1
[root@dns test]# chmod 431 file1
[root@dns test]# r--,-wx,--x
[root@dns test]# ll
总计 0
-r---wx--x 1 root root 0 10-20 17:00 file1
chown
[root@dns test]# ll
总计 0
-r---wx--x 1 root root 0 10-20 17:00 file1
[root@dns test]# chown tom:mary file1
[root@dns test]# ll
总计 0
-r---wx--x 1 tom mary 0 10-20 17:00 file1
[root@dns test]# chown jack.root file1
[root@dns test]# ll
总计 0
-r---wx--x 1 jack root 0 10-20 17:00 file1
尚观培训Day2
最新推荐文章于 2022-08-02 13:38:12 发布