一、基础入门
理解shell是多种命令的融合,因此首先学习linux的命令。而命令本身有成千上万,同时参数也很多,因此学会如何查找
使用命令的方法。
1.查找帮助:
#man <command>2.多条命令同时执行
#ls -l ; date ;w利用分号来分割,三条命令会逐一执行
[root@sky home]# ls ;date;w jbb_spec os_iso sky spec testscrip 2016年 05月 11日 星期三 20:10:40 CST 20:10:40 up 14 min, 2 users, load average: 0.05, 0.08, 0.12 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root :0 :0 19:57 ?xdm? 1:41 0.09s gdm-session-wor root pts/0 :0 20:09 0.00s 0.05s 0.01s w3.执行shell脚本
1)#sh test.sh
2)首先赋予执行的权限,再执行
#chmod +x test.sh #./test.sh
二、用户管理和常用命令
2.1.1用户常用管理命令
linux由多用户组成,不同的用户的角色通过UID来进行识别,即说明用户的UID是唯一的。
1)添加用户useradd
使用中#useradd [options] [username]
#useradd test执行完该命令后会在/etc/passwd文件中添加一行数据,利用tail -l命令查看信息如下加粗部分则为新建用户。
[root@sky home]# tail -l /etc/passwd gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:985:980::/run/gnome-initial-setup/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin dovenull:x:984:979:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin sky:x:1000:1000:sky:/home/sky:/bin/bash <strong>test:x:1001:1001::/home/test:/bin/bash</strong> #新建的test用户 <strong>#查看加密后的用户</strong> [root@sky home]# tail -l /etc/shadow gdm:!!:16899:::::: gnome-initial-setup:!!:16899:::::: avahi:!!:16899:::::: sshd:!!:16899:::::: dovecot:!!:16899:::::: dovenull:!!:16899:::::: oprofile:!!:16899:::::: tcpdump:!!:16899:::::: sky::16899:0:99999:7::: test:!!:16932:0:99999:7::: #查看home目录下是否新建了 [root@sky home]# ls /home/ jbb_spec os_iso sky spec <strong> test</strong> testscrip由上查看,可以看到test的UID为1001
通过/etc/shadow可以看到test的密码,然而由于我们未设置密码,因此此处显示!!
最后,我们通过查看/home目录发现已经创建成功了test用户的目录。
useradd中各个options的用法如下表所示
选项 | 意义 |
-g | 用户添加时指定的用户私有组,不添加该-g则自动创建与用户帐号同名的组 |
-G | 用户添加附属组 |
-D | 显示或更改默认的 useradd 配置 |
-d | 新账户的主目录 |
-m | 创建用户的主目录 |
-u UID | 新账户的用户UID |
2)修改账户usermod
#usermod [options] [username]usermod常用的选项如下
选项: -c, --comment 注释 GECOS 字段的新值 -d, --home HOME_DIR 用户的新主目录 -e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE -f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态 -g, --gid GROUP 强制使用 GROUP 为新主组 -G, --groups GROUPS 新的附加组列表 GROUPS -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中, 并不从其它组中删除此用户 -h, --help 显示此帮助信息并推出 -l, --login LOGIN 新的登录名称 -L, --lock 锁定用户帐号 -m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用) -o, --non-unique 允许使用重复的(非唯一的) UID -p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码 -R, --root CHROOT_DIR chroot 到的目录 -s, --shell SHELL 该用户帐号的新登录 shell -u, --uid UID 用户帐号的新 UID -U, --unlock 解锁用户帐号 -Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
由上述表述中,usermod也可以用来修改密码,但是不建议这么做,这么做的结果就是/etc/shadow为明文。
一般修改密码使用passwd
#修改密码为123456 [root@sky home]# usermod -p 123456 test #查看秘密发现其为明文 [root@sky home]# tail -l /etc/shadow gdm:!!:16899:::::: gnome-initial-setup:!!:16899:::::: avahi:!!:16899:::::: sshd:!!:16899:::::: dovecot:!!:16899:::::: dovenull:!!:16899:::::: oprofile:!!:16899:::::: tcpdump:!!:16899:::::: sky::16899:0:99999:7::: <span style="color:#FF0000;"><strong>test:123456:16932:0:99999:7::: </strong></span>
3)删除帐号userdeluserdel只有一个选项-r,表示删除用户的同时删除/home/下的用户目录
<pre name="code" class="plain">[root@sky home]# userdel test2 <strong>#即使删除用户/home下的test2目录仍然存在</strong> [root@sky home]# ls jbb_spec os_iso sky spec test test2 testscrip [root@sky home]# userdel -r test <strong>#添加-r选项后则/home/test目录则一起被删除</strong> [root@sky home]# ls jbb_spec os_iso sky spec test2 testscrip
4)帐号口令管理——passwd
利用passwd [option] [username]来进行添加或修改密码。
修改密码一般要求输入两次最后则完成
[root@sky home]# passwd test 更改用户 test 的密码 。 新的 密码: 无效的密码: 密码未通过字典检查 - 过于简单化/系统化 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。
2.1.2 用户组管理常用命令
用户组和用户的关系是多对多的。
用户组的管理命令:groupadd、groupmod、groupdel
由命令可见,其类似于用户的操作命令分为添加、修改、删除。
[root@sky home]# groupadd -g 6666 test2 [root@sky home]# tail -l /etc/group slocate:x:21: avahi:x:70: sshd:x:74: dovecot:x:97: dovenull:x:979: oprofile:x:16: tcpdump:x:72: sky:x:1000: test:x:1001: <strong>test2:x:6666:</strong> [root@sky home]# groupadd test3 [root@sky home]# tail -l /etc/group avahi:x:70: sshd:x:74: dovecot:x:97: dovenull:x:979: oprofile:x:16: tcpdump:x:72: sky:x:1000: test:x:1001: test2:x:6666: <strong>test3:x:6667:</strong>
由上可见,groupadd添加强制UID选项后,则有自己的GID如上test2的6666;而不添加-g选项则结果的UID则为上一个GID加1,为6667
同理,groupmod和groupdel相似
2.2 文件和目录操作
文件查看以及目录操作为常用的操作,此处列出常用的命令
1)ls ===list 列出信息,下面列出常用的选项
选项 | 意义 |
-a | 显示所有项目,包括隐藏文件 |
-A | 比-a少'.'和'..'两个 |
-c | 按照时间修改时间显示 |
-dl | 得到目录本身的详细信息 |
-l | 详细信息,常用 |
-m | 文件以逗号区分进行显示 |
-n | 和-l相似,把用户和组换成ID |
-t | 按时间修改顺序 |
常用的ls -l。显示详细信息
2)文件复制——cp
建议使用-i选项来避免原来文件损坏
-a:表示复制时保存源文件的各种属性
-r:表示复制文件夹
3)文件移动或重命名-mv
4)删除命令——rm
5)创建目录——mkdir
#mkdir -p /home/test/test32
-p选项可以创建多层路径
-m:制定权限
给home目录777的权限
#mkdir -m 777 /home
6)切换目录——cd
#切换到上次访问目录 #cd - #切换到上级目录 #cd ..
7)文件权限问题
7:rwx用二进制表示111即7
rwx:读、写、执行权限
#chmod /chown/
8)文件查找
示例:查找当前文件夹下,以ra开头,权限为755的文件,主要使用print打印
[root@sky script_test]# find . -name 'ra*' -perm 755 -print ./config/shell/rate.sh ./rate.sh
使用-exec选项可以在找到文件后执行其后面的内容,如下面的cat操作
[root@sky script_test]# find /etc/ -type f -name 'neoky*' -exec cat {} \; NeoKylin Linux Advanced Server release V7Update2 (Potassium)