linux基本操作命令大全

一:文件类操作

类型 命令
帮助类 –help, man, which, clear, >
查看 echo, cat, more, find, grep,
目录类 cd, ls, pwd
文件类 touch, mkdir, rm, rmdir, mv, cp, ln
压缩 tar, gzip, bzip2, zip, unzip

查找文件内容: grep
查找文件内的文本内容, 并且支持正则表达式查找。

格式: grep [-options] “keyword” filename

参数:
-n 显示匹配的所有行的 行号 和 行内容
-v 显示不包含匹配的所有行(否定)
-i 忽略大小写

例子:
grep -ni “abc” aa.txt // 在文件 aa.txt 中查找包含 abc 的所有行, 结果显示行号并且忽略大小写

正则表达式匹配:
grep -n “^a” aa.txt // 查找以 a 开头的所有行
grep -n “a[bB]c” aa.txt // 查找包含 abc 或 aBc 的所有行

下面就是日志查找命令:

  1. 查询字符串命令: cat fileName|grep ‘要查找的字符串’

    实例:cat catalina.out|grep ‘2018041417434200258001’

  2. 根据某个字符串,查询该字符串前后文本信息命令:
    grep -A|B n"key"file

    A:表示在字符串之后 after context
    B:表示在字符串之前 before context
    n:要获取多少行文本 line number
    key:为要查找的字符串
    file:文件名

    grep -A 100 -B 100 -i ‘抓不到我’ catalina.out

    -i表示忽略大小写

    当然,如果我们想获取异常日志的前10行和后10行,不用加-A和-B,使用如下命令就可以了:

    实例:grep -10 -i ‘抓不到我’ catalina.out

查看文件列表: ls
List, 查看文件列表, 默认查看当前工作目录。
格式: ls [-options] [path]

参数:
-a 显示所有文件和文件夹, 包含隐藏文件
-l 以列表的方式显示详细信息
-h 配合 -l 以更友好的方式显示文件大小, 即文件大小单位以 B, KB, MB, GB 来显示

例子:
ls -hl // 以列表的形式显示当前工作目录下的文件和文件夹
ls -al /etc // 以列表的形式显示 /etc 目录下的所有文件和文件夹

1. 加权限 chmod +x  a.sh
2. cd /,意思是回到根目录; cd .. , 意思是到上一级目录;
3. 查看文件大小
	 比如查找文件名为backup.sh文件的大小,命令为:du -s  backup.sh ,ls -lh backup.sh  
	 ls  -lht   将会一一列出当前目录下所有文件的大小,以及所有文件大小的统计总和。或者直接打入ll命令。
4. 切换用户  su username	 
5. 删除文件  rm  -rf *
    强制复制 cp -rf /opt/mongodb_test/ /opt/mongodb_tt/

6. 要修改文件夹内所有的文件和文件夹及子文件夹属性为可写可读可执行 chmod -R 777 /upload

7. 查找今天修改过的文件  find -mtime 0
   在root目录及其子目录下查找passwd文件:find / -name passwd

8. 创建文件夹 mkdir ki/
   编辑文件   vi ki.txt
   在文件夹里添加(就是创建 一个文件,例如a.txt)
   输入 touch a.txt 回车。
   查看xml等文件  cat a.xml
  
9. 复制文件
   复制文件到(本机) cp /mnt/hgfs/share/jdk-8u181-linux-x64.tar.gz /usr/local/java
   复制文件都远程   scp KDServer.war 192.168.1.0:/kin/
   把tomcat复制到另一个服务器
	scp -r /kin/apache-tomcat-6.0.53 10.0.205.34:/kin/hnyx/	(0.0.0.0地址)
	scp -r /kin/tomcat_server_test9094/webapps/KDServer.war  192.168.1.0:/kin/tomcat_weixin/webapps

 cp命令使用范例:
1、将文档 file1复制成file2,复制后名称被改file2
  cp -i file1 file2
  或,
  cp file1 file2
2、将文档 file1复制到dir1目录下,复制后名称仍未file1
  cp -i file1 dir1
  或,
  cp file1 dir1
3、将目录dir1复制到dir2目录下,复制结果目录被改名为dir2
  cp -r dir1 dir2
