linux命令收集
- eval `getent passwd $LOGNAME | cut -d: -f7` 获得用户自己的解释器路径并执行
- echo $? 查看上一条命令执行成功否
- 清理message queues
ipcs查询msqid
ipcrm -q [msqid] - ubuntu增加账户sudo adduser yourname,添加sudo权限sudo usermod -aG sudo yourname
- 终端欢迎界面文件/etc/motd
- ssh连接后执行某命令:/etc/ssh/sshd_config最后加一行ForceCommand /xx.sh,xx.sh中最后要加入eval `getent passwd $LOGNAME | cut -d: -f7`,不然命令完后可能会直接中断ssh(bash解析器没有被执行)
-
查找文件:
7.1.按文件特征查找
(1)find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
(2)find / -atime -2 # 查找在系统中最后48小时访问的文件
(3)find / -empty # 查找在系统中为空的文件或者文件夹
(4)find / -group cat # 查找在系统中属于 group为cat的文件
(5)find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
(6)find / -mtime -1 #查找在系统中最后24小时里修改过的文件
(7)find / -user fred #查找在系统中属于fred这个用户的文件
(8)find / -size +10000c #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小于1000KB的文件7.2.使用混合查找方式
参数有: !,-and(-a),-or(-o)。
(1)find /tmp -size +10000c -and -mtime +2 #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
(2)find / -user fred -or -user george #在/目录下查找用户是fred或者george的文件文件
(3)find /tmp ! -user panda #在/tmp目录中查找所有不属于panda用户的文件 - grep:
[options]主要参数:
-c:只输出匹配行的计数。
-i:不区分大小写
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的单个字符。
* :有字符,长度可以为0。实例
(1)grep 'test' d* #显示所有以d开头的文件中包含 test的行
(2)grep ‘test’ aa bb cc #显示在aa,bb,cc文件中包含test的行
(3)grep ‘[a-z]\{5\}’ aa #显示所有包含每行字符串至少有5个连续小写字符的字符串的行
(4)grep magic /usr/src #显示/usr/src目录下的文件(不含子目录)包含magic的行
(5)grep -r magic /usr/src #显示/usr/src目录下的文件(包含子目录)包含magic的行(6)grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
(7)grep xxx --include='*.cpp' ~/ 在~/目录下查找所有cpp中包含"xxx"的片段
- 查看所有磁盘大小(包括没有挂载的)sudo fdisk -l
- 原本主硬盘不够用,外挂硬盘扩容方法:
(1)先挂载第二磁盘,使用fdisk -l查看所有磁盘节点,如/dev/sda1
(2)设置开机磁盘自动挂载,
(2.1)查看UUID信息:blkid,得到磁盘节点对应的UUID,如/dev/sda1: UUID="04d63634-7966-440e-a5c4-b1594f073c75" TYPE="ext4" PARTLABEL="pt1" PARTUUID="c0312e4e-aa0f-42cc-a185-f97dfda9819a"
UUID=04d63634-7966-440e-a5c4-b1594f073c75 /media/disk1 ext4 defaults 1 2
其中,/media/disk1为挂载目录,保存退出。
(3)扩容:
(2.3)mount -a进行挂载。
cd /home tar -zcvf /media/disk1 /home.tar.gz * cd /media/disk1 tar -zxvf home.tar.gz umount /home //卸载旧的home文件 mount -text4 /dev/sda1 /home
-
screen
玩法:-ls
-- 列出当前用户分享的 screen-dmS session
-- 新建一个 session (-d
表示不立即附着)-r
-- (对于本机登录的自己) 恢复离线的 screen 作业-x
-- (对于别处登录的相同的账号) 恢复作业, 实现同账号分享
以下操作处于
screen
中:<C-a> d
-- 从screen
中脱离 (注: 直接<C-d>
会关闭这个screen
!)<C-a> s
-- 冻结屏幕<C-a> q
-- 恢复冻结的屏幕<C-a> :multiuser on
-- 开始多用户模式<C-a> :acladd USER
-- 多用户模式中允许用户USER
访问
要实现不同账号分享, 首先在
root
权限下执行:chmod u+s $(which screen) chmod 755 /var/run/screen rm -fr /var/run/screen/*
再进行上述多用户模式中的操作即可 (比如
screen -x usera/shared
). - 查看磁盘占用率汇总:
df | awk '{a+=$2;b+=$3;c+=$4;g=1024*1024}END{printf "Disk Condition:\nTotal: %.1fG\nUsed: %.1fG\nAvailable: %.1fG\n",a/g,b/g,c/g}'
- 批量杀死进程
ps -ef|grep 进程名关键字|grep -v grep|awk '{print "kill -9 "$2}' | sh
-