(Javascript %s or %d represents string?)

What you are seeing there is the string substitution patterns that are built into console.log() or console.debug().

The pattern goes as I have presented below:

%s for a String

%d or %i for Number

%f for Floating points

%o for an Object

%j for an JSON

So essentially you are replacing the specifier with the values supplied as so:

var name = ‘Chris’;
console.log(‘Hi, my name is %s.’, name);
// Hi, my name is Chris.

console.debug(‘Hi, my name is %s.’, name);
// Hi, my name is Chris.

https://nodejs.org/api/util.html#util_util_format_format_args

curl(选项)(参数)

举个栗子

curl -l -H "Content-type: application/json" -X POST -d '{"serviceType":"3"}' http://10.43.22.175:8661/scf/main/api/getSubMenu
curl -l -H "Content-type: application/json" -X POST -d 'serviceType=3' http://10.43.22.175:8661/scf/main/api/getSubMenu

语法

curl(选项)(参数)

选项

-a/--append  上传文件时,附加到目标文件
-A/--user-agent <string>  设置用户代理发送给服务器
-anyauth  可以使用“任何”身份验证方法
-b/--cookie <name=string/file>  cookie字符串或文件读取位置
   --basic  使用HTTP基本验证
-B/--use-ascii  使用ASCII /文本传输
-c/--cookie-jar <file>  操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>  断点续转
-d/--data <data>  HTTP POST方式传送数据
   --data-ascii <data>  以ascii的方式post数据
   --data-binary <data>  以二进制的方式post数据
   --negotiate  使用HTTP身份验证
   --digest  使用数字身份验证
   --disable-eprt  禁止使用EPRT或LPRT
   --disable-epsv  禁止使用EPSV
-D/--dump-header <file>  把header信息写入到该文件中
   --egd-file <file>  为随机数据(SSL)设置EGD socket路径
   --tcp-nodelay  使用TCP_NODELAY选项
-e/--referer  来源网址
-E/--cert <cert[:passwd]>  客户端证书文件和密码 (SSL)
   --cert-type <type>  证书文件类型 (DER/PEM/ENG) (SSL)
   --key <key>  私钥文件名 (SSL)
   --key-type <type>  私钥文件类型 (DER/PEM/ENG) (SSL)
   --pass <pass>  私钥密码 (SSL)
   --engine <eng>  加密引擎使用 (SSL). "--engine list" for list
   --cacert <file>  CA证书 (SSL)
   --capath <directory>  CA目录 (made using c_rehash) to verify peer against (SSL)
   --ciphers <list>  SSL密码
   --compressed  要求返回是压缩的形势 (using deflate or gzip)
   --connect-timeout <seconds>  设置最大请求时间
   --create-dirs  建立本地目录的目录层次结构
   --crlf  上传是把LF转变成CRLF
-f/--fail  连接失败时不显示http错误
   --ftp-create-dirs  如果远程目录不存在,创建远程目录
   --ftp-method [multicwd/nocwd/singlecwd]  控制CWD的使用
   --ftp-pasv  使用 PASV/EPSV 代替端口
   --ftp-skip-pasv-ip  使用PASV的时候,忽略该IP地址
   --ftp-ssl  尝试用 SSL/TLS 来进行ftp数据传输
   --ftp-ssl-reqd  要求用 SSL/TLS 来进行ftp数据传输
-F/--form <name=content>  模拟http表单提交数据
   --form-string <name=string>  模拟http表单提交数据
-g/--globoff  禁用网址序列和范围使用{}和[]
-G/--get  以get的方式来发送数据
-H/--header <line>  自定义头信息传递给服务器
   --ignore-content-length  忽略的HTTP头信息的长度
-i/--include  输出时包括protocol头信息
-I/--head  只显示请求头信息
-j/--junk-session-cookies  读取文件进忽略session cookie
   --interface <interface>  使用指定网络接口/地址
   --krb4 <level>  使用指定安全级别的krb4
-k/--insecure  允许不使用证书到SSL站点
-K/--config  指定的配置文件读取
-l/--list-only  列出ftp目录下的文件名称
   --limit-rate <rate>  设置传输速度
   --local-port<NUM>  强制使用本地端口号
