网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[dmtsai@study ~]$ echo $?
127 <==因为有问题,回传错误代码(非为0) # 错误代码回传值依据软件而有不同,我们可以利用这个代码来搜寻错误的原因喔!
[dmtsai@study ~]$ echo $?
0
# 咦!怎么又变成正确了?这是因为 “?” 只与“上一个执行指令”有关, # 所以,我们上一个指令是执行“ echo $? ”,当然没有错误,所以是 0 没错!
read:读取来自键盘输入的变量
declare/typeset:宣告变量的类型
history:历史命令
[dmtsai@study ~]$ !66 <==执行第 66 笔指令
[dmtsai@study ~]$ !! <==执行上一个指令(相当于↑)
[dmtsai@study ~]$ !al <==执行最近以 al 为开头的指令
防止别人查看你的历史记录可history -w 把记录写到文件.bash_history里,再history -c 清除记录,强迫更新记录档
终端机的环境设置:stty,set
intr : 送出一个 interrupt (中断) 的讯号给目前正在 run 的程序 (就是终止啰!);
quit : 送出一个 quit 的讯号给目前正在 run 的程序;
erase : 向后删除字符, kill : 删除在目前命令行上的所有文字;
eof : End of file 的意思,代表“结束输入”。
start : 在某个程序停止后,重新启动他的 output
stop : 停止目前屏幕的输出;
susp : 送出一个 terminal stop 的讯号给正在 run 的程序。
万用字符与特殊符号
数据流重导向
1> :以覆盖的方法将“正确的数据”输出到指定的文件或设备上;
1>>:以累加的方法将“正确的数据”输出到指定的文件或设备上;
2> :以覆盖的方法将“错误的数据”输出到指定的文件或设备上;
2>>:以累加的方法将“错误的数据”输出到指定的文件或设备上;
Linux账号管理与ACL权限设置
=================
用户组
有效用户组和初始用户组
我想要让 dmtsai 这个使用者,加入 vbird1, vbird2, vbird3 这三个群组,且不影响 dmtsai 原本已经支持的次要群组时,该如何动作?
usermod -a -G vbird1,vbird2,vbird3 dmtsai
groups:查看用户组
newgrp:有效用户组的切换
exit :注意,记得退出newgrp的环境
chown 目录:改变目录用户者(加-R可把目录下的文件也改变)
chgrp 目录:改变用户组 -R,同上
账号管理
useradd 选项 用户名
系统账号的UID都是小于1000,默认不会建立家目录
要让 test 变成 root 的权限,那么就将 /etc/passwd 里面, test 的 UID 与 GID 字段变成 0 即可
实例1
# useradd –d /home/sam -m sam
此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)。
实例2
# useradd -s /bin/sh -g group –G adm,root gem
此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
passwd
修改用户密码格式为【sudo passwd 用户名】
使用useradd建立账号默认账号是锁定的,直接passwd修改账号密码就好了
要帮一般账号修改密码需以【passwd账号】格式,使用【passwd】表示修改自己的密码
与root不同的是,密码的规范非常严格,只有出现【Retype】密码才被接受,并看到【successfuly】才算修改密码成功
为方便系统管理,可用【–stdin】
举例来说,帮vbired2修改密码成为abc543cc
这个动作会直接更新使用者的密码而不用再次的手动输入!好处是方便处理,缺点是这个密 码会保留在指令中, 未来若系统被攻破,人家可以在 /root/.bash_history 找到这个密码呢! 所以这个动作通常仅用在 shell script 的大量创建使用者帐号当中!
让某个账号暂时无法使用密码登录主机,办法就是让它的密码变成不合法(shadow第二字段长度变掉)
将 /etc/passwd 的 shell 字段写成 /sbin/nologin ,即可让该帐号暂时无法登陆主机; 将 /etc/shadow 内的密码字段,增加一个 * 号在最前面,这样该帐号亦无法登陆! 将 /etc/shadow 的第八个字段关于帐号取消日期的那个,设置小于目前日期的数字, 那么他就无法登陆系统了!
chage【使用者在第一次登陆时, 强制她们一定要更改密码后才能够使用系统资源】
usermod
# usermod -s /bin/ksh -d /home/z –g developer sam
此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
userdel
userdel -r username:连同使用者的家目录也一起删除
如果想要完整的将某个帐号完整的移除,最好可以在下达 userdel -r username 之前, 先以“ find / -user username ”查出整个系统内属于 username 的文件,然后再加以删除吧!
如果该帐号只是【暂时不启用】的话,那么将 /etc/shadow 里头帐号失效日期 (第八字段) 设置为 0 就可以让该帐号无法使用,但是所有跟该帐号相关的数据都会留下来
用户功能
id username:查看账号信息
finger[-s-m] username:列出用户相关属性
chfn[-fopeh][账号名]:修改用户finger的数据(/etc/passwd的第五个栏位)
chsh[-ls]:-s修改shell,-l列出系统上可用shell
新增与删除用户
groupadd[-g GID][-r]用户组名称(增)
groupmod[-g GID][-n]用户组(改)
groupdel用户组(删)
linux磁盘管理
Linux 磁盘管理常用三个命令为 df、du 和 fdisk。
-
df(英文全称:disk full):列出文件系统的整体磁盘使用量
-
du(英文全称:disk used):检查磁盘空间使用量
-
fdisk:用于磁盘分区
df
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:
df [-ahikHTm] [目录或文件名]
选项与参数:
-
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-
-k :以 KBytes 的容量显示各文件系统;
-
-m :以 MBytes 的容量显示各文件系统;
-
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-
-H :以 M=1000K 取代 M=1024K 的进位方式;
-
-T :显示文件系统类型, 连同该分区 的文件系统名称 (例如 ext3) 也列出;
-
-i :不用硬盘容量,而以 inode 的数量来显示
du
Linux du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间