Linux 常用操作

346 阅读4分钟

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命令

批量下载

  1. 将多个url写入一个文件,如txt

  2. 使用命令

    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登录

  1. vi /etc/ssh/sshd_config
  2. PermitRootLogin yes改为PermitRootLogin no
  3. 重启sshd服务: service sshd restart 或者 systemctl sshd restart
  4. 查看ssh登录日志:more /var/log/secure
  5. 干了些什么:who /var/log/wtmp

修改防火墙

centos 6

vi /etc/sysconfig/iptables

  1. 添加端口

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
    
  2. 重启防火墙

    service iptables restart
    

centos 7

  1. 查看已打开的端口 #netstat -anp

  2. 查看想开的端口是否已开 #firewall-cmd --query-port=666/tcp

    若此提示 FirewallD is not running

    表示为不可知的防火墙 需要查看状态并开启防火墙

  3. 查看防火墙状态 #systemctl status firewalld

    running 状态即防火墙已经开启

    dead 状态即防火墙未开启

  4. 开启防火墙,#systemctl start firewalld 没有任何提示即开启成功

    开启防火墙 # service firewalld start

    关闭防火墙 # systemctl stop firewalld

    centos7.3 上述方式可能无法开启,可以先#systemctl unmask

  5. 查看想开的端口是否已开 #firewall-cmd --query-port=666/tcp

    提示no表示未开

  6. 开永久端口号 firewall-cmd --add-port=666/tcp --permanent

    提示 success 表示成功

  7. 重新载入配置 #firewall-cmd --reload

    比如添加规则之后,需要执行此命令

  8. 再次查看想开的端口是否已开 #firewall-cmd --query-port=666/tcp

    提示yes表示成功

  9. 若移除端口 #firewall-cmd --permanent --remove-port=666/tcp

  10. 修改iptables有些版本需要安装iptables-services # yum install iptables-services 然后修改进目录 /etc/sysconfig/iptables修改内容

安装JDK

rpm安装jdk

rpm -ivh jdk-7u79-linux-x64.rpm

解压安装jdk

  1. 压缩包放到/usr/local/src/java/

  2. tar -zxvf jdk-8u192-linux-x64.tar.gz

  3. 配置环境变量 vi /etc/profile

  4. 然后在末尾 添加环境变量:

    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
    
  5. 完成后保存文件,然后运行: source /etc/profile

  6. 然后分别运行下面三个环境变量,查看刚才的配置是否生效:

    echo $JAVA_HOME
    echo $CLASSPATH
    echo $PATH
    
  7. 完成后再输入命令:java -version

安装maven

  1. 解压 tar -zvxf apache-maven-3.3.9-bin.tar.gz

  2. 配置环境变量: 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
    
  3. 完成后保存文件,然后运行:source /etc/profile

  4. 然后分别运行下面两个环境变量,查看刚才的配置是否生效:

    echo $MAVEN_HOME
    echo $PATH
    
  5. 完成后再输入命令:mvn –version

安装nexus

  1. 解压到/usr/local/nexus

  2. 命令:

    // 默认访问端口8081
    /usr/local/nexus/nexus/bin/nexus {start|stop|run|run-redirect|status|restart|force-reload}
    

搭建SVN服务器

  1. 通过yum安装svnserve

    yum -y install subversion
    
  2. 检查是否成功

    svnserve --version
    
  3. 查看安装位置

    rpm -ql subversion
    
  4. 创建版本库目录

    mkdir /var/svn/Repositories
    
  5. 创建SVN版本库

    // repo为你预期的版本库名称,可自定义
    svnadmin create /var/svn/Repositories/repo
    

修改配置文件

进入conf

conf目录下,一共存放三分重要的配置文件,如下图:

svn-conf.png

  • authz:负责账号权限的管理,控制账号是否督学权限
  • passwd:负责账号和密码的用户名单管理
  • svnserve.conf:svn服务器配置文件
  1. 修改authz文件信息,在文件内容的末尾添加如下:

    // 请注意[]中的斜杠,一定是反斜杠,有些教程说,需添加版本库名称在括号内,我直接建议就这写,这样写允许访问的权限更大,避免一些错误
    [\]
    // rw表示赋予此账号可读写的权限
    账号1 = rw
    账号2 = rw
    
  2. 修改passwd文件,账号密码文件无需做修改,也是直接将账号和密码信息追加到文件中即可,注意格式为:

    账号 = 密码
    例如:admin = 123456
    
  3. 修改svnserve.conf(重要)

    // 原始文件内容,都被注释掉的,我们只需要去掉4条指定内容前注释即可,如下:
    anon-access = none  关闭匿名访问
    auth-access = write  认证用户权限
    password-db = passwd  密码文件指向
    authz-db = authz  权限文件指向
    
  4. 启动svn服务器

    svnserve -d -r /var/svn/Repositories
    

启动SprongBoot jar包

  1. 创建 xxx.sh文件

  2. 写入下面程序,将项目名和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 &