4、将目录dir1下所有文件包括文件夹,都复制到dir2目录下
   cp -r dir1/*.* dir2
常见错误:
1、提示cp: omitting directory错误
  复制目录时,使用-r选项即可递归拷贝,如下:
  cp -r dir1 dir2

10. 解压  tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz  ; unzip a.zip
    加压 zip my.zip aa.txt       // 把文件 aa.txt 压缩到 my.zip。如果 my.zip 已存在, 则追加到 my.zip 包内, // 不存在则新建一个 my.zip 包。如果 aa.txt 在 my.zip 包内已存在, 则覆盖。                    
zip -r my.zip aaDir     // 递归压缩文件夹 aaDir(包括其内的所有文件和子目录)

11. 修改文件名  mv  aa  bb  (把aa改成bb)
    Move, 移动文件或文件夹(也可以用来重命名)。
    
    格式: mv 源文件或文件夹 目标文件或文件夹
    把当前目录的一个子目录里的文件移动到另一个子目录里
    mv  文件名/*  另一个目录
    
    动当前文件夹下的所有文件到上一级目录
    mv * ../

12. 退出文本编辑
    保存:1.按了ESC后,:wq
		 2.按了ESC后,直接按shift+zz,或者切换到大写模式按ZZ,就可以保存退出了,即是按2下大写的Z 
    不保存:1.先按ESC,再输入冒号,在输入命令时,直接输入"q!" 	

二:端口,防火墙之类

1.
netstat -ntpl  查看启动的端口方式
 -a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
netstat -anp|grep java
netstat -anp|grep 8080(端口号)
firewall-cmd --zone=public --add-port=8080/tcp --permanent ;firewall-cmd --reload

开启防火墙:systemctl start firewalld.service
关闭防火墙:systemctl stop firewalld.service
查看防火墙:systemctl status firewalld.service
添加指定端口:firewall-cmd --zone=public --add-port=8088/tcp

2.CentOS 6.5
	1.开放指定端口
	/sbin/iptables -I INPUT -p tcp --dport 端口号 -j ACCEPT   //写入修改
	/etc/init.d/iptables save   		                      //保存修改
	service iptables restart   		                          //重启防火墙,修改生效
	2.关闭指定端口
	/sbin/iptables -I INPUT -p tcp --dport 端口号 -j DROP       //写入修改
	/etc/init.d/iptables save   		                        //保存修改
	service iptables restart    		                        //重启防火墙,修改生效
	3.查看端口状态
	/etc/init.d/iptables status
3.命令netstat,以查找占用80端口为例,用法如下:netstat -nlp|grep :80	

三:查看日志

gs -ef|grep tomcat
tail -f catalina.out
tail -n 1000 catalina.out |more	
cat catalina.out | grep -C 10 'aa'   定位'aa'所在行,并显示上下10行
不重启清空日志内容:cat /dev/null > catalina.out

四:进程类

   1. ps -ef|grep java 
	  kill -9 端口 	
   2.启动tomcat  nohup ./startup.sh &
	 查找tomcat端口  ps aux | grep tomcat 
    
    3. 如何查看磁盘还有多少剩余空间
       df -ah

五:linux下操作MySQL

1./usr/local/mysql57/bin/mysql -uroot -p
2.use kdj;   
3.truncate table car_t_driver;(删除表)
ls /etc/init.d/
service msyqld start
ps -ef |grep mysql
登陆数据库  mysql -u root -p	或者进入到bin目录 ./mysql -uroot -p

显示所有数据库 show databases;
选择数据库 use 数据库名;
显示所有表 show tables;
授权
grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;
flush privileges;(刷新权限设置)

MySQL限制IP网段范围从远程访问的方法
mysql>grant select,insert,update,create on test.* to test@'192.168.8.%' identified by '123456';

mysql>grant select,insert,update,create on test.* to test@'192.168.9.%' identified by '123456';

mysql>grant select,insert,update,create on test.* to test@'192.168.20.%' identified by '123456';

上面的语句表示将test数据库的所有权限授权给test这个用户,只允许test用户在192.168.8/9/20这三个网段的IP范围进行远程登陆,并设置test用户的密码为123456
刷新权限表使其设置生效:
mysql> flush privileges;

mysq 执行语句卡着l如何杀死查询线程
show processlist;
kill id;	

六:其它服务类

1.mongodb 启动 /opt/mongodb_test/bin/mongod --bind_ip x.x .x opt/mongodb_test/mongodb.conf  
 
2.关闭和重启MQ  net stop RabbitMQ && net start RabbitMQ	

3.springboot启动jar包  nohup java -jar webserver-1.0-SNAPSHOT.jar &

4.Linux 运行jar包命令如下:
方式一:
java -jar XXX.jar
特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
那如何让窗口不锁定?

方式二
java -jar XXX.jar &
&代表在后台运行。
特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
继续改进,如何让窗口关闭时,程序仍然运行?

方式三
nohup java -jar XXX.jar &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。

看日志  tail -f nohup.out	

猜你喜欢

转载自blog.csdn.net/m0_46269902/article/details/105393237