1.SSH命令
SSH是指Secure Shell,是一种安全的传输协议,Ubuntu客户端可以通过SSH访问远程服务器
SSH分客户端openssh-client和openssh-server.
如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudoapt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server。
1.1 ssh安装
客户端安装. sudo apt-get install ssh 或者 sudo apt-get installopenssh-client
安装服务端。 sudo apt-get install openssh-server
确认sshserver是否启动了:(或用“netstat -tlp”命令)ps -e | grep ssh |
如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。
如果没有则可以这样启动:sudo/etc/init.d/ssh start
1.2 ssh服务命令
停止服务:sudo /etc/init.d/ssh stop
启动服务:sudo /etc/init.d/ssh start
重启服务:sudo /etc/init.d/sshresart
断开连接:exit
登录:sshroot@192.168.0.100
1.3 ssh登陆服务器
常用格式:ssh [-llogin_name] [-p port] [user@]hostname
例如
ssh -p 22 zhanghaichao@192.168.1.1
1.4 ssh config
- 路径:~/.ssh/config
-
语法关键字
touch config vim config host "zhanghaichao" HostName 192.168.1.1 User root Port 22 host "zhanghaichao2" HostName 192.168.1.2 User root Port 22
加入配置文件之后可以通过别名连接服务器。
如:ssh zhanghaichao
1.5 ssh免密登陆
命令:ssh-keygen -t rsa.
可以不要指定加密方式:ssh-keygen
生成的密钥在 ~/.ssh/ 目录下
使用 cat ~/.ssh/id_rsa.pub 查看公钥,并将其写入到服务器中
写入方法:
登陆服务器,使用vim ~/.ssh/authorized_keys
命令,将生成的公钥复制进去,并保存。
注意,如果如果写入之后还需要密码登陆,在客户端使用ssh-add ~/.ssh/id_rsa
将生成的私钥加载一下
1.6 修改ssh端口
命令:vim /etc/ssh/sshd_config
.
在文件中加入Port 10086
.
使用 service sshd restart
,重启服务生效。
2.Linux常用命令
2.1 软件操作命令
- 软件包管理器: yum
- 安装软件:yum install xxx
- 卸载软件:yum remove xxx
- 搜索软件:yum search xxx
- 清理缓存:yun clean packages
- 列出已安装:yum list
- 软件包信息:yum info xxx
2.2 服务器硬件资源和硬盘操作
- 内存:free -m
- 硬盘:df -h
- 负载:w/top
- cpu个数和核数:cat /proc/cpuinfo
2.3 文件和文件夹操作命令
- Linux文件的目录结构
- 根目录 /
- 家目录 /home
- 临时目录 /tmp
- 配置目录 /etc
-
文件基本操作
cd /tmp ls -al ll touch file.txt #创建文件 mkdir zhc_dir mkdir -p zhc_dir/test #创建目录 rm file.txt #删除文件 rm -rf zhc_dir #删除目录 cp file1 /zhc_fir/file1 #复制 mv flie1 file2 #重命名或移动
- 文本编辑vim
- 安装:yum install vim
- 一般模式:
esc进入该模式。
G光标移到行末尾,
gg光标移到行首,
dd删除行,数字加dd删除n行
u撤销删除
yy复制行,p粘贴 - 编辑模式: 一般模式输入i进入
- 命令行模式: 一般模式输入:进入
-
文件权限421
-
文件搜索,查找,读取
- grep -n “findword” filename #查找文件中的字符
-
cat filename wc -l #统计行数 -
grep “findword” filename wc -l - find dirname -name “*.java “ #查找文件
- find dirname -type f #f表示文件,d表示目录
- find . -ctime -20 #20天内有修改的文件
- find dirname -type f -mtime +7 #更改时间在7天以前的
- find . -type f -perm 777 -exec ls -l {} \;
-
文件压缩解压
- tar -cvf file.tar file # 创建压缩文件
- tar -tf file.tar #显示压缩文件内容
- tar -tvf file.tar #显示压缩文件详细内容
- tar -xvf file.tar #解压缩文件内容
- tar -czvf file.tar.gz file #gzip压缩
- tar -xzvf file.tar #解压缩文件内容
- 指定解压目录:tar -zxvf file.tar.gz -C dirname
2.4 系统用户操作命令
tips:
- 在root权限下,useradd只是创建了一个用户名,如 (useradd +用户名 ),它并没有在/home目录下创建同名文件夹,也没有创建密码,因此利用这个用户登录系统,是登录不了的,为了避免这样的情况出现,可以用 (useradd -m +用户名)的方式创建,它会在/home目录下创建同名文件夹,然后利用( passwd + 用户名)为指定的用户名设置密码。
-
可以直接利用adduser创建新用户(adduser +用户名)这样在/home目录下会自动创建同名文件夹
- useradd username
- passwd username
- userdel -r username
2.5 防火墙相关设置
- 安装:yum install firewalld
- 启动:service firewalld start
- 检查状态:service firewalld status
- 关闭禁用:service firewalld stop/disablecd ~
-
查找服务:ps -ef grep firewall - 查看版本:firewall-cmd –version
- 查看状态:firewall-cmd –state
- 查看区域:firewall-cmd –get-zones
- 区域详细信息:firewall-cmd –list-all-zone
- 列出服务:firewall-cmd –list-services
- 查询服务:firewall-cmd –query-service=ssh
- 删除服务:firewall-cmd –remove-service=ssh
- 添加服务:firewall-cmd –add-service=ssh
2.6 提权操作sudo和文件传输操作
- visudo 允许普通用户提权
- wget url
- curl -o filename url
- windows平台使用xshell连接服务器,文件传输使用(rz,sz):yum install lrzsz
3.SCP命令
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 … [[user@]host2:]file2.
DESCRIPTION :scp copies files between hosts on a network.
利用scp传输文件
3.1 从服务器上下载文件
scp username@servername:/path/filename.
例如 scp zhanghaichao@192.168.0.101:/home/test.txt
把192.168.0.101上的/home/test.txt的文件下载到当前目录
3.2 上传本地文件到服务器
scp /path/filename username@servername:/path
例如scp /home/test.txt zhanghaichao@192.168.0.101:/home/test.txt
把本机/home/test.txt 目录下的test.txt文件上传到192.168.0.101这台服务器上的/home目录中
3.3 从服务器下载整个目录
scp -r username@servername:remote_dir/ local_dir/ 例如:scp -r zhanghaichao@192.168.0.101 /home/test /home/
3.4 上传目录到服务器
scp -r local_dir username@servername:remote_dir
例如:scp -r test zhanghaichao@192.168.0.101:/home
把当前目录下的test目录上传到服务器的/home目录
4.WebSever
4.1 Apache
-
安装与启动
-
ps -ef grep httpd -
netstat -anpl grep ‘http’
-
-
配置虚拟主机
-
vim /etc/httpd/conf/httpd.conf
<VirtualHost *:80> ServerName www.xxx.xxx DocumentRoot /data/www <Directory "/data/www"> Options Indexes FollowSymLinks AllowOverride None Require all granted <!-配置伪静态,先在httpd.conf中加载rewrite模块,所有后缀为htmp都指向index.html--> <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*).htmp$ index.html </IfModule> </Directory> </VirtualHost>
- services httpd restart
- mkdir -p /data/www
- cd /data/www
- vim index.html
- sudo setenforce 0
-
4.2 Nginx
-
安装与启动
- 伪静态 nginx.conf
- 日志格式配置 log_format
- 反向代理和负载均衡
5.数据库服务
5.1 Mysql安装及链接
- yum remove mariadb #卸载mariadb(mysql开源实现)
- yum install mysql-community-server #安装mysql
-
cat /var/log/mysqld.log grep ‘password’ #查找原始密码 - mysql -uroot -p #登陆mysql
- set global validate_password_policy=0; #关闭密码安全策略
- set global validate_password_length=1; #设置密码长度
5.2 远程链接
5.3 开启genelog
- set global general_log_file=”/tmp/mysql.log”; #设置日志路径
- set global general_log=on; #开启日志
- set global general_log=on; #关闭日志
5.4 新建用户
- create user ‘zhc’@’%’ identified by ‘123456’; #新建用户
- grant all privileges on . to ‘zhc’@’%’ with grant option; #赋予用户所有的权限
- grant select,insert,update,delete privileges on . to ‘zhc’@’%’ with grant option; #赋予用户增删改查权限
- revoke all privileges on . From zhc; #移除用户所有全乡
- flush privileges; #刷新权限,相当于重启服务
- mysql -uzhc -p123456 #登陆新建的用户
5.5 找回mysql密码
6.缓存服务
6.1 Memcached基本操作
6.2 Redis基本操作
源码编译安装方法:
1. 从redis官网下载源码包,解压redis.tar.gz
2. 安装所需依赖:gcc
3. 进入解压目录,执行make(make malloc=libc)
4. sudo make install
redis命令:
1. 启动redis服务后使用 ./redis-cli命令启动客户端
2. set key value #设置redis缓存
3. get key #得到key对应的value
4. del key #删除这个键值对
5. LPUSH queuename value1 #队列存储。
6. RPUSH queuename value2
7. LPUSH queuename value3
8. LRANGE queuename 0 3 #查询队列。
7.GIT版本管理工具
- 安装: sudo yum install git
- 生成ssh_key:见第一章第五小节
- 基本使用:廖雪峰git
- 命令自动补全:
- git clone git@github.com:git/git.git #下载github中的一个项目
- sudo cp contrib/completion/git-completion.bash /etc/bash_completion.d/ #将项目中的一个脚本复制到指定目录
- source /etc/bash_completion./git-completion.bash #加载bash脚本
- 编辑 ~/.bash_profile 加入下面语句自动加载脚本.
if[-f /etc/bash_completion./git-completion.bash];then
source /etc/bash_completion./git-completion.bash
fi
8.Python运行环境配置
9.常用服务(运维)
-
定时任务:crontab
crontab -e
五个星号按照时间排序为,分,时,天,月,周,后面接脚本命令 - 更新系统时间:ntpdate
ntpdate cn.pool.ntp.org - 日志分割:logrotate
- 进程监控管理:Supervisor
- 监控神器:zabbix