-
将命令放到后台执行:watch -n 10 sh test.sh & #每10s在后台执行一次test.sh脚本
-
将一个正在前台执行的命令放到后台,并且处于暂停状态:ctrl+z
-
查看后台执行的命令:jobs;-l 选项可现实所有任务的PID
-
将后台命令调至前台继续执行:fg %jobnumber(命令编号)
-
将后台暂停命令,变成后台继续执行:bg %jobnumber
-
查杀某个命令进程任务:
-
方法1:jobs查看job号,然后执行kill %jobnumber
-
方法2:jobs -l查看任务PID,然后执行kill pid
-
-
终止当前进程:ctrl+c
-
如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
-
关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps:ps -aux | grep "test.sh" #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分.
键盘输入文件终止符:
-
windows:ctrl+z
-
unix:ctrl+d
查看文件常用命令:
-
more:space键向前翻页,b键向后翻页,Enter键向后滚动一行(但没有向前滚动一行的键)
-
less:pageUp/pageDn向后/向前翻页,:行数:可向后滚动指定行数,上下键可向后/向前滚动一行. 比more更灵活.
-
more与less区别:less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示;less不必读整个文件,加载速度会比more更快;less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容。
-
head test.txt -n 10:查看前几行
-
tail test.txt -n 10:查看后几行
-
tail -f ping.log:循环读取(常用于查看递增的日志文件)
-
cat -n test.txt:查看文件内容并显示行号
-
cat > test.txt:从键盘输入到文件,类似于记事本
查看Linux发行版本:
-
cat /etc/os-release
-
cat /proc/version
-
lsb_release -a
-
uname -a:输出系统相关信息
查找文件位置:
-
which:查看命令位置。which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。查看当前 PATH 配置:echo $PATH
-
whereis:查看命令对应的源码、帮助等文件。whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。
-
find:实际搜寻硬盘查询文件名称。
-
find ./ -name '*.log'
-
find -size +1000c:查找大于1k的文件
-
配合xargs执行其他命令:find . -name "*.log" | xargs -i mv {} test4 -i表示将前面结果一行一行传给后面的{}
-
查看磁盘/目录空间大小:
-
df:显示磁盘空间使用情况。df -l:显示磁盘使用情况;df -haT:以易读方式列出文件系统及类型
-
du:对文件和目录占用空间查看。du -hc --max-depth=1 scf/:输出当前目录下各个子目录所使用的空间;du -hc test/ scf/:显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
- 查看某个目录下所有文件或目录的大小并排序:du -sh /home/he/* | sort -hr
压缩与解压:
-
gzip
-
压缩:gzip fileName .tar.gz 和.tgz
-
解压:gunzip filename.gz 或 gzip -d filename.gz
-
-
tar:
-
压缩:tar zcvf filename.tar.gz;tar jcvf filename.tar.bz2
-
解压:tar zxvf filename.tar.gz;tar jxvf filename.tar.bz2
-
解压到指定目录:tar zxvf xxx.tar.gz -C dstDir
-
压缩指定目录下的文件:tar zcvf xxx.tar.gz -C /test
-
-
-
压缩:bzip2 -z filename.tar.bz2
-
解压:bunzip filename.bz2或bzip -d filename.bz2
-
查看当前用户信息:
-
whoami
-
id
创建/删除链接:
-
查看文件链接信息:ls -l查看链接数;ls -i查看文件inode值
-
硬链接:ln -v 文件名 链接名. 硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。inode会链接到block块,而“目录”本身仅消耗inode,这样硬链接就不能链接目录(只有超级用户才可以为目录创建硬链接。)。不能跨文件系统,不能链接不存在的文件。
-
软件链接:ln -sv 文件名 链接名. 软链接可以跨文件系统,有自己的inode,可以对目录进行链接,类似于windows的快捷方式.
-
删除链接:rm -rf 链接名
grep命令
-
cat test.txt | grep svn -C 30:查找文件test.txt中包含svn关键字的前后30行。或 grep svn -C 30 test.txt
-
ps -ef | grep svn -c:查找指定进程个数。-c:查找到的匹配个数
-
grep -lR '^grep' /tmp:从文件夹中递归查找以grep开头的行,并只列出文件。-l: 只列出文件内容符合指定的样式的文件名称;-R:递归查找文件夹. eg:查看目录中包含某个关键词的文件:grep -lR ‘mkdir failed’ .
-
grep -E 'ed|at' test.txt:显示包含 ed 或者 at 字符的内容行
-
grep '^[^x]' test.txt:查找非x开头的行内容
-
grep -n 'mkdir' test.txt:查找关键词在文件中的行号
返回到上个目录:cd -
输出命令结果的头信息:
如果命令中有管道"|",则输出信息中标题信息将丢失。解决办法:ps aux | head -1; ps aux | grep tomcat
进程查看:
-
查找某进程:ps -aux | grep apache
-
查找服务相关的进程:ps aux | grep '(cron|syslog)'
-
top:动态查看进程信息. 交互命令:m-以内存使用率排序,P-根据CPU使用百分比大小进行排序
杀进程:
-
kill -9 pid:根据进程id杀
-
kill -9 %josId:根据任务id杀
查看内存使用情况:
-
按不同单位显示:free:以byte显示;free -k:以kb显示;free -m:以mb显示;free -g:以gb显示
-
以总和显示:free -t
-
周期性查询:free -s 10:间隔秒数
周期性执行命令:
-
watch -n 1 -d netstat -ant:-n:间隔秒数;-d:高亮变化区域。或watch -n 1 -d "netstat -ant"
目录/文件操作(创建/删除/移动/改名/复制):
-
touch、mkdir、rm、mv、cp、rmdir. -i:操作前提示确认;-r:递归操作;-f:强制操作不询问.
-
pwd:查看当前路径;pwd -P查看软链接的实际路径
-
同时移动多个文件到某个目录:mv a.dir b.dir c.dir 1.txt 2.txt -t des.dir
修改文件或目录权限:
-
chmod a+x test.sh:对所有用户增加执行test.sh的权限。u-文件或目录所有者,g-同组用户,o-其他用户,a-所有用户,+表示增加某个权限,-表示删除某个权限.
-
chmod 777 test.sh:7=4+2+1=r+w+x
-
chmod 777 -R test/:递归修改目录及其子目录或文件的权限
-
chgrp:改变文件或目录所属的组
-
chown:改变文件或目录的属主和属组。 eg:chown -R 用户名:用户组 test/
远程登录服务器:ssh -p 端口号 用户名@服务器ip
sed命令:文本编辑命令
-
全局替换匹配文本:sed -i "s/hello/hi/g" test.txt -i 表示直接编辑原文件(默认不会直接替换文本内容,会将替换结果输出);将所有hello(可以是正则表达式)替换成hi eg:sed -i "s/hello/${val}/g" test.txt 替换成变量值. /反斜杠为默认界定符,可改成自定义界定符#、!、|等. 若报错sed: -e expression #1, char 13: unknown option to `s',则表示文件中包含界定符,修改界定符即可. 无g只替换每行的第一个匹配项,加g替换每行的所有匹配项
-
借助管道处理前面的输出:nl test.txt | sed '2,$d' 删除第2行到$(最后一行),使用$因此这里必须是单引号否则会报错
-
删除匹配行,输出其他行:nl /etc/passwd | sed '/root/d'
-
打印部分行:nl test.txt | sed -n '2,4p' 打印文件的2到4行,-n取消默认输出
-
搜索匹配关键字的行:nl test.txt | sed -n '/haha/p'
-
插入行:a表示第n行后插入,i表示第n行前插入,eg:nl test.txt | sed '2i you are lucky' 末尾可另起一行
-
替换若干行:nl /etc/passwd | sed '2,5c No 2-5 number' 将2到5行换成单行
-
执行一组命令:nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p;q}' 搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell,再输出这行
vim下退出编辑:未修改退出:q;放弃修改退出:q!;保存并退出:wq
windows远程连接间的文件传输:https://www.ytyzx.org/index.php?title=%E4%BD%BF%E7%94%A8%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2(mstsc)%E4%BC%A0%E8%BE%93%E5%A4%A7%E6%96%87%E4%BB%B6&variant=zh-sg