-m/--max-time <seconds>  设置最大传输时间
   --max-redirs <num>  设置最大读取的目录数
   --max-filesize <bytes>  设置最大下载的文件总量
-M/--manual  显示全手动
-n/--netrc  从netrc文件中读取用户名和密码
   --netrc-optional  使用 .netrc 或者 URL来覆盖-n
   --ntlm  使用 HTTP NTLM 身份验证
-N/--no-buffer  禁用缓冲输出
-o/--output  把输出写到该文件中
-O/--remote-name  把输出写到该文件中,保留远程文件的文件名
-p/--proxytunnel  使用HTTP代理
   --proxy-anyauth  选择任一代理身份验证方法
   --proxy-basic  在代理上使用基本身份验证
   --proxy-digest  在代理上使用数字身份验证
   --proxy-ntlm  在代理上使用ntlm身份验证
-P/--ftp-port <address>  使用端口地址,而不是使用PASV
-q  作为第一个参数,关闭 .curlrc
-Q/--quote <cmd>  文件传输前,发送命令到服务器
-r/--range <range>  检索来自HTTP/1.1或FTP服务器字节范围
--range-file  读取(SSL)的随机文件
-R/--remote-time  在本地生成文件时,保留远程文件时间
   --retry <num>  传输出现问题时,重试的次数
   --retry-delay <seconds>  传输出现问题时,设置重试间隔时间
   --retry-max-time <seconds>  传输出现问题时,设置最大重试时间
-s/--silent  静默模式。不输出任何东西
-S/--show-error  显示错误
   --socks4 <host[:port]>  用socks4代理给定主机和端口
   --socks5 <host[:port]>  用socks5代理给定主机和端口
   --stderr <file>   
-t/--telnet-option <OPT=val>  Telnet选项设置
   --trace <file>  对指定文件进行debug
   --trace-ascii <file>  Like --跟踪但没有hex输出
   --trace-time  跟踪/详细输出时,添加时间戳
-T/--upload-file <file>  上传文件
   --url <URL>  Spet URL to work with
-u/--user <user[:password]>  设置服务器的用户和密码
-U/--proxy-user <user[:password]>  设置代理用户名和密码
-w/--write-out [format]  什么输出完成后
-x/--proxy <host[:port]>  在给定的端口上使用HTTP代理
-X/--request <command>  指定什么命令
-y/--speed-time  放弃限速所要的时间,默认为30
-Y/--speed-limit  停止传输速度的限制,速度时间

实例

文件下载

  curl命令可以用来执行下载、发送各种HTTP请求,指定HTTP头部等操作。如果系统没有curl可以使用yum install curl安装,也可以下载安装。curl是将下载文件输出到stdout,将进度信息输出到stderr,不显示进度信息使用--silent选项。

  curl URL --silent

  这条命令是将下载文件输出到终端,所有下载的数据都被写入到stdout。

  使用选项-O将下载的数据写入到文件,必须使用文件的绝对地址:

  curl http://man.linuxde.net/text.iso --silent -O

  选项-o将下载数据写入到指定名称的文件中,并使用--progress显示进度条:

  curl http://man.linuxde.net/test.iso -o filename.iso --progress
  ######################################### 100.0%

 断点续传

  curl能够从特定的文件偏移处继续下载,它可以通过指定一个便宜量来下载部分文件:

  curl URL/File -C 偏移量

  #偏移量是以字节为单位的整数,如果让curl自动推断出正确的续传位置使用-C -:
  curl -C -URL

使用curl设置参照页字符串

  参照页是位于HTTP头部中的一个字符串,用来表示用户是从哪个页面到达当前页面的,如果用户点击网页A中的某个连接,那么用户就会跳转到B网页,网页B头部的参照页字符串就包含网页A的URL。

  使用--referer选项指定参照页字符串:

  curl --referer http://www.google.com http://man.linuxde.net

用curl设置cookies

  使用--cookie "COKKIES"选项来指定cookie,多个cookie使用分号分隔:

  curl http://man.linuxde.net --cookie "user=root;pass=123456"

  将cookie另存为一个文件,使用--cookie-jar选项:

  curl URL --cookie-jar cookie_file

