linux常用命令合集
日志
关键字查询
查询文件名为test.log 关键字为debug的日志
cat -n test.log |grep “debug”
行号查询
查询名为test.log的日志从92行开始,往后20行的数据
cat -n test.log |tail -n +92|head -n 20
查看ERROR日志
查询test.log中ERROR级别的日志
cat -n test.log |grep “ERROR”
注意error要大写,如果小写的话可能搜到别的打印出的日志
查看关键日志并分页
查询test.log中92行后,往后500行的日志,并分页查看
cat -n test.log |tail -n +92|head -n 500|less
在线查看关键日志并搜索下一处
查询test.log中quey方法的日志
进入test.log
vi test.log
查找query方法相关的日志
输入: 开始输入 /query 向下查找
n 向下匹配下一处匹配文本
N 向上匹配下一处匹配文本
输入: 开始输入 ?query 向上查找
n 向上匹配下一处匹配文本
N 向下匹配下一处匹配文本
ps:若内容太多,需要根据线程号来判断是否是同一个线程
以下是线程号51和34的不同进程
less test.log
j 下一行
k 上一行
f 向下滚动一屏幕
b 向上滚动一屏幕
g 定位到文档头部
G 定位到文档最尾部
删除大日志文件
查找慢日志位置 在数据库中查询
show variables like ‘%log%’
找到 slow_query_log及slow_query_log_file看慢日志是否打开,及位置
cat /dev/null >/var/log/slow_query.log或
cp /dev/null >/var/log/slow_query.log
文件
复制
cp dir1/a.doc dir2 表示将dir1下的a.doc文件复制到dir2目录下
cp -r dir1 dir2 表示将dir1及其dir1下所包含的文件复制到dir2下
cp -r dir1/. dir2 表示将dir1下的文件复制到dir2,不包括dir1目录
说明:cp参数 -i:询问,如果目标文件已经存在,则会询问是否覆盖;
移动
文件移动不同于文件拷贝,文件移动相当于我们word中的术语剪切和粘贴。
命令:mv AAA BBB 表示将AAA改名成BBB
说明:目标目录与原目录一致,指定了新文件名,效果就是仅仅重命名。目标目录与原目录不一致,没有指定新文件名,效果就是仅仅移动。目标目录与原目录不一致,指定了新文件名,效果就是:移动 + 重命名。
删除
删除文件
删除当前目录下的所有类型的文件
rm -f *
删除名为test1的文件
rm -f test1
删除文件夹
删除test文件夹及里面的内容
rm -rf test
删除test1,test2文件夹及里面的内容
rm -rf test1 test2
scp
1、从本地复制到远程
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3
2、从远程复制到本地
scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3
3、指定端口
#scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
执行
直接./加上文件名.sh,如运行hello.sh为./hello.sh【hello.sh必须有x权限】
查找
列出当前目录及子目录下所有文件和文件夹
find .
在/home目录下查找以.txt结尾的文件名
find /home -name “*.txt”
同上,但忽略大小写
find /home -iname “*.txt”
当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . ( -name “.txt" -o -name ".pdf” )
或
find . -name “.txt" -o -name ".pdf”
查找home下所有jar包
查询文件内容包含指定字符串
查找当前目录下文件内容包含字符串string的文件
find . | xargs grep string #
查询文件名包含指定字符串
查找当前目录下文件名包含字符串string的文件
find . -name ‘string’ #
如果要查找文件名中不包含字符串string的文件,可以使用!(取非,也就是取反)。
find . ! -name ‘string’
查询
find . -name “strategyInfoDetailQuery”
grep -r “strategyInfoDetailQuery”
查看services.xml文件
view Services/servicedef/services.xml
排序
查看目录下所有文件的大小并按照大小排序
du -sh * | sort -rh
打包
把test文件夹打包成test.tar
tar -cvf test.tar test
.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat
tar -zxvf shop.tar.gz -C myshop
查看压缩包内容
tar -tf test.tar
解压指定文件
tar -zxvf zabbix.tar.gz zabbix-2.4.7/upgrades/dbpatches/2.2/README
赋权
-R(注意大写)选项表示连同子目录中的所有文件,都更改所有者
chown [-R] 所有者 文件或目录
如果需要同时更改所有者和所属组
chown [-R] 所有者:所属组 文件或目录
进程
查找端口为8080的jar包的进程号
netstat -anp|grep “8080”
查找进程号为13780的jar的执行命令
ps -ef|grep 13780
进入相应文件夹,进行相应处理
直接搜索出端口8080正在执行的jar包
netstat -tnlp|grep “8080”
根据进程号查询端口
netstat -pan|grep 进程号
权限
命令:
chmod 777 scan_record.js
格式:
chmod 权限数字 文件名
r 读权限read 4
w 写权限write 2
x 操作权限execute 1
查看历史命令
history
显示工作路径
pwd
ssh代理连接
ssh root@10.10.101.10
更改文件格式
进入文件
vim
查看格式
:set ff
unix是linux,dos是Windows
将文件格式设置为linux,
:set ff=unix
(如果想改成Windows就是:set ff=dos)
一般情况下在本地打包的jar,上传到linux后,其中的.sh可执行文件需要修改一下文件格式才可以在linux环境执行
用户
查看用户
查看所有用户
cat /etc/passwd
查找某个用户
cat /etc/passwd|grep 用户名
查看用户登录记录
Linux 查看登录成功的用户信息
命令: last
最新的登录记录在最前面,所以可以用 一下命令来查看。
last | less
查看登录失败的用户信息
lastb
查看登录日志
命令: tail /var/log/secure
删除用户
1、先用命令 cat /etc/passwd 查看一下所有的用户 可以看到你需要删除的用户名
2、用命令 who 查询当前登录的用户
3、用命令 ps -u 用户名 查看该用户的pid
4、用命令 kill pid 杀掉他的sshd或者是shell进程
5、再用命令 userdel -r 用户名 删除用户
查杀一体
说明有进程正在使用这个用户(就是以该用户的身份运行), 把对应的进程杀了再删:
ps -u username | awk '{print $1}' | grep -vi pid | xargs kill -9 && deluser username
暴力删除
userdel -r -f XXXname 加参数-f暴力删除成功
下载
unzip
yum -y install zip unzip