ubuntu,day 2 ,退出当前用户,创建用户,查找,su,sudo,管道符,grep,alias,mount,tar解压
ubuntu,day 2 ,退出当前用户,创建用户,查找,su,sudo,管道符,grep,alias,mount,tar解压
本节内容:
1,文件权限的控制,chmod,chown
2,用户的增删和所属组,useradd,userdel
3,用户组的增删,groupadd,groupdel
4,su,sudo的介绍
5,别名的使用,alias
6,管道符|,重定向
7,comtab,计划任务
8,locat,find查找的使用
9,df,显示所有空间的使用情况
10,mount硬盘的挂载和卸载
11,tar解压
12,grep正则表达
1,文件权限,chmod,chown
r:可读——4
w:可写—–2
x:可执行—1,普通文件可以直接通过./来执行
-:代表没有权限
chmod o+w filename
chmod g+w filename
chmod u+w filename
chmod u=rwx filename
# 其中: # u 代表所有者(user) # g 代表所有者所在的组群(group) # o 代表其他人,但不是u和g (other) # a 代表全部的人,也就是包括u,g和o
2,useradd添加用户,usermod改变用户的信息
# -c 备注 加上备注。并会将此备注文字加在/etc/passwd中的第5项字段中 # -d 用户主文件夹。指定用户登录所进入的目录,并赋予用户对该目录的的完全控制权 # -e 有效期限。指定帐号的有效期限。格式为YYYY-MM-DD,将存储在/etc/shadow # -f 缓冲天数。限定密码过期后多少天,将该用户帐号停用 # -g 主要组。设置用户所属的主要组 www.cit.cn # -G 次要组。设置用户所属的次要组,可设置多组 # -M 强制不创建用户主文件夹 # -m 强制建立用户主文件夹,并将/etc/skel/当中的文件复制到用户的根目录下 # -p 密码。输入该帐号的密码 # -s shell。用户登录所使用的shell # -u uid。指定帐号的标志符user id,简称uid useradd user1 # 添加用户 user1 useradd -d /home/userTT user2
sudo mkdir user1 # 在/home目录下新建用户文件目录
sudo chown user1:user1 user1 # 改变目录的所有者和组的权限
cp /etc/skel/.bash* /home/user1 # 将目录下.bash开始的文件复制到家目录
source /home/user1/.bash* # 可以使家目录下的环境变量生效
userdel删除用户
userdel user1 # userdel -r user1 # -r, --remove 用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。 # -f, --force 此选项强制删除用户账户,甚至用户仍然在登录状态。它也强制删除用户的主目录和邮箱,即使其它用户也使用同一个主目录或邮箱不属于指定的用户
usermod用法:
chmod o+w file1 chmod g-w file1 chmod go-w file1 chmod u=rwx file1 chmod 755 file1 # -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限 chmod 644 # -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限 # 其中: # u 代表所有者(user) # g 代表所有者所在的组群(group) # o 代表其他人,但不是u和g (other) # a 代表全部的人,也就是包括u,g和o
3,groupadd,groupdel,chown
groupadd group # 添加用户组 groupadd -u 1000 group1 #指定gid的用户组
groupdel # 删除组
groupdel group # 删除组
chown # 改变文件的所属组所有者
chown root:root file chown root file chown :root file
4,su与 sudo
su : 切换用户,没有参数时,默认切换为root用户;
su # 切换为root ## 推荐 su - # 切换为root 并加载root的环境配置 su - user1 # 切换为user1 并加载user1的环境配置
sudo让当前用户暂时以管理员的身份root来执行命令。
sudo的配置文件:/etc/sudoers;可以通过修改它配置sudo命令
5,alias : 给命令起别名
alias ll=\'ls -l\' alias la=\'ls -a\'
关于各个文件的作用域,在网上找到了以下说明:
(1) /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
(2) /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。
(3) ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。
(4) ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
(5) ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是”父子”关系。(6) ~/.bash_profile: 也可能是 .profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。
6,管道符,重定向,标准输出
管道符 就是 | :他的作用是 将前一个命令的结果 交给后一个命令使用
>ww.txt # 文件ww.txt会变为空的
> 重定向,则覆盖文件内容,没有该文件就创建(需要有创建的权限)
>> 重定向,则向文件追加内容,没有该文件就创建(需要有创建的权限)
1> 标准正确输出,则覆盖文件内容,没有该文件就创建(需要有创建的权限)
1>> 标准正确输出,则向文件追加内容,没有该文件就创建(需要有创建的权限)
2> 标准错误输出,则覆盖文件内容,没有该文件就创建(需要有创建的权限)
2>> 标准错误输出,则向文件追加内容,没有该文件就创建(需要有创建的权限)
&> 标准正确输出和标准错误输出,文件中保存了写入的东西,报错信息也会出现在文件中,没有该文件就创建(需要有创建的权限)
7,crontab,计划任务
crontab -e # 修改计划配置* * * * * command to be executed
- - - - - - | | | | | | | | | | | --- 预执行的命令 | | | | ----- 表示星期0~7(其中星期天可以用0或7表示) | | | ------- 表示月份1~12 | | --------- 表示日期1~31 | ----------- 表示小时1~23(0表示0点) ------------- 表示分钟1~59 每分钟用*或者 */1表示
---------- 表示小时1~23(0表示0点)
1,crontab -e 进行编辑操作,选择是用vim,下次不需要选择,自动默认vim,在最下边加入:
*/1**** /bin/bash /tmp/cron.sh
# /bin/bash 指定运行的路径
# cron.sh是自定义的一个文件内容下方
date >> /tmp/date.txt # 这样是防止配置文件中字符超过60个会执行错误
2,crontab -l 显示当前客户的crontab内容
8,locate,find查询命令
locate /etc/sh # 所有包含/etc/sh路径的文件 locate -i ~/a # 所有主目录下所有以开头的文件,忽略大小写
因为是本地更新,据说是每天凌晨的4点进行更新
可以使用sudo updatedb更新数据库来实现更新
find
使用方法: find path -option [-print ] [ -exec -ok command ] {} \; ###### 根据文件名查找 ####### find / -name filename 再根目录里面搜索文件名为filename的文件 find /home -name "*.txt" find /home -iname "*.txt" # 忽略大小写 ###### 根据文件类型查找 ####### find /home/wuzhenhu/Desktop/ . -type 类型参数,有点的时候是可以查找到隐藏文件,没有点的时候不能查到隐藏文件 f 普通文件 l 符号连接 d 目录 c 字符设备 b 块设备 s 套接字 p Fifo ###### 根据目录深度查找 ####### find . -maxdepth 3 -type f # 最大深度为3 find . -mindepth 2 -type f # 最小深度为2 -o:逻辑或,两个条件只要满足一个即可。 -a:逻辑与,两个条件必须同时满足。 find /etc -size +2M -a -size -10M
+代表大于,-代表小于 ######### 对查找结果进行处理 ############# -exec shell命令 {} \; -ok shell命令 {} \; 其中-exec就是代表要执行shell命令,后面加的是shell指令,再后面的“{}”表示的是要对前面查询到的结果进行查询,最后的“\;”表示命令结束。需要注意的是“{}”和“\”之间是要有空格的。
而-ok选项与-exec的唯一区别就是它在执行shell命令的时候会事先进行询问,-print选项是将结果显示在标准输入上 find /home -name “*.txt” -ok ls -l {} \; find /home -name “*.txt” -ok rm {} \;
9,df显示所有空间的使用
df -Th # h以能显示的最大单位显示 T:显示文件系统类型
10,mount/mount3挂载和卸载设备
mount # 查询挂在设备及属性 # 挂载光盘 mount /dev/sr0 /mnt # 重新挂载设备 mount -o remount,rw /mnt # 重新挂载设备并设置rw属性 # 挂载iso文件 mount a.iso -o loop /mnt
umount /mnt # 卸载设备 umount -l /mnt # 强制卸载
11,tar解压,压缩命令
-c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意 c/x/t 同时仅能存在一个,因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程! -f :使用档名,请留意,在 f 之后要立即接文件名 -p :使用原文件的原来属性(属性不会依据使用者而变) -P :可以使用绝对路径来压缩! -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中! # 将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz tar czvf this.tar.gz ./*.txt # 将当前目录下的this.tar.gz中的文件解压到当前目录 tar xzvf this.tar.gz ./ # 将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar tar -cvf /tmp/etc.tar /etc # 仅打包,不压缩! tar -zcvf /tmp/etc.tar.gz /etc # 打包后,以 gzip 压缩 tar -jcvf /tmp/etc.tar.bz2 /etc # 打包后,以 bzip2 压缩 # 解压文件 tar -xf a.tar.gz # tar -xf a.tar.gz -C /tmp # 指定解包路径
12,grep匹配正则表达式
正则表达式:
初识正则表达式
^ : 匹配开头
$ : 匹配结尾
[] : 范围匹配
[a-z] : 匹配有小写字母
[A-Z] : 匹配所有大写字母
[0-9] : 匹配所有数字
. : 匹配单个字符
* : 表示*前面的内容出现0次或多次
+ : 表示+前面的内容出现1次或多次
? : 表示?前面的内容出现0次或1次
cat a.txt |grep hat$ # 匹配以hat结尾的行 cat a.txt |grep ^hat # 匹配以hat开头的行 cat a.txt | grep -E "[0-9]*" # 匹配有0到多个数字的行 cat a.txt | grep -E "[0-9]+" # 匹配有至少有1个数字的行 cat a.txt | grep -E "[0-9]?" # 匹配有0到1个数字的行