用curl设置用户代理字符串

  有些网站访问会提示只能使用IE浏览器来访问,这是因为这些网站设置了检查用户代理,可以使用curl把用户代理设置为IE,这样就可以访问了。使用--user-agent或者-A选项:

  curl URL --user-agent "Mozilla/5.0"
  curl URL -A "Mozilla/5.0"

  其他HTTP头部信息也可以使用curl来发送,使用-H"头部信息" 传递多个头部信息,例如:

  curl -H "Host:man.linuxde.net" -H "accept-language:zh-cn" URL

 curl的带宽控制和下载配额

  使用--limit-rate限制curl的下载速度:

  curl URL --limit-rate 50k

  命令中用k(千字节)和m(兆字节)指定下载速度限制。

  使用--max-filesize指定可下载的最大文件大小:

  curl URL --max-filesize bytes

  如果文件大小超出限制,命令则返回一个非0退出码,如果命令正常则返回0。

用curl进行认证

  使用curl选项 -u 可以完成HTTP或者FTP的认证,可以指定密码,也可以不指定密码在后续操作中输入密码:

  curl -u user:pwd http://man.linuxde.net
  curl -u user http://man.linuxde.net

只打印响应头部信息

    通过-I或者-head可以只打印出HTTP头部信息:

    [root@localhost text]# curl -I http://man.linuxde.net
      HTTP/1.1 200 OK
      Server: nginx/1.2.5
      date: Mon, 10 Dec 2012 09:24:34 GMT
      Content-Type: text/html; charset=UTF-8
      Connection: keep-alive
      Vary: Accept-Encoding
      X-Pingback: http://man.linuxde.net/xmlrpc.php

node.js yeoman grunt 快速构建项目

1. node.js 安装

2. yeoman grunt安装

npm install -g bower
npm install --global yo
npm install -g grunt-cli
yo --version && bower --version && grunt --version
npm install -g generator-angular@0.7.1

3. 创建项目 安装bower、node、grunt

$ cd d:
$ mkdir myApp
$ cd mytodo
$ yo angular
# 报错少 grunt-contrib-imagemin
# 安装 grunt-contrib-imagemin
$ npm install grunt-contrib-imagemin --save-dev

$ npm install
$ bower install
$ npm install grunt --save-dev
# 初步这样也就行了,但是/bower_components这个目录有点让人不习惯,我想把东西下载到我习惯的目录里。需要加一个.bowerrc文件。注意,不需要名字什么的,只要新增一个.bowerrc就行了。

cordova 快速构建 ios、andriod、browser 项目app

1.安装Cordova

# Cordova的命令行运行在Node.js 上面并且可以通过NPM安装。 根据 平台具体指导 安装相应平台的依赖。打开命令提示符或终端,然后键入npm install -g cordova.
$ npm install -g cordova

2. 创建一个项目

#使用命令行创建一个空的Cordova项目。导航到你希望创建项目的目录,然后键入 cordova create <path>。
#要知道这个命令完整的选项,键入cordova help create。
$ cordova create MyApp

3. 添加一个平台

# 在创建完一个Cordova项目后,导航到项目目录。在项目目录中,你需要添加你想构建app的平台
# 为了添加平台, 键入 cordova platform add <platform name>。
# 为了知道你可以添加的平台,你可以运行cordova platform。
$ cd MyApp 
# browser andriod ios
$ cordova platform add browser
# $ cordova platform remove android

4.运行App

#在命令中,键入cordova run <platform name>。
# browser andriod ios
$ cordova run browser

5、开发完成后,使用cordova 打包项目成目标平台的应用

# 
$ cordova build android

6、进行仿真模拟器

# 
$ cordova emulate android

7. 添加插件

可以用CLI搜索可用的插件:

cordova plugin search bar code

安装插件,比如:

cordova plugin add org.apache.cordova.device                   //设备API

cordova plugin add org.apache.cordova.network-information  //网络(事件)

cordova plugin add org.apache.cordova.battery-status      //电池(事件)

cordova plugin add org.apache.cordova.device-motion     //加速器

cordova plugin add org.apache.cordova.device-orientation     //罗盘

