sftp 命令
默认端口22
sftp username@ip
例如:
sftp eshop@127.0.0.1
默认端口非22
sftp -o port=端口号 username@ip
例如:
sftp -o port=22122 eshop@127.0.0.1
wget命令
批量下载
-
将多个url写入一个文件,如txt
-
使用命令
wget –i xxx.txt
解、压缩命令
解压
tar -zxvf 压缩文件名.tar.gz
解压缩后的文件只能放在当前的目录。
压缩
tar czvf FileName.tar DirName
解压缩后的文件只能放在当前的目录。
文件操作
显示行号
vi进入编辑模式,按esc进入命令模式输入:
:set nu
清空
vi进入编辑模式,按esc进入命令模式输入:
dG
注意没有冒号
删除一行
vi进入编辑模式,按esc进入命令模式输入:
dd
或者
shift + d
查找文件中字符串
grep -rn "hello,world!" *
* : 表示当前目录所有文件,也可以是某个文件名
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写
下面是一些有意思的命令行参数:
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
这里还有些用于搜索的特殊符号:
\< 和 \> 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、‘manic’、‘man’等,
grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’,
grep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。
'^':指匹配的字符串在行首,
'$':指匹配的字符串在行尾,
显示文件某一行或者指定行
【一】从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000
【二】显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000
注意两种方法的顺序
分解:
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行
【三】用sed命令
只查看文件的第5行到第10行
sed -n '5,10p' filename
Nginx启动
启动
ln -s /usr/local/lib/libpcre.so.1 /lib64
/usr/local/nginx/sbin/nginx
重启
/usr/local/nginx/sbin/nginx -s reload
创建用户
useradd webuser
创建用户并指定文件夹位置
useradd -d /目录 -m 用户名
修改新建用户密码
passwd webuser
更改权限
赋予webuser目录给webuser用户权限
chown -R webuser:webuser /home/webuser/
赋予local目录读写权限给keesail,别的用户对这个目录没有任何权限:
chmod 760 /home/webuser/
创建,复制,剪切,删除
创建文件夹
# 创建单个文件夹
mkdir /nginx
# -p 是 --parents 的缩写 它创建直到给定目录的整个目录树。
# {conf,html,logs} 三个并列的文件夹
mkdir -p /nginx/{conf,html,logs}
复制命令cp
命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)
cp [option] source1 source2 source3 ... directory
参数说明:
-a:是指archive的意思,也说是指复制所有的目录
-d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身
-f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
-i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作
-l:建立硬连接(hard link)的连接文件,而非复制文件本身
-p:与文件的属性一起复制,而非使用默认属性
-r:递归复制,用于目录的复制操作
-s:复制成符号连接文件(symbolic link),即“快捷方式”文件
-u:若目标文件比源文件旧,更新目标文件
如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令:
cp /test1/file1 /test3/file2
文件移动命令mv(剪切)
命令格式:mv [-fiv] source destination
参数说明:
-f:force,强制直接移动而不询问
-i:若目标文件(destination)已经存在,就会询问是否覆盖
-u:若目标文件已经存在,且源文件比较新,才会更新
如将/test1目录下的file1复制到/test3 目录,并将文件名改为file2,可输入以下命令:
mv /test1/file1 /test3/file2
文件删除命令
命令格式:rm [fir] 文件或目录
参数说明:
-f:强制删除
-i:交互模式,在删除前询问用户是否操作
-r:递归删除,常用在目录的删除
如删除/test目录下的file1文件,可以输入以下命令:
rm -i /test/file1
禁用远程root登录
- vi /etc/ssh/sshd_config
- 把
PermitRootLogin yes改为PermitRootLogin no - 重启sshd服务: service sshd restart 或者 systemctl sshd restart
- 查看ssh登录日志:more /var/log/secure
- 干了些什么:who /var/log/wtmp
修改防火墙
centos 6
vi /etc/sysconfig/iptables
-
添加端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT -
重启防火墙
service iptables restart
centos 7
-
查看已打开的端口 #
netstat -anp -
查看想开的端口是否已开 #
firewall-cmd --query-port=666/tcp若此提示 FirewallD is not running
表示为不可知的防火墙 需要查看状态并开启防火墙
-
查看防火墙状态 #
systemctl status firewalldrunning 状态即防火墙已经开启
dead 状态即防火墙未开启
-
开启防火墙,#
systemctl start firewalld没有任何提示即开启成功开启防火墙 # service firewalld start
关闭防火墙 # systemctl stop firewalld
centos7.3 上述方式可能无法开启,可以先#systemctl unmask
-
查看想开的端口是否已开 #
firewall-cmd --query-port=666/tcp提示no表示未开
-
开永久端口号
firewall-cmd --add-port=666/tcp --permanent提示 success 表示成功
-
重新载入配置 #
firewall-cmd --reload比如添加规则之后,需要执行此命令
-
再次查看想开的端口是否已开 #
firewall-cmd --query-port=666/tcp提示yes表示成功
-
若移除端口 #
firewall-cmd --permanent --remove-port=666/tcp -
修改iptables有些版本需要安装iptables-services #
yum install iptables-services然后修改进目录 /etc/sysconfig/iptables修改内容
安装JDK
rpm安装jdk
rpm -ivh jdk-7u79-linux-x64.rpm
解压安装jdk
-
压缩包放到/usr/local/src/java/
-
tar -zxvf jdk-8u192-linux-x64.tar.gz
-
配置环境变量
vi /etc/profile -
然后在末尾 添加环境变量:
JAVA_HOME=/usr/local/src/java/jdk1.8.0_192 JRE_HOME=/usr/local/src/java/jdk1.8.0_192/jre CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$JAVA_HOME/bin:$PATH export PATH JAVA_HOME CLASSPATH -
完成后保存文件,然后运行:
source /etc/profile -
然后分别运行下面三个环境变量,查看刚才的配置是否生效:
echo $JAVA_HOME echo $CLASSPATH echo $PATH -
完成后再输入命令:
java -version
安装maven
-
解压
tar -zvxf apache-maven-3.3.9-bin.tar.gz -
配置环境变量:
vi /etc/profile末尾添加: MAVEN_HOME=/usr/local/src/maven/apache-maven-3.3.9 修改path为 PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH Export中添加 MAVEN_HOME -
完成后保存文件,然后运行:
source /etc/profile -
然后分别运行下面两个环境变量,查看刚才的配置是否生效:
echo $MAVEN_HOME echo $PATH -
完成后再输入命令:
mvn –version
安装nexus
-
解压到/usr/local/nexus
-
命令:
// 默认访问端口8081 /usr/local/nexus/nexus/bin/nexus {start|stop|run|run-redirect|status|restart|force-reload}
搭建SVN服务器
-
通过yum安装svnserve
yum -y install subversion -
检查是否成功
svnserve --version -
查看安装位置
rpm -ql subversion -
创建版本库目录
mkdir /var/svn/Repositories -
创建SVN版本库
// repo为你预期的版本库名称,可自定义 svnadmin create /var/svn/Repositories/repo
修改配置文件
进入conf
conf目录下,一共存放三分重要的配置文件,如下图:
- authz:负责账号权限的管理,控制账号是否督学权限
- passwd:负责账号和密码的用户名单管理
- svnserve.conf:svn服务器配置文件
-
修改authz文件信息,在文件内容的末尾添加如下:
// 请注意[]中的斜杠,一定是反斜杠,有些教程说,需添加版本库名称在括号内,我直接建议就这写,这样写允许访问的权限更大,避免一些错误 [\] // rw表示赋予此账号可读写的权限 账号1 = rw 账号2 = rw -
修改passwd文件,账号密码文件无需做修改,也是直接将账号和密码信息追加到文件中即可,注意格式为:
账号 = 密码 例如:admin = 123456 -
修改svnserve.conf(重要)
// 原始文件内容,都被注释掉的,我们只需要去掉4条指定内容前注释即可,如下: anon-access = none 关闭匿名访问 auth-access = write 认证用户权限 password-db = passwd 密码文件指向 authz-db = authz 权限文件指向 -
启动svn服务器
svnserve -d -r /var/svn/Repositories
启动SprongBoot jar包
-
创建 xxx.sh文件
-
写入下面程序,将项目名和jdk路径修改
#/bin/bash PROCESS=`ps -ef|grep cypt2-codegen.jar|grep -v grep|grep -v PPID|awk '{ print $2}'` for i in $PROCESS do echo "Kill the $1 process [ $i ]" kill -9 $i done source /etc/profile nohup /usr/local/java/jdk1.8.0_161/bin/java -jar cypt2-codegen.jar --spring.profiles.active=dev > codegen.out 2>&1 &