Linux学习1

2016-01-25 | 阅读

配置SSH密钥登录,禁止口令登录

使用口令登录会经常遭到攻击,一不小心被攻破就完蛋了,还是使用rsa密钥来登录会更加安全一点:

  1. 配置密钥: 使用命令ssh-keygen -t rsa,这样会生成两个文件,公钥~/.ssh/id_rsa.pub和私钥~/.ssh/id_rsa.
  2. 将公钥文件放到服务器上,~/.ssh/authorized_keys,即将id_rsa.pub公钥中的内容复制到服务器这个文件中,如果这个文件不存在,则创建这个文件. .ssh文件夹为700,authorized_keys文件为600.
  3. 修改服务器sshd配置,配置文件为/etc/ssh/sshd_config,修改其中内容

     RSAAuthentication yes   		PubkeyAuthentication yes   		AuthorizedKeysFile  .ssh/authorized_keys
    
  4. 重启sshd service sshd restart

上面是免密钥登录,接下来是禁止口令登录和更改端口.还是修改/etc/ssh/sshd_config配置文件.

  • 设置端口号 : Port 10086
  • 禁止口令登录: PasswordAuthentication no

配置ssh连接持续时间

sshd_config中进行设置,设置项有两个:

ClinetAliveInterval超时时间,单位为秒。

ClientAliveCountMax 表示超时判断次数。

ClientAliveInterval 600; 
ClientAliveCountMax 10; 

表示超时检测为10分钟,超时10次算失效,即共100分钟。

设置完重启sshd。

Linux常用命令

  • bc : 计算器,quit退出
  • pwd : 显示当前目录
  • mkdir -m 777 路径 : 以某权限创建新文件夹 , 100 读 010 写 001 执行
  • chmod [-R] 777 路径 : 改变文件或路径的权限,-R表示递归修改文件夹下所有项目的权限
  • chown [-R] 改变文件或路径的所有者.
  • rmdir 删除非空文件夹
  • ls 显示目录文档 , -a 全部档案,-l档案属性和权限等数据
  • cp 复制 , -i 如果文档已存在,会先询问.-r 递归复制目录内容,-p 将档案属性一起复制,而不是使用默认的属性和权限.
  • rm 删除 , -f 强制,不弹提示 -i,删除前询问,-r递归删除全部.rm -rf删除文件夹内所有内容
  • mv 移动 -f ,-i ,-r
  • cat 显示内容 ,-n打印行号
  • basename 获取文件名
  • dirname 获取路径名
  • touch 修改文档时间或新建文档
  • which 查找文档 -a 查找全部,而不是只输出第一个
  • whereis 查找文档,但是可以忽略权限
  • find 查找文件 :find / -name httpd.conf
  • gzip 压缩 zcat 解压
  • service xxx start/stop/restart/status 系统服务的状态控制
  • ps : 查看进程信息 -A所有信息,-aux显示所有详细信息
  • kill : 杀死进程 kill -9 进程号
  • netstat : 查看网络信息:-a 显示全部选项,-l 仅显示监听中的服务 ,-s 显示统计信息 , -n 拒绝显示别名,能显示数字的全部转换为数字, -p : 显示pid和进程名称。
  • wget : 下载工具 , -c 断点续传之前下载内容,-b后台下载 ,也可以用wget 来测试端口 直接wget IP:Port.
  • grep : linux 中的正则表达式搜索工具
  • systemctl : 系统服务管理工具 start/restart/stop/reload/status httpd.service 检测状态 enable/disable httpd 启动时开启或禁用服务.kill httpd杀死进程
  • telnet : 远程连接 ,telnet 222.83.228.129 80 测试端口是否打开可连接
  • ln :软连接命令,类似快捷方式. ln –s 源文件 目标文件 会保持同步变化,但需要使用绝对路径.
  • lsof : 显示系统打开的文件,需要用root用户. lsof -i : 8080输出8080端口当前运行的程序信息.
  • id root : 查看用户组及信息.
  • tar zcvf : 压缩文件, tar zxvf :解压文件.