cordova plugin add org.apache.cordova.geolocation         //定位

cordova plugin add org.apache.cordova.camera                 //摄像头

cordova plugin add org.apache.cordova.media-capture     //媒体文件处理

cordova plugin add org.apache.cordova.media                   //媒体文件处理

cordova plugin add org.apache.cordova.file                        //文件访问

cordova plugin add org.apache.cordova.file-transfer          //文件传输

cordova plugin add org.apache.cordova.dialogs                 //对话框

cordova plugin add org.apache.cordova.vibration              //震动

cordova plugin add org.apache.cordova.contacts               //联系人

cordova plugin add org.apache.cordova.globalization       //全球化

cordova plugin add org.apache.cordova.splashscreen       //闪屏

cordova plugin add org.apache.cordova.inappbrowser             //打开新的浏览器窗口

cordova plugin add org.apache.cordova.console                //调试控制台

你可以用以下命令查看所有已经安装的插件

cordova plugin ls

使用以下命令删除插件:

cordova plugin rm org.apache.cordova.console

或者通过地址来添加插件:

cordova plugin add https://github.com/apache/cordova-plugin-console.git

Android SDK

Android SDK的国内镜像服务器来下载安装,这里推荐几个:

1、中科院开源协会镜像站地址:

IPV4/IPV6 : http://mirrors.opencas.ac.cn 端口:80

2、北京化工大学镜像服务器地址:

IPv4: http://ubuntu.buct.edu.cn/ 端口:80

IPv4: http://ubuntu.buct.cn/ 端口:80

IPv6: http://ubuntu.buct6.edu.cn/ 端口:80

3、大连东软信息学院镜像服务器地址:
http://mirrors.neusoft.edu.cn 端口:80

ionic

# 更新 cordova ionic
# npm update -g cordova ionic
$ npm install -g ionic
$ ionic start myApp tabs
# demo
$ ionic start myproject --type ionic1
# 启动
$ ionic serve
# 启动 指定IP地址
$ ionic serve --address 192.168.20.45

1.创建Android应用

#
$ cd myApp
$ ionic platform add android
$ ionic build android
$ ionic emulate android

2.创建iOS应用

#
$ cd myApp
$ ionic platform add ios
$ ionic build ios
$ ionic emulate ios

3. 启动

#
$ ionic serve

通过Ionic创建一个项目

使用Ionic官方提供的现成的应用程序模板,或一个空白的项目创建一个Ionic应用。

ionic start myApp blank  创建一个空白的app项目 

ionic start myApp tabs 创建一个带有tabs项目

ionic start myApp sidemenu 创建一个带有滑动的项目

如果出现”ios-sim was not found.”错误,可以执行以下命令:

npm install -g ios-sim

oracle expdp / impdp

expdp 导出

expdp TQBAY/TQBAY schemas=TQBAY dumpfile=TQBAY_20170519.dmp;

删除用户

-- 删除用户
drop user BOSYUNTEST cascade;
-- 删除用户时若报错:ORA-01940: cannot drop a user that is currently connected,则先查会话id
SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='TQBAY';
-- 再一个个kill掉该用户的会话再执行drop user
ALTER SYSTEM KILL SESSION '24,25341';

查询表空间路径

select * from dba_data_files;

删除表空间和文件

-- 删除临时表空间和文件
drop tablespace BOSYUN_TEST_TEMP including contents and datafiles;
-- 删除数据表空间和文件
drop tablespace BOSYUN_TEST_DATA including contents and datafiles;
drop tablespace BOSYUN_TEST_DATA including contents and datafiles;

创建表空间

-- 创建临时表空间
CREATE SMALLFILE TEMPORARY TABLESPACE BOSYUN_TEST_TEMP TEMPFILE '/u01/app/oracle/oradata/XE/BOSYUN_TEST_TEMP' SIZE 2048M AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
-- 创建数据表空间
CREATE SMALLFILE TABLESPACE BOSYUN_TEST_DATA DATAFILE '/u01/app/oracle/oradata/XE/BOSYUN_TEST_DATA' SIZE 2048M AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
-- 创建用户
CREATE USER BOSYUNTEST PROFILE "DEFAULT" IDENTIFIED BY BOSYUNTEST DEFAULT TABLESPACE BOSYUN_TEST_DATA TEMPORARY TABLESPACE BOSYUN_TEST_TEMP ACCOUNT UNLOCK;
-- 用户授权
GRANT CONNECT TO BOSYUNTEST WITH ADMIN OPTION;
GRANT DBA TO BOSYUNTEST;
GRANT RESOURCE TO BOSYUNTEST;

