linux常用命令
文件和目录
cd / 进入系统根目录
cd /etc 进入 /etc目录
cd etc 进入当前目录下的etc目录
tab 可以根据输入的首几个字母进行智能提示
cd .. 进入上一层目录
ls 查看目录中的文件
ls -lrt 表示按修改时间 倒序 列出当前工作目录下的所有文件的详细信息。
ll 查看目录中文件的详细资料
ls -a 显示隐藏文件
mkdir dir1 创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录 (最后面有一个点,不要忽略了)
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -r /datadisk/SolrCloud/basic_configs . 复制目录及子目录的全部内容到当前目录
cp -a dir1 dir2 复制一个目录
touch 123.txt(文件名 ) 创建文件 123.txt
pwd 显示路径
Vim查看和编辑:
vim test.txt 编辑文件名为test.txt的文件
- i 进入编辑模式。
- Esc 退出编辑模式,回到一般模式。
- 一般模式切换到命令行模式可用的按钮说明
- :w 保存编辑的内容
- :w!强制写入该文件,但跟你对该文件的权限有关
- :q 离开vi
- :q! 不想保存修改强制离开
- :wq 保存后离开
- :x 保存后离开
- ZZ 若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开
- /test 表示向下查找文件中带有test的内容。接着 n 可以查看下一个匹配,N查看上一个匹配
- ?test 表示向上查找带有test的内容。
- :$ 进入文件末尾。也可以用大写G跳转到文件末尾。
- :1 进入文件头
Vi查看:
- :g 移动到这个文件的第一行,也可以用1G。
- :h 也就是help,可以显示各个命令的解释。
- :H 光标移动到这个屏幕的最上方那一行的第一个字符
:M 光标移动到这个屏幕的中间那一行的第一个字符
:L 光标移动到这个屏幕的最下方那一行的第一个字符
文件搜索/查找
1.find /etc -name httpd.conf 在/etc目录下查找文件httpd.conf
2.find /usr -name "*redis*" 从usr目录中查找带有名字带有redis的文件
3.grep -H 'spring' *.xml 查找所以有的包含spring的xml文件
4.grep -rn "hello,world!" * 查找含有某字符串的所有文件
5. grep "关键字1" 文件名 | grep "关键字2" 在某个文件查询多个关键字
详情见: https://www.cnblogs.com/wangkongming/p/4476933.html
排序
1. | sort -k5 -nr 按照第五列的数值 降序排列。去掉-r就是升序
管道命令
1. 管道符号 | ,表示前面命令输出的信息,通过管道交由后续的命令继续使用。
查看文件内容(包括查看日志)
1.cat filename 一页一页地显示整个文件
2.cat file1 file2 > file 将几个文件合并为一个文件。
3.cat filename | tail -n +3000 | head -n 1000 从第3000行开始,显示1000行。即显示3000~3999行
4.cat filename| head -n 3000 | tail -n +1000 显示1000行到3000行
5.cat -n filename |grep "关键字"
6.less filename | grep -C 5 '关键字' (显示日志里匹配字串那行以及前后5行)
less filename | grep -B 5 '关键字' (显示匹配字串及前5行)
less filename | grep -A 5 '关键字' (显示匹配字串及后5行)
7. cat、more 、less有什么区别?
cat会一行一行地展示整个文件的所有内容。
more和less功能相似,都可以逐页查看,但more只能往后翻页。
less最好用,不仅可以逐页查看,还可以前后翻页,关键字匹配。
7. tail -f info.log 实时显示日志
tail -100f info.log 实时监控末尾100行日志
tail -f info.log | grep "关键字" -C 10 :搜索日志关键字的前后10行
tail -1000f info.log | grep "关键字" -A 10: 搜索最近1000行里包括关键字的后10行
-A 表示关键字之后,After
-B 表示关键字之前,Before
-C 表示关键字前后,Context
8. grep "关键字1" 文件名 | grep "关键字2" -C 10 查询多个关键字的日志
8. :0或者:1 跳转到首行
9.大写G 跳到日志末尾
搜索日志内容的步骤:vim 打开日志文件,大写 G 跳到日志末尾,然后用 ?和关键词向上搜索(比如?test),最后使用n查找下一个匹配的内容,N跳转到上一个匹配的内容。
10.grep "abc" /logs/my-service* -r 在名称为my-service开头的多个文件中搜索abc相关的内容
如果不确定在哪个文件,也可以直接 grep "abc" -r
-r 递归查找文件 -e 从文件内容查找与正则表达式匹配的行 –i 查时不区分大小写 -c 查找匹配的行数 -v 从文件内容查找不匹配指定字符串的行
文本处理
打包和压缩文件
tar -xvzf redis-3.0.tar.gz 解压tar文件
unzip redis.zip 解压压缩包
gzip -d 123.log.gz 解压gz压缩包
RPM 包
rpm -ivh package.rpm 安装一个rpm包
rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
rpm -e package_name.rpm 删除一个rpm包
rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包
上传下载
sz加上文件名 :sz命令从服务器发送(send)文件到本地
rz: 将本地文件上传,服务器接收(receive)
网络
1.ifconfig 显示ip。其中的ens33后面的 inet 就是ip地址。
2.service iptables stop centos6停止防火墙
3.systemctl stop firewalld.service #停止firewall
4.systemctl disable firewalld.service #禁止firewall开机启动
5.vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改静态ip
6.route 查看子网掩码
内存
1.free 显示内存状态。
free -m 表示以MB为单位显示内存
2.sync可以刷新文件系统缓冲区,把缓冲区的数据强制向硬盘中保存。。
通过free命令,可以查到缓冲区buff/cache的大小,以及剩余内存free的大小。如果free的内存太小,可以使用sync
接口请求
参考资料:https://blog.csdn.net/ithomer/article/details/82156402
curl:使用curl发送post请求如下:
其中-H表示请求头header,后面指定header里面的参数。-X后面指定请求的命令,比如POST。
-d是指data,后面表示的是参数内容,而最后面的是url地址。
格式为:
curl -H "Content-Type:application/json" -X POST -d 'json data' URL
如果是json,示例如下:
curl -H "Content-Type:application/json" -X POST -d '{"user": "lin", "passwd":"12345678"}' https://test.com/login
如果是表单,则示例如下:
curl -H "Content-Type:application/x-www-form-urlencoded" -X POST -d 't=1459497295019&token=78535A7FB99FB45C1D4EB9' http://www.kdfpy.com/RecommendWeb/api/company
进程和端口
0. top: top 命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
其中%CPU 表示CPU占用百分比,再按下P就可以按CPU使用资源来排序,
而%MEM 表示进程使用的物理内存百分比,再按下M就可以按Memory(内存)排序了。
top命令详情见: http://www.linuxidc.com/Linux/2011-03/33582.htm
1. ps (英文全拼:process status)命令用于显示当前进程的状态。
ps -ef | grep -i redis 查看包含redis的进程
- -e:显示所有程序
- -f:显示UID,PPID与STIME
- |:管道命令,指ps和grep同时执行
- grep -i :忽略字符大小写的差别进行匹配。
ps aux :表示查看系统所有的进程
详情见: https://blog.csdn.net/hanner_cheung/article/details/6081440
ps和top的区别: top是动态地查看,很隔一会排序就会变化。而ps是静态的。
2.netstat -pan|grep 3086 :表示根据进程3086查到对应的端口。
netstat可以用来查询系统上的网络套接字连接情况,包括tcp,udp以及Unix套接字;其中p表示进程PID
3.kill -9 3086 杀死进程3086
4.lsof -i:8080 查看8080端口占用
lsof(list open files)可以列出当前系统打开的文件。而在Linux中,一切皆是文件。
-i 表示显示所有连接。
系统资源
vmstat: 检测系统资源的变化,包括CPU、内存、磁盘、I/O等。
磁盘
df,表示 disk free. 显示磁盘的使用情况。
Tomcat
sh start.sh 启动Tomcat(必须在bin目录下执行)
sh shutdown.sh 关闭Tomcat(必须在bin目录下执行)
ps -ef | grep java 查看Tomcat是否启动。主要看路径是否有 -Dcatalina.base 和 -Dcatalina.home。
vim logs/catalina.out 查看Tomcat的日志。如果启动失败,可以根据日志来排错。
其他
1.getconf LONG_BIT 查看linux是32位还是64位
2.想使用root登录,首先要重设置root用户的密码。
命令: sudo passwd root
这样就可以设置root用户的密码了。之后就可以自由的切换到root用户了
命令: su
输入root用户的密码即可。
注:也可以使用sudo -i
3.make 自动化编译 。makefile文档里面定义了一系列的规则指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,它记录了原始码如何编译的详细信息。makefile文档只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
如何查看命令?
可以在"菜鸟教程"的 "Linux 命令大全" 中查看。
https://www.runoob.com/linux/linux-command-manual.html
英文好的,也可以查看Linux Man Page(使用手册)。
https://man7.org/linux/man-pages/dir_section_1.html
参考资料:
https://www.cnblogs.com/yjd_hycf_space/p/7730690.html