1、删除一个目录下的所有文件,但保留一个指定文件
比如环境如下:要保留sos.txt 其他全部删除
通过!取反操作
以上两种方式
grep查找 -v显示没有匹配到的内容 以下两种也可以
脚本中删除文件或目录时,生产环境的使用方法一般为:
find . -type f -name “*.log” -mtime +15 | xargs rm -f
删除当前目录下以.log结尾的文件,且修改时间在15天以上的
find . -type d -name “*.heihei” -mtime +30 | xargs rm -rf
删除当前目录下以.heihei结尾的目录,且修改时间在30天以上的
2、已知/tmp目录下存在了no1.txt文件,如何执行命令才能把/test/no1.txt拷贝到/tmp下覆盖掉
/tmp/test.txt,而让Linux系统不提示是否覆盖(root权根下)
两种方法
(1)、\cp 作用是使用命令自身的意义
像cp是有命令别名的,实际系统中是cp -i
(2)、取消其命令别名
(3)、使用命令的全路径来执行
不过这里的取消命令别名只是当前生效
怎么设置别名,下图 这里也是当前生效
如何全局有效,编辑/etc/profile文件,在最后加上
再重读下文件(#source /etc/profile),配置生效。
而只想对当前用户有效,定义在~/.bashrc文件中。
3、只查看ett.txt文件(100行)内第20到第30行的内容(企业常见问题)
第20行到第30行,一共是11行
以下四种方式:
sed -n '20,30'p a.txt也可以
-n 取消默认输出
p 打印
NR 行号
-B 除显示匹配的,并显示该行之前的N行 before
-A 除显示匹配的,并显示该行之后的N行 after
-C 除显示匹配的,并显示该行之前后各的N行
4、查找pq目录,以其子目录中,以.txt结尾的文件中,把oldboy替换为gogo
先找到以.txt结尾的目录
然后用sed替换,并显示到标准输出界面,确认是否正确,无误再-i,替换原文件内容
ps:-g参数 globle全局的 没有的话,只替换该文件匹配到的第一个内容
也可这样写
-o 或者
-s 指定分隔符 默认是回车 这里是空格
!!重新执行上一条命令
!m 最近使用m开头的命令 !c !i !s 等等
!数字
cd - 返回当前目录上一次的目录
ctrl+d 退出当前登录 再按回车就行
类似exit logout
ctrl+l 清屏 类似clear
复制粘贴 ctrl+shift+c ctrl+shift+v
ctrl+a 跳到命令开头 ctrl+e 跳到命令结尾
ABCDEFGHIJK
ctrl+u 当前光标前的删除
EFGHIJK
ctrl+k 当前光标及后面的删除
ctrl+r 搜索
(reverse-i-search)`cat': cat /etc/issue
查看操作系统、查看内核版本
tree -a 全部 包括隐藏 -L num 向下显示几层 -d 显示目录
-i 不显示树枝 -f 显示全路径
-dfiL 连用
方法二
5、在/etc/profile或者 /etc/bashrc 里面定义
echo alias rm='echo do not use it' >> /etc/profile
6、#find /tmp-type f ! -name "passwd" | xargs rm -f
7、
8、
9、
显示的就是文件里面的内容
这就是xargs的作用
10、
下面两条为删除作用(没考虑文件大小)
find /test -type f -name "*.txt" -mtime +7 -exec rm -f {} \;
find /test -type f -name "*.txt" -mtime +7 | xargs rm -f
date -s "2017/10/01 00:04"修改时间
11、cat/etc/inittab
自己看
12、
cache 是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到加快访问速度的作用。
buffer 的主要目的进行流量×××,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的I/O,以减少响应次数(比如从网上下电影,你不能下一点点数据就写一下硬盘,而是积攒一定量的数据以后一整块一起写,不然硬盘都要被你玩坏了)。
怎么显示行号
还能用vim 命令行模式 set nu
#awk '{print NR,$0}'gogogo.txt 这样也行
但是上面用grep的方式不能把空行也显示行号
grep这样才能把空行的行号显示出来
Linux系统中查看中文乱码,如何解决?
查看文件多少行 专门看行号的
wc -l 显示文件行数
wc -L 显示一个文件中的最长行的长度
添加20个用户,给随机5位密码
查看/var/log下有多少文件
#tree -L 1 /var/log/ | cut -d " " -f3
43
查看端口
显示一个文件的前三行:
将/tmp/d1目录下大于100K的文件,转移到/tmp/d2
-t 反转 源和目标反转 目标tmp放前面 就可以了
将监控脚本“/usr/local/nginx/libexe/m.sh”放入crontab内,使每10分钟执行一次。
每天0点0分将/var/log/nginx目录下7天前以前大于等于800k的日志文件移动到/tmp/date/201712xx(以前一天的日期命名)目录中。
模拟环境:
写法一:
写法二:
*/1 是每分钟,而不是60分/1 次
每星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:201712120600.backup.tar.gz
这个可行
下面这个不行,不知道为什么。
找出系统内大于50K,小于100K的文件,并删除它们。
用sed命令实现直接将文件B.txt中的abc换成def
修改源文件得加-i
格式要对
列出某目录下,各个子目录占用空间的大小
在目录/tmp下找到10个以abc开头的文件,并把这些文件的第一行保存到文件new中
想到一个排序的问题,与本题无关
root密码忘记
方法一:
按b,重启
修改密码
方法二:
删除密码
重新登录,创建密码
方法三:
就是chroot /mnt/sysimage/
passwd root 修改