可通过以下命令查看数据库已有的目录

# 查询 DATA_PUMP_DIR
select * from DBA_DIRECTORIES;
 /home/oracle/oradata/bosyun/dpdump/        DATA_PUMP_DIR

-- 创建 DATA_PUMP_DIR目录
create or replace directory DATA_PUMP_DIR as 'D:\app\Administrator\admin\orcl\dpdump';
1.修改/data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora 
2.把dmp文件放到DATA_PUMP_DIR目录下 (预先将dmp文件放置到指定的directory目录下,

-- DATA_PUMP_DIR 需要预先将目录权限赋予该用户。
grant read,write on directory DATA_PUMP_DIR to TQBAY_TEST;

数据的导入

impdp TQBAY_TEST/TQBAY_TEST@bosyun directory=DATA_PUMP_DIR dumpfile=TQBAY_20170519.dump REMAP_SCHEMA=TQBAY:TQBAY_TEST;

# 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。  在后面加上 ignore=y 就可以了。
# 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

杂项

select * from DBA_DIRECTORIES; --查询表 DATA_PUMP_DIR
select * from product_component_version;  --查询oracle版本

 --------oracle 解锁用户-------
su - oracle
sqlplus / as sysdba  --执行
sql : alter user QICOLOR account unlock; --QICOLOR 用户解锁
alter user QICOLOR_FORMAL account unlock;

select userenv('language') from dual;-- 字符集
------------------------------

数据库重启

#关闭数据库存
$export ORACLE_SID=QICOLOR
$su - oracle
$sqlplus / as sysdba
$shutdown immediate
$lsnrctl stop

$export ORACLE_SID=TQBAY
$su - oracle
$sqlplus / as sysdba
$shutdown immediate
$lsnrctl stop

#启动数据库
$su - oracle
$sqlplus / as sysdba
$startup
$lsnrctl start

oracle 管理员不用密码登录

(1) 以oracle身份登录数据库,命令:su - oracle
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba

ssh用户权限配置

本文主要介绍的是如何是Linux环境下配置ssh用户权限,因为很多时候不给用户root账号,下面就和大家一起分享如何配置ssh用户权限。

1. 添加用户

adduser huapisong  //添加一个名为huapisong的用户
passwd huapisong   //修改密码
Changing password for user huapisong.
New UNIX password:     //在这里输入新密码
Retype new UNIX password:  //再次输入新密码
passwd: all authentication tokens updated successfully.

2. 赋予root权限

方法一:修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉
## Allows people in group wheel to run all commands
%wheel    ALL=(ALL)    ALL
# 然后修改用户,使其属于root组(wheel),命令如下:

usermod -g root huapisong
# 修改完毕,现在可以用huapisong帐号登录,然后用命令 su - ,即可获得root权限进行操作。

方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
huapisong   ALL=(ALL)     ALL
#修改完毕,现在可以用huapisong帐号登录,然后用命令 su - ,即可获得root权限进行操作。

3. 用useradd新增的用户不能直接用ssh远程访问,需要修改ssh相关配置
如下:
vi /etc/ssh/sshd_config 
#添加
AllowUsers root huapisong
#多个用户用空格隔开

4. 然后重启sshd服务生效即可,重启命令可以使用:
#shell
service sshd restart

内存释放

内存使用情况

free -m

释放缓存前同步

sync

释放所有缓存

# 删除内存缓存
echo 3 > /proc/sys/vm/drop_caches
#  查看文件内容
cat /proc/sys/vm/drop_caches

释放缓存数字参数说明

0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存

free -m命令结果说明
第一行:全局角度描述系统使用的内存状况

total——总物理内存
used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存
free——完全未被使用的内存
shared——应用程序共享内存
buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)
cached——缓存,用于已打开的文件
note:
    total=used+free
    used=buffers+cached (maybe add shared also)

