Linux Shell编程(第一天)____入门

一、基础入门

理解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 w
3.执行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)













猜你喜欢

转载自blog.csdn.net/skymfc/article/details/51377773