Vim编辑器常用命令

  • i 进入文件读写,在当前位置插入
  • I 在当前行首参入
  • o 在当前行之后插入一行
  • O 在当前行之前插入一行
  • /text 查找”text”,按n查找下一个,按N查找前一个
  • ?text 反向查找”text”
  • *或# 查找光标所在的词.
  • s/old/new/ 用”old”替换”new” 替换当前行第一个匹配
  • s/old/new/ 用”old”替换”new” 替换当前行所有匹配
  • %s/old/new/ 用”old”替换”new” 替换第一个匹配
  • %s/old/new/ 用”old”替换”new” 替换所有匹配
  • gg 移动到文件头
  • G 移动到文件尾
  • : + 行号 , 调到指定行,或者用 行号 + G.
  • Ctrl + d 向下滚动半屏
  • Ctrl + u 向上滚动半屏
  • Ctrl + f 向下滚动一屏
  • Ctrl + b 向上滚动一屏
  • u 撤销
  • U 撤销整行的操作
  • Ctrl + r 撤销的撤销
  • dd 删除当前行
  • dj 删除前一行
  • dk 删除下一行
  • kdgg 删除当前行之前的所有行,不包括当前行
  • jdG 删除当前行之后的所有行,不包括当前行
  • :1,10d 删除1-10行
  • :11,$d 删除11行与之后所有行
  • :1,$d 删除所有行
  • yy 拷贝当前行
  • nyy 拷贝当前行开始的n行
  • p 在光标后放置,如果拷贝的是行,则在下一行处粘贴
  • :wq 保存并退出
  • :q! 强制退出并忽略所有更改
  • :e! 放弃所有修改,并重新打开文件
  • 3,5 s或^或#或g 注释 3-5行
  • :% s/^/#/g 注释整个文档.
  • set nu 显示行号
  • 0 : 移到行首
  • $ : 移到行尾

sftp文件传输常用命令

进行连接:

sftp -P 10086 root@115.28.192.172

然后直接操作的都是远程服务器,对于本地的操作前面要加上l 即表示local,如 cd 是移动远程服务器的当前目录,而lcd是移动本地的当前目录.

put : 将客户端中的内容放在服务器端当前路径下.

get : 将服务器端当前路径下内容下载到客户端当前路径下.

sftp没法很好的上传文件夹,所以还是用scp来上传文件夹,现在常用写法如下:

scp -r -P 128 /Users/luoxianming/tomcat/wtpwebapps/PictureStore root@115.28.192.172:/usr/share/tomcat/webapps

RPM常用命令

  • -q 查询程序是否安装
  • -ivh 显示进度 一般安装时:rpm -ivh jdk-7u79-linux-x64.rpm
  • –relocate 指定安装目录
  • -qa grep httpd 搜索指定包是否安装

安装zsh和oh-my-zsh

安装zsh:

sudo yum install zsh
chsh -s /bin/zsh

安装oh-my-zsh

wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

安装jdk

下载到包,安装,没什么问题,然后又是老生常谈的环境变量了.在/etc/profile中配置.

export JAVA_HOME=/usr/java/jdk1.7.0_79
export JRE_HOME=/usr/java/jdk1.7.0_79/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

如果使用yum 安装,会自动下载openjdk包,放在/etc/lib/jvm 下.

但是默认的openJDK里只安装了jre,没有安装jdk.然后还要找一下yum search jdk,就可以看到真正jdk是openjdk-devel.下载安装,配置环境变量.

Tomcat的端口转发

Linux限制1024以下端口必须有root权限才能开启.默认浏览器的端口是80,但是为了安全,将所有发向80的消息转发给8080.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

安装配置MariaDB

直接yum install.本来我要是安装MySQL的,结果资本主义直接给我安装上了mariadb,装就装呗,据说使用所有命令都是跟mysql差不多.安装后又坑了,报错 :

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

则正确的流程是:

yum -y install mariadb-server mariadb-client 
systemctl start mariadb.service
systemctl enable mariadb.service  
// 修改root密码
mysqladmin -u root password 'root' 

Centos中使用iptables来进行防火墙管理

首先安装服务:

yum install mariadb-client mariadb-server mariadb-devel

systemctl enable iptables.service
systemctl start iptables.service

RPM常用命令

RPM是RedHat Package Manager的软件包管理工具.常用命令为:

  • -ivh 安装并显示进度 –install–verbose–hash
  • -Uvh 升级软件包 –Update
  • -e 删除包

-q 查询包, 附加参数有:

-a, --all # 查询全部包
-p, --package # 在文件夹下查找
-l, --list # 列出所有安装文件位置
-d, --docfiles # 列出所有文档文件
-f, --file # 查询并验证文件是否完整.