第二行:描述应用程序的内存使用

前个值表示-buffers/cache——应用程序使用的内存大小,used减去缓存值

后个值表示+buffers/cache——所有可供应用程序使用的内存大小,free加上缓存值

-buffers/cache=used-buffers-cached
+buffers/cache=free+buffers+cached

第三行:表示swap的使用

used——已使用
free——未使用

Linux 下常用压缩文件的解压、压缩

常用压缩包解压令整理

  • Linux 后缀为 .war 格式的文件(一般用在部署 Tomcat 项目的时候)
  • 命令:unzip -oq XXXXXX.war -d ROOT

    • 如果没有 ROOT 目录会自动创建 ROOT 目录。
  • Linux 后缀为 .tar.gz 格式的文件-解压

  • 命令:tar zxvf XXXXXX.tar.gz

  • Linux 后缀为 .bz2 格式的文件-解压

  • 命令:bzip2 -d XXXXXX.bz2

  • Linux 后缀为 .tar.bz2 格式的文件-解压

  • 命令:tar jxvf XXXXXX.tar.bz2

  • Linux 后缀为 .tar 格式的文件-解压

  • 命令:tar zxvf XXXXXX.tar

  • Linux 后缀为 .gz 格式的文件-解压

  • 命令:gunzip XXXXXX.gz

  • Linux 后缀为 .zip 格式的文件-解压

  • 命令:unzip XXXXXX.zip
  • 命令:unzip XXXXXX.zip -d /opt/,解压到指定目录

  • Linux 后缀为 .7z 格式的文件-解压

  • 命令:7za x XXXXXX.7z

  • Linux 后缀为 .tar.xz 格式的文件-解压,解压出来是tar,再对tar进行解压

  • 命令:tar xf XXXXXX.tar.xz

