查看某个进程文件的启动位置
ps -ef|grep nginx
ps aux |grep nginx
25436 是nginx的主程序的进程号
进入【/proc/25436】,并通过 ls -al查看如下
注意:
- cwd符号链接的是进程运行目录;
- exe符号连接就是执行程序的绝对路径;
- cmdline就是程序运行时输入的命令行命令;
- environ记录了进程运行时的环境变量;
- fd目录下是进程打开或使用的文件的符号连接。
压缩压缩打包-tar、zip、unzip
打包跟压缩的区别:
打包是指将多个文件或者目录放在一起,形成一个总的包,这样便于保存和传输,但是大小是没有变化的,压缩是指将一个或者多个大文件或者目录通过压缩算法使文件的体积变小以达到压缩的目的,可以节省存储空间,在压缩的时候通常是先打包再压缩;
tar命令
tar命令参数前面加”-"与不加“-”的区别:
tar命令参数前面加不加“-”执行命令的结果是没有区别的,区别只要是在于linux风格方面,加“-”属于System V风格,不加“-”属于BSD风格,所以在使用tar命令的时候它的参数加不加“-”结果是一样的,看个人的使用方式;
常用参数:
tar命令的常用参数
-z 是否同时具有gz属性
-j 是否同时具有bz2属性
-J 是否同时具有xz属性
-x 解压缩、提取打包的内容
-t 查看压缩包内容
-c 建立一个压缩,打包文档
-C 切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录
-v 显示压缩或者打包的内容
-f 使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边
-p[小写]保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P[大写]保留绝对路径
一、打包
实例:
a.将/root/下的ceshi.txt文件和anaconda-ks.cfg文件和time.sh文件打包为一个文件,名称为“jihe.tar”:

b.查看jihe.tar文件的内容:

c.提取jihe.tar文件的内容到/opt目录下:

如果不用“-C”指定目录则会提取内容到当前目录
二、压缩
linux主要有三种压缩方式:
1.gzip:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式
2.bzip:压缩形成的文件小,但是可用性不如gzip
3.xz:是最新的压缩方式,可以自动提供最佳的压缩率
建议的压缩的时候标明后缀:
参数 作用 命名方式
-z 用于gzip压缩方式 文件名.tar.gz
-j 用于bzip2压缩方式 文件名.tar.bz2
-J 用于xz压缩方式 文件名.tar.xz
实例:用不同的压缩方式压缩/root/目录下的Golden.apk文件
先查看Golden.apk文件的大小:

可以看到Golden.apk文件的大小为187M
a.用gzip压缩方式将Golden.apk文件压缩为Golden.apk.tar.gz文件:

b.用bzip2的压缩方式将Golden.apk文件压缩为Golden.apk.tar.bz2文件:

从上图可以看出红色方框内有报错,这个报错的原因是缺少bzip2的包,需要安装一个bzip2软件包

安装完成之后再重新压缩:

在压缩的过程中,我们可以发现:
压缩速度:gz > bz2 > xz
压缩率:xz > bz2 > gz

三、解压
先删除/root/目录下的Golden.apk文件:

tar命令式一个很聪明的命令,我们在解压的时候不需要指明自己压缩的方式它会自己选择跟压缩方式对应的方式去解压,这话说得有点拗口,例:
a.将Golden.apk.tar.gz解压到当前目录:

补充:
a.在打包和压缩的过程中,我们有时候会看到这样的语句:tar: 从成员名中删除开头的“/”,这个并不是报错,是因为没有加上-P选项,没有保留原来的绝对路径去打包或者压缩,提取打包的内容跟解压一样,下面举一个例子:
将/root/目录以gzip的方式压缩为root.tar.gz压缩文件:
1.没有加-P选项:

2.加上-P选项:

解压的时候同理,如果在压缩文件的时候使用了-P选项,那么在解压的时候也要加上-P选项,不然也会出现”tar: 从成员名中删除开头的“/”“,如下图:
1.不加-P选项解压使用了-P选项压缩/root/后的root.tar.gz文件:

2.加上-P选项解压使用了-P选项压缩/root/后的root.tar.gz文件:

b.在使用tar压缩或者打包的时候,可以通过增加--exclude来达到排除指定的文件的目的
将/root/目录下的harry目录打包,但是不打包harry目录下的ha.txt文件,如下图:

不建议使用zip、unzip
创建没有家目录不能登陆的用户
useradd -M -s /sbin/nologin user
-M:不创建家目录
-s:指定用户登陆时使用的shell,nologin就是登陆不了
# cat /etc/passwd
www:x:1000:1000::/home/www:/sbin/nologin
mysql:x:1001:1001::/home/mysql:/sbin/nologin
redis:x:1002:1002::/home/redis:/sbin/nologin
arik:x:1003:1003::/home/arik:/sbin/nologin
修改文件夹所属用户名和用户组
chown 【选项】 用户【:用户组】 file
例如:chown qin test.php
示意:将test.php 文件所属的用户设置成 qin
例如:chown qin:qingroup test.php
示意:将test.php 文件的所属用户设置成qin,所属用户组设置成qingroup
例如:chown -R qin:qingroup testfile
示意:将testfiel 及其内部文件所属用户设置成qin,所属用户组设置成qingroup
增加权限给当前用户 chmod +wx filename
chmod -R 777 /upload
git 分支查看与切换
git 分支查看与切换
1
2
|
# 1.查看所有分支
> git branch -a
|
1
2
3
4
5
|
# 2.查看当前使用分支(结果列表中前面标*号的表示当前使用分支)
> git branch
# 3.切换分支
> git checkout 分支名
|
curl
curl www.baidu.com 访问一个网页
curl -o tt.html www.baidu.com 将访问www.baidu.com返回的内容写入tt.html
curl -i www.baidu.com 显示响应的头信息
curl -v www.baidu.com 显示一次http请求的通信过程
curl -X GET/PUT/POST/DELETE url 执行GET/PUT/POST/DELETE操作(必须用大写)
curl -I -m 10 -o /dev/null -s -w %{http_code} https://www.baidu.com 只返回状态码
例子:
[root@ecs-81eb ~]# curl http://localhost:8030/frschedule/frReceive/submit
curl: (7) Failed connect to localhost:8030; Connection refused
[root@ecs-81eb ~]# curl http://localhost:9001/frschedule/frReceive/submit
<html><head><title>500 Internal Server Error</title></head><body bgcolor='white'><center><h1>500 Internal Server Error</h1></center><hr><center><a href='http://www.jfinal.com?f=ev-3.3' target='_blank'><b>Powered by JFinal 3.3</b></a></center></body></html>[root@ecs-81eb ~]#
NPM
查看默认依赖的全局安装位置
因为项目中安装的依赖一般都是在当前项目的node_modules文件夹中,不需要特意设置,只要是通过npm install --save modulename方式安装都是在本地项目的文件夹中,所以这里的安装位置是指的全局安装。
以下命令均可查看全局安装位置:
npm config ls 命令
npm get prefix命令
JDK181-windows-环境配置
1.在控制面板->系统中,点击高级设置
2.在系统属性->高级中,点击“环境变量(N)”
3.在系统变量中,点击“新建(W)”,新建变量名为JAVA_HOME的变量,变量值为jdk的安装路径。
4.在系统变量中,寻找Path变量,点击“编辑(I)”,在变量值后面加上“C:\ProgramData\Oracle\Java\javapath;%java_home%\bin;%java_home\jre\bin”(引号不需要,其他为必要内容包括后面的分号)。(下图为效果图)
5.在系统变量中,新建CLASSPATH变量,变量值填写内容为“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”(引号不需要,其他为必要内容,注意首部的‘.’)
6.如何检验是否配置成功?
win+R,输入cmd,确定,在cmd界面输入“java -version”(引号不需要,其他为必要内容),若如图所示,显示jdk版本,这说明安装及环境变量配置成功。
tomcat 日志详解
1.1 tomcat 日志配置文件
tomcat 对应日志的配置文件:tomcat目录下的/conf/logging.properties。
tomcat 的日志等级有:日志输出级别:SEVERE (最高级别) > WARNING > INFO > CONFIG > FINE > FINER(精心) > FINEST (所有内容,最低级别)
tomcat 有五类日志 :catalina、localhost、manager、admin、host-manager
1.2.1 catalina.out :
catalina.out即标准输出和标准出错,所有输出到这两个位置的都会进入catalina.out,这里包含tomcat运行自己输出的日志以及应用里向console输出的日志。默认这个日志文件是不会进行自动切割的,我们需要借助其他工具进行切割(注意:catalina.out文件如果过大会影响)
View Code
1.2.2 catalina.YYYY-MM-DD.log
catalina.{yyyy-MM-dd}.log是tomcat自己运行的一些日志,这些日志还会输出到catalina.out,但是应用向console输出的日志不会输出到catalina.{yyyy-MM-dd}.log,它是tomcat的启动和暂停时的运行日志,注意,它和catalina.out是里面的内容是不一样的。
View Code
1.2.3 localhost.YYYY-MM-DD.log
localhost.{yyyy-MM-dd}.log主要是应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出的日志,它也是包含tomcat的启动和暂停时的运行日志,但它没有catalina.2018-09-19.log 日志全。它只是记录了部分日志。
View Code
1.2.4 localhost_access_log.YYYY-MM-DD.txt
localhost_access_log.2018-09-19.txt:这个是访问tomcat的日志,请求时间和资源,状态码都有记录。
192.168.1.220 - - [19/Sep/2018:03:57:42 -0400] "GET / HTTP/1.1" 200 11286
192.168.1.220 - - [19/Sep/2018:03:57:42 -0400] "GET /tomcat.css HTTP/1.1" 200 5581
192.168.1.220 - - [19/Sep/2018:03:57:42 -0400] "GET /tomcat.png HTTP/1.1" 200 5103
192.168.1.220 - - [19/Sep/2018:03:57:42 -0400] "GET /bg-button.png HTTP/1.1" 200 713
192.168.1.220 - - [19/Sep/2018:03:57:42 -0400] "GET /bg-nav.png HTTP/1.1" 200 1401
192.168.1.220 - - [19/Sep/2018:03:57:42 -0400] "GET /asf-logo-wide.svg HTTP/1.1" 200 27235
192.168.1.220 - - [19/Sep/2018:03:57:42 -0400] "GET /bg-middle.png HTTP/1.1" 200 1918
192.168.1.220 - - [19/Sep/2018:03:57:42 -0400] "GET /bg-upper.png HTTP/1.1" 200 3103
192.168.1.220 - - [19/Sep/2018:03:58:14 -0400] "GET / HTTP/1.1" 200 11286
192.168.1.220 - - [19/Sep/2018:03:58:14 -0400] "GET /favicon.ico HTTP/1.1" 200 21630
192.168.1.220 - - [19/Sep/2018:03:58:16 -0400] "GET / HTTP/1.1" 200 11286
192.168.1.220 - - [19/Sep/2018:03:58:16 -0400] "GET /favicon.ico HTTP/1.1" 200 21630
192.168.1.220 - - [19/Sep/2018:03:58:21 -0400] "GET / HTTP/1.1" 200 11286
192.168.1.220 - - [19/Sep/2018:03:58:21 -0400] "GET /favicon.ico HTTP/1.1" 200 21630
192.168.1.220 - - [19/Sep/2018:03:58:28 -0400] "GET /docs/setup.html HTTP/1.1" 200 14470
192.168.1.220 - - [19/Sep/2018:03:58:28 -0400] "GET /docs/images/docs-stylesheet.css HTTP/1.1" 200 5780
192.168.1.220 - - [19/Sep/2018:03:58:28 -0400] "GET /docs/images/tomcat.png HTTP/1.1" 200 5103
192.168.1.220 - - [19/Sep/2018:03:58:28 -0400] "GET /docs/images/asf-logo.svg HTTP/1.1" 200 20486
192.168.1.220 - - [19/Sep/2018:03:58:28 -0400] "GET /docs/images/fonts/fonts.css HTTP/1.1" 200 1943
192.168.1.220 - - [19/Sep/2018:03:58:29 -0400] "GET /docs/images/fonts/OpenSans400.woff HTTP/1.1" 200 21956
192.168.1.220 - - [19/Sep/2018:03:58:29 -0400] "GET /docs/images/fonts/OpenSans700.woff HTTP/1.1" 200 22748
192.168.1.220 - - [19/Sep/2018:03:58:29 -0400] "GET /docs/images/fonts/OpenSans600.woff HTTP/1.1" 200 22604
1.2.5 host-manager.YYYY-MM-DD.log
host-manager.2018-09-19.log:这个估计是放tomcat的自带的manager项目的日志信息的,未看到有什么重要的日志信息。
1.2.6 manager.YYYY-MM-DD.log
manager.2018-09-19.log : 这个是tomcat manager项目专有的日志文件.
1.3 tomcat 日志文件切割
tomcat 的 catalina.out 文件tomcat 是不会进行日志切割的,当这个文件大于2G 时,会影响tomcat的运行。那么我们需要对这个文件进行日志切割,切割的方法有很多种:
第一种:
通过系统自带的切割工具:logrotate来进行切割。
第二种:
使用logj4进行切割日志。
第三种:
使用用cronolog分割tomcat的catalina.out文件
以上三种方法见:https://www.cnblogs.com/happy-king/p/9193401.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)