Shell 编程

2017/01/01 OS

第一章

/etc/profile 全局公共配置

/etc/bashrc 全局启动bash shell时执行

~/.bash_profile 当前用户配置

~/.bashrc 当前用户启动bash shell时执行

~/.bash_logout 当用户退出时执行

查看当前日期与登陆用户 whologged.sh

#!/bin/bash       # Sha-bang 使用 #! 指定需要的解释器
cd ~              #切换到用户根目录 .bash_profile在根目录
./.bash_profile   #配置用户的命令行环境
date              #显示日期命令
who               #显示当前登陆用户

执行此 shell 脚本

chmod u+x whologged.sh  #添加用户执行权限
ls -l whologged.sh      #查看权限等
./whologged.sh          #执行

第二章

用户管理

Linux 三种用户

  • root 超级用户,系统唯一,拥有最高权限
  • 虚拟用户,不具有登陆系统的功能,但是系统或程序运行所需要的
  • 普通真实用户,能登陆系统,权限受到限。

管理用户命令

  1. 添加用户 useradd、adduser (创建用户时会创建同名私有组, 复制/etc/skel 内容到 /home/用户名 下)
  2. 修改用户 usermod
  3. 删除用户 userdel
  4. 用户密码管理 passwd
  5. 添加组 groupadd
  6. 修改组 groupmod
  7. 删除组 groupdel
#查看新用户与组信息
tail -l /etc/passwd

#查看用户密码
tail -l /etc/shadow

#查看组
tail -l /etc/group

文件管理

命令 ls cp mv rm mkdir rmdir cd chmod chown

SUID: 当一个设置了SUID权限可执行文件被执行时,该文件以所有者的身份执行 SGID: 当一个设置了SGID权限可执行文件被执行时,该文件以所在组的身份执行

所占位置为 x 权限所在位置

# 设置 SUID 
chmod u+s [filename]
# 去除 SUID
chmod u-s [filename]
# 设置 SGID
chmod g+s [filename]
# 去除 SGID
chmod g-s [filename]

查找命令 find , 可以根据名称 用户 组 权限 类型等查找

查找之后执行find . -name "*.sh" -exec ls {} \ 更安全的方式执行find . -name "*.sh" -ok rm {} \ 比如删除时确是否删除

文本编辑器vi

一般模式命令: q q! w wq!

快捷键: 光标到行头 h 光标上移 j 光标下移 k 行头 ( 行尾 ) 段头 { 段尾 }

行非空头部 ^ 尾部 $

命令 光标移动到第n行 :n 删除整行 dd 删除光标到行尾 d$ 删除光标到行头 d^ 合并下一行到行尾 J 在当前行附加内容 A 在当前光标后附加内容 a

向下搜索, 先按下/再输入需要搜索的内容 向上搜索, 使用 ? 替换第一次匹配内容: :s/old_string/new_string 替换所有匹配内容: :s/old_string/new_string/g

n1 n2行之间搜索:n1, n2s/old_string/new_string

grep命令与正则表达式

grep 是支持正则表达式搜索的多用途文本搜索工具

Search

    Table of Contents