常用文件进行压缩命令整理

  • Linux 压缩文件夹为后缀 .war 格式的文件(最好不要对根目录进行压缩,不然会多出一级目录)
  • 命令:jar -cvfM0 cas.war /opt/cas/META-INF /opt/cas/WEB-INF /opt/cas/index.jsp
  • 或者命令:cd 项目根目录 ; jar -cvfM0 cas.war ./*

  • Linux 压缩文件为后缀 .tar 格式的文件

  • 命令:tar -zcvf test11.tar test11

  • Linux 压缩文件为后缀 .tar.gz 格式的文件

  • 命令:tar -zcvf test11.tar.gz test11

  • Linux 压缩文件为后缀 .bz2 格式的文件

  • 命令:bzip2 -v test.txt

  • Linux 压缩文件为后缀 .tar.bz2 格式的文件

  • 命令:tar -jcvf test11.tar.gz test11

  • Linux 压缩文件为后缀 .zip 格式的文件

  • 命令:zip -r test1.zip /opt/test1/

  • Linux 压缩文件为后缀 .7z 格式的文件

  • 命令:7za a test1.7z /opt/test1/

分卷压缩

  • 分卷压缩:zip -s 100M myFile.zip --out newFile.zip
  • 最终效果:
1
2
3
4
5
newFile.z01
newFile.z02
newFile.z03
newFile.z04
newFile.zip

特殊格式

  • 7z
  • rar
    • rar 的安装:
      • 下载:wget http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz
      • 解压下载下来的压缩包:tar zxvf rarlinux-3.8.0.tar.gz
      • 进入解压后目录:cd rar
      • 编译:make
      • 安装:make install
    • rar 解压:rar x 文件名.rar

jar 包操作

修改 jar 包配置文件

  • 命令:vim mytest.jar,这时候会展示 jar 中所有层级目录下的所有文件
  • 输入:/log4j2.xml 回车,光标定位到该文件,然后再回车,进入编辑该文件状态
  • 此时可以修改配置文件了,修改后 :wq 保存退出,接着 :q 退出 jar 编辑状态

更新 Jar 包中的文件

  • 替换(新增)jar 根目录下的文件:jar uvf mytest.jar ClassToAdd.class
  • 一般 class 文件都是在多层目录里面的,需要这样做:jar uvf mytest.jar com/youmeek/ClassToAdd.class
    • 需要在 jar 所在的文件夹下创建:mkdir -p ./com/youmeek,该目录必须和原 jar 里面的层级目录结构一致

在Centos7下的nginx编译安装

2.1 安装依赖

yum -y install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel

2.2 创建用户和组
groupadd -r nginx
useradd -s /sbin/nologin -g nginx -r nginx
2.3 下载安装包
wget http://nginx.org/download/nginx-1.10.2.tar.gz
2.4 编译配置与安装

# 解压缩
tar -zxvf nginx-1.10.2.tar.gz

# 进入压缩目录
cd nginx-1.10.2

# 进行模块配置
./configure \
  --prefix=/usr \
  --sbin-path=/usr/sbin/nginx \
  --conf-path=/etc/nginx/nginx.conf \
  --error-log-path=/var/log/nginx/error.log \
  --http-log-path=/var/log/nginx/access.log \
  --pid-path=/var/run/nginx/nginx.pid  \
  --lock-path=/var/lock/nginx.lock \
  --user=nginx \
  --group=nginx \
  --with-http_ssl_module \
  --with-http_flv_module \
  --with-http_stub_status_module \
  --with-http_gzip_static_module \
  --http-client-body-temp-path=/var/tmp/nginx/client/ \
  --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
  --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
  --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
  --http-scgi-temp-path=/var/tmp/nginx/scgi \
  --with-pcre

# 编译安装
make && make install

2.5 安装路径

# 名称路径日志目录
/var/log/nginx
# 配置目录
/etc/nginx
# PID文件
/var/run/nginx/nginx.pid
# 启动文件
/usr/sbin/nginx

2.6 centos6服务脚本

#创建文件
touch /etc/rc.d/init.d/nginx
chmod +x /etc/rc.d/init.d/nginx
在其中添加如下:

启动脚本

#!/bin/sh  
#  
# nginx - this script starts and stops the nginx daemon  
#  
# chkconfig:   - 85 15  
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \  
#               proxy and IMAP/POP3 proxy server  
# processname: nginx  

# Source function library.  
. /etc/rc.d/init.d/functions  

# Source networking configuration.  
. /etc/sysconfig/network  

# Check that networking is up.  
[ "$NETWORKING" = "no" ] && exit 0  

nginx="/usr/sbin/nginx"  
prog=$(basename $nginx)  

sysconfig="/etc/sysconfig/$prog"  
lockfile="/var/lock/nginx.lock"  
pidfile="/var/run/nginx/${prog}.pid"  

NGINX_CONF_FILE="/etc/nginx/nginx.conf"  

[ -f $sysconfig ] && . $sysconfig  

start() {  
    [ -x $nginx ] || exit 5  
    [ -f $NGINX_CONF_FILE ] || exit 6  
    echo -n $"Starting $prog: "  
    daemon $nginx -c $NGINX_CONF_FILE  
    retval=$?  
    echo  
    [ $retval -eq 0 ] && touch $lockfile  
    return $retval  
}  

stop() {  
    echo -n $"Stopping $prog: "  
    killproc -p $pidfile $prog  
    retval=$?  
    echo  
    [ $retval -eq 0 ] && rm -f $lockfile  
    return $retval  
}  

restart() {  
    configtest_q || return 6  
    stop  
    start  
}  

reload() {  
    configtest_q || return 6  
    echo -n $"Reloading $prog: "  
    killproc -p $pidfile $prog -HUP  
    echo  
}  

configtest() {  
    $nginx -t -c $NGINX_CONF_FILE  
}  

configtest_q() {  
    $nginx -t -q -c $NGINX_CONF_FILE  
}  

rh_status() {  
    status $prog  
}  

rh_status_q() {  
    rh_status >/dev/null 2>&1  
}  

# Upgrade the binary with no downtime.  
upgrade() {  
    local oldbin_pidfile="${pidfile}.oldbin"  

    configtest_q || return 6  
    echo -n $"Upgrading $prog: "  
    killproc -p $pidfile $prog -USR2  
    retval=$?  
    sleep 1  
    if [[ -f ${oldbin_pidfile} && -f ${pidfile} ]];  then  
        killproc -p $oldbin_pidfile $prog -QUIT  
        success $"$prog online upgrade"  
        echo   
        return 0  
    else  
        failure $"$prog online upgrade"  
        echo  
        return 1  
    fi  
}  

# Tell nginx to reopen logs  
reopen_logs() {  
    configtest_q || return 6  
    echo -n $"Reopening $prog logs: "  
    killproc -p $pidfile $prog -USR1  
    retval=$?  
    echo  
    return $retval  
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest|reopen_logs)
        $1
        ;;
    force-reload|upgrade)
        rh_status_q || exit 7
        upgrade
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    status|status_q)
        rh_$1
        ;;
    condrestart|try-restart)
        rh_status_q || exit 7
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|reload|configtest|status|force-reload|upgrade|restart|reopen_logs}"
        exit 2
esac

添加nginx服务为系统服务
开机启动方式

    # 开机启动
    chkconfig --add nginx
    chkconfig --level 345 nginx on
    chkconfig --list nginx

    # 开机不启动
    chkconfig nginx off
    chkconfig --list nginx
添加成功后就可以执行service nginx start、stop、restart、status等操作了。

2.7 centos7服务脚本

# 创建文件
touch /usr/lib/systemd/system/nginx.service
# 启动脚本
[Unit]
Description=nginx
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# 开机启动方式

# 开机启动
systemctl enable nginx.service

# 开机不启动
systemctl disable nginx.service

# 其他操作
systemctl ( status | start | stop | reload | restart ) nginx.service

------------------------------------------------------------------------------------------------

CentOS7中使用yum安装Nginx的方法

最近无意间发现Nginx官方提供了Yum源。因此写个文章记录下。

1、添加源

  默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址。因此可以如下执行命令添加源:

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2、安装Nginx

  通过yum search nginx看看是否已经添加源成功。如果成功则执行下列命令安装Nginx。

sudo yum install -y nginx

3、启动Nginx并设置开机自动运行

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

4、浏览查看效果

在浏览器中输入您的服务器地址:http://10.42.1.50//

卸载

# yum 安装 卸载 
yum remove nginx

如果已经不记得安装方式了,那么可以使用以下步骤进行全删除:
# 删除关联文件以及文件夹
rm -rf /etc/nginx/
rm -rf /usr/sbin/nginx
rm /usr/share/man/man1/nginx.1.gz

Linux 下安装JDK1.8

本文主要介绍的是如何是Linux环境下安装JDK的,因为Linux环境下,很多时候也离不开Java的,下面就和大家一起分享如何jdk1.8的过程吧。

一、安装环境

● Centos6.5系统
● JDK版本:1.8
● 工具: FlashFXP V5.2.0, MobaXterm V10.5

二、安装步骤

第一步:下载安装包

下载Linux环境下的jdk1.8,请去(官网)中下载jdk的安装文件;

由于我的Linux是64位的,因此我下载jdk-8u131-linux-x64.tar.gz。

第二步: 上传jdk1.8 安装包

# 上传jdk1.8 安装包
scp jdk-8u131-linux-x64.tar.gz root@10.10.201.102:/haupisong/java
# 进入jdk目录
cd /hupisong/java/
# 解压JDK1.8安装包
tar -zxvf jdk-8u131-linux-x64.tar.gz

第三步、修改环境变量

# 编辑文件
vi /etc/profile
# 按 'i' 键编辑
# 编辑,在最后一行添加
# 添加内容如下 
export JAVA_HOME=/huapisong/java/jdk1.6.0_65 
export PATH=$JAVA_HOME/bin:$PATH
# 退出编辑并保存:
# 按'esc'键退出编辑 
# 输入':wq' 保存编辑内容
:wq 
# 加载设置的变量,使其生效
 source /etc/profile

第四步、测试是否安装成功

# 输入命令
java -version
#成功结果如下:
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

至此,安装结束

https://github.com/xpbob/CrashAnalysis

CentOS7中使用yum安装jdk的方法

yum install openjdk-1.8.0
yum install java-1.8.0-openjdk -y

java -version