Linux----常用操作
------------------------------------------------------------------------Linux常用操作------------------------------------------------------------------------------------------------- 1:Xshell无法远程连接服务器 (1):看路通不通。---------------------------------------------------------ping ip地址 常见原因: 1:检车服务器IP是否正确,网卡是否启动。 2:编辑里的,虚拟网络编辑器,查看子网IP 3: 保证vmware相关服务,正常运行-------win+r =====>services.msc VMware Authorization Service VMware NAT Service 4:网络连接 (2):是否有劫财劫色,IPtables Selinux (3):是否提供想要的服务。----------------------------------------------telnet ip地址 端口号 2:Linux无法上网排查过程; 1.确认是否能上网------------------------------ 2.确认是否是DNS问题---------------------------ping 223.5.5.5 ping 114.114.114.114 3.修改网卡的DNS-------------------------------vim /etc/sysconfig/network-scripts/ifcfg-eth0 3:端口号: 22-----------------------------------------------远程连接服务 sshd telnet ip地址 22-----------------------------检测服务是否开启 80----------------------------------------------- 8080--------------------------------------------- 443---------------------------------------------- 4:命令行格式: 命令 [参数选项] [文件路径或选项] 5:一切从根开始: /-----------------根目录 相对路径与绝对路径: 绝对路径:从根开始的路径 /data 相对路径: 从当前位置开始 6:基本命令: 查找命令帮助: -:man rm -----------------------------------------------------------查找命令帮助 创建目录:----------------------------------mkdir -:mkdir /data-------------------------------------------------------创建目录 -:ls/data/----------------------------------------------------------查看目录 -:ls -l /data/------------------------------------------------------显示详细目录 -: ls -l >/wsl.txt chmod 700 /data ln -s /var/log /data/log 切换:--------------------------------------cd -:cd change dir---------------------------------------------------- 切换 -:cd /data/------------------------------------------------------- 切换 -:pwd--------------------------------------------------------------- 查看当前目录 创建文件:----------------------------------touch -;touch /data/oldboy.txt--------------------------------------------创建文件 -:pwd---------------------------------------------------------------查看当前目录 -:ls -l-------------------------------------------------------------查看目录详细 添加内容:----------------------------------vim -:vim /data/oldboy.txt----------------------------------------------添加内容 按小写字母i------------------------------------------------------进入编辑模式 esc--------------------------------------------------------------退出编辑模式 -::wq---------------------------------------------------------------退出并保存 -::q!---------------------------------------------------------------强制退出不保存 -: j-------------------------------------------------------------下移光标 -: k-------------------------------------------------------------上移光标 -: h-------------------------------------------------------------左移 -: l-------------------------------------------------------------右移 ctrl + f 向前翻页 ctrl + b 向后翻页 G 最后一行 gg 第一行 追加内容:----------------------------------echo >> --------------------------------------------------------------追加输出重定向 把内容追加到文件的结尾 > --------------------------------------------------------------重定向,先清空文件,把内容追加到文件的结尾 -:echo "I name is wangshanglong">> /data/oldboy.txt-----------------追加内容 -: echo "wsl wsl wsl wsl"> /data/oldboy.txt--------------------------先清空文件,把内容追加到文件的结尾 查看文件内容:------------------------------cat -:cat /data/oldboy.txt----------------------------------------------查看内容 拷贝: --------------------------------------cp -: cp /data/oldboy.txt /tmp/-----------------------------------------把oldboy.txt拷贝(复制)到/tmp下 移动:--------------------------------------mv -: mv /data/ /root/--------------------------------------------------把 /data 移动到 /root目录下面 ls -l /data ls -l /root/ 重命名:------------------------------------avi -: mv oldboy.txt oldboy.avi ls -l 备份:--------------------------------------bak -:cp oldboy.txt oldboy.txt.bak ls -l 删除:--------------------------------------rm -: rm oldboy.avi------------------------------------------------------删除 -: rm oldboy.avi -f---------------------------------------------------强制删除 -: rm data/ -r--------------------------------------------------------删除目录 -: rm data/ -ff-------------------------------------------------------强制删除目录 搜索:--------------------------------------find -: find / -type f -name "oldboy.txt"----------------------------------搜索文件 -: find / -type f -name "oldboy.txt"----------------------------------搜索目录 -: find / -type f -name "*.txt"---------------------------------------模糊搜索 参数: /--------------------------------------哪里找 -type----------------------------------类型 f(file)-----------------------文件 d(dir)------------------------目录 -anme"名称"----------------------------名字 -sice +1M----------------------------------大小 退出到上级目录:----------------------------cd ../../ .. 当前目录的上级目录 . 当前目录 管道:---------------------------------------|xargs 管道 |find命名的配合 -:find /root/ -type f -name "*.log" |xargs ls -l -:find / -type f -name "*.txt" -size +1M |xargs ls -l 管道|和|xargs的区别? 管道是实现“将前面的标准输出作为后面的标准输入” xargs是实现“将标准输入作为命令的参数” 生成序列:-----------------------------------seq -: seq 10 -1 1--------------------------------------------生成序列 -: seq 10 -1 1 >nginx.conf--------------------------------文件中添加序列号 -: cat -n nginx.conf--------------------------------------显示行号 vi/vim: :set nu-----------------------------------------------显示行号 :set number :set nonu---------------------------------------------不显示行号 G-----------------------------------------------------快速到达文件最后一行 gg----------------------------------------------------快速到达文件第一行 10gg--------------------------------------------------快速到达文件某一行 创建多级目录:-------------------------------- -p -: mkdir -p /oldboy/test------------------------------创建多层目录 替换------------------------------------------t.sh -: sed 's#oldboy#oldgirl#g' t.sh---------------------------替换 -:sed 's#oldboy#oldgirl#g' t.sh---------------------------把/oldboy目录及其子目录下所有以扩展名 .sh结尾的文件中,文件包含oldboy的字符串全部替换为oldgirl -:find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g' 备份并修改:----------------------------------- -i.bak t.sh -:sed -i.bak 's#oldboy#oldgirl#g' t.sh-----------------------备份并修改 查看文件内容:---------------------------------cat t.sh -: cat t.sh--------------------------------------------查看文件内容 -: find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g' -i -: find /oldboy/ -type f -name "*.sh"|xargs cat -:find /oldboy/ -type f -name "*.sh"|xargs cat 查看区间:-------------------------------------awk -:awk 'NR==20' ett.txt -:awk 'NR>=20 && NR<=30' ett.txt 备份多个文件,打包,压缩:---------------------tar 备份多个文件: windows ------------创建压缩包 tar-----------------打包压缩 -:tar zcf /tmp/etc.tar.gz/ /etc/-----------------------------创建压缩包 z ========= gzip 软件进行压缩 .tar.gz c ========= create 打包,创建包 v ========= verbose 显示过程 f ========= file 指定压缩包 -:tar tf /tmp/etc.tar.gz--------------------------------------查看压缩包 -:cd /tmp/ -:tar xf etc.tar.gz -:tar xf etc.tar.gz-------------------------------------------解压到当前目录 7:快捷键: 1:Tab键---------------------------自动补全命令或路劲。 2:ctrl+l--------------------------清屏 3: ctrl+c--------------------------取消当前操作 4:vi/vim 快捷键: 复制当前行 --------------------yy 粘贴---------------------------p 剪切---------------------------dd 撤销---------------------------u 恢复---------------------------ctrl + r 使用上一个命令的最后一个东西---esc + .(点) 8:安装软件常用方法: 1:yum安装--------------------------替你解决依赖关系 2:rpm包安装------------------------自己解决依赖 3:编译安装-------------------------自己动手做 ./configure make make install 常用安装软件命令: 1.------------------------------------------------------------------ yum install tree xxx -y 2.rpm 查询软件是否安装------------------------------------------------ rpm -qa 查询软件包的内容------------------------------------------------ rpm -ql 安装rpm包------------------------------------------------------- rpm -ivh 3.显示磁盘使用情况-------------------------------------------------- df -h 挂载 ----------------------------------------------------------- mount 显示前几行的内容 默认前10行 ----------------------------------- head 显示最后几行的内容 默认最后10行 ------------------------------- tail 显示前5行----------------------------------------------------------- head -5 /etc/passwd 配置yum源管理与软件管理,yum安装常见工具 tree telnet sl cowsay 1:检查是否安装--------------------------------------------------------- rpm -qa tree telnet 2:yum安装-------------------------------------------------------------- yum install tree telnet -y 3:查询安装包内容------------------------------------------------------- rpm -ql tree telnet 4:查看文档树形结构----------------------------------------------------- tree -L 1 / ---------------------------------------------------- history rpm挂载光盘 1:---------------------------------将光盘放入光驱 2:---------------------------------挂载光盘(挂载:给设配开个洞) 3:挂载----------------------------------------------------------------- mount /dev/cdrom /mnt/ 4:切换----------------------------------------------------------------- cd /mnt/ 5:显示前几行----------------------------------------------------------- ls Packages |head 6:rpm安装------------------------------------------------------------- rpm -ivh /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm --------------------------------------------------------------- rpm -ivh /mnt/Packages/telnet-0.17-48.el6.x86_64.rpm 7:查看是否安装:------------------------------------------------------ rpm -qa lrzsz ------------------------------------------------------ rpm -qa tree telnet lrzsz 8:安装lrzsz:---------------------------------------------------------- rpm -ivh /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm 9: 挂载:--------------------------------------------------------------- mount 10:显示前几行的内容 默认前10行 --------------------------------------- head 11:显示最后几行的内容 默认最后10行 ----------------------------------- tail 增加yum源 epel源 extra package for enterprise linux Fedora Redhat CentOS: 1:查看是否安装------------------------------------------------------- rpm -qa sl cowsay 2:yum安装------------------------------------------------------------ yum install sl cowsay -y 3: ------------------------------------------------------------------- http://mirrors.aliyun.com/ 4: 安装源------------------------------------------------------------- yum install epel-release -y -------------------------------------------------------------- yum install sl cowsay -y 9:关闭iptables和selinux iptables: 1.临时关闭防火墙-重启后失效(关两次,一次可能关不了)------------------- /etc/init.d/iptables stop ------------------------------------------ /etc/init.d/iptables stop 2.永久关闭防火墙-重启服务器之后生效,开机自启动 ---------------------- chkconfig iptables off 查看全部开启状态------------------------------------------ chkconfig 查看iptables开启状态-------------------------------------- chkconfig |grep iptables selinux: 1.临时 -重启服务器之后失效 查看当前selinux状态---------------------------------------- getenforce 查看当前selinux状态码(用于切换)---------------------------- setenforce usage: setenforce [ Enforcing | Permissive | 1 | 0 ] 关闭selinux------------------------------------------------ setenforce 0 2.永久 -重启服务器之后生效 查找:----------------------------------------------------- sed 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config 备份:----------------------------------------------------- sed -i.bak 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config 关闭:----------------------------------------------------- grep 'disabled' /etc/selinux/config 10:运行级别: 0:关机状态 1:单用户模式 重新设置root密码 √ 2:多用户模式 没有NFS(存储 ) 3:完全的多用户模式 命令行模式 文本模式 √ 4:未被使用的 5:桌面模式 图形界面模式 √ 6:重启状态 命令: 1:查询当前用户的运行级别-------------------------------------------- runlevel 2:临时修改运行级别-------------------------------------------------- init 4 3:永久修改运行级别-------------------------------------------------- runlevel 3 4 4: ------------------------------------------------- tail -1 /etc/inittab 5: ------------------------------------------------- cat /etc/redhat-release 6: ------------------------------------------------- uname -r 如何进入单用户状态: · 重启后按任意键进入单用户模式-------->进入GRUB菜单-------->按a编辑内核参数-写入1或single------->成功进入单用户 -------->选择kernel这行 按e编辑系统信息-------->编辑内核信息加上1或single编辑后按回车-------->编辑内核后按b进入当用户模式 1:重启-------------------------------------------------------------- shutdown -r 10 2:取消-------------------------------------------------------------- Ctrl+c --------------------------------------------------------------- shutdown -c 如何进入救援模式(*非特殊情况谨慎使用)------------------------------------ resuce installed system 11:添加新用户: 添加用户:----------------------------------------------------------- useradd oldboy 1:查看添加的用户------------------------------------------------ id oldboy 2: 查看当前用户-------------------------------------------------- id 设置密码:----------------------------------------------------------- passwd oldboy 切换用户:----------------------------------------------------------- su - oldboy 查看当前用户:----------------------------------------------- whoami 退出当前用户:----------------------------------------------- Ctrl+d sl--------------------------------小火车 12:定时任务: 1:查看定时任务(list)-----------------------------------------------------crontab -l 2: 编辑定时任务(edit)-----------------------------------------------------crontab -e 每天的晚上12点准时回家开车(go to bed)-----------------------------------00 00 * * * go to bed 每天的早上8点30分来学校上车(go to school)-------------------------------30 08 * * * go to school 3:定时任务中的特殊符号1. * 每 ,每分钟把自己的名字 追加到/tmp/oldboy.log中 (1):测试每分钟把自己的名字 追加到/tmp/oldboy.log中------------------------ echo oldboy >>/tmp/oldboy.txt (2):查看------------------------------------------------------------------ cat /tmp/oldboy.txt (3):写入定时任务,修改定时任务内容,并检查--------------------------------- crontab -l (4):修改定时任务---------------------------------------------------------- crontab -e #print name to file by oldboy at 20181111 * * * * * echo oldboy >>/tmp/oldboy.txt (6):查看------------------------------------------------------------------ tail -f /tmp/oldboy.txt (7):查看定时任务的日志---------------------------------------------------- ls -l /var/log/cron 4. */10 每3分钟同步一下系统的时间 ,/usr/sbin/ntpdate (1):同步阿里云时间-------------------------------------------------------- /usr/sbin/ntpdate ntp1.aliyun.com (2):查看当前时间---------------------------------------------------------- date 手动修改(不推荐)------------------------------------------------------ date -s "20180101" (3):查看定时任务---------------------------------------------------------- crontab -l (4):添加定时任务--------------------------------------------------------- crontab -e #sync time by oldboy at 20181111 */3 * * * * /usr/sbin/ntpdate ntp1.aliyun.com (5):退出并保存------------------------------------------------------------- :wq (6):查看定时任务的日志----------------------------------------------------- ls -l /var/log/cron 5:要把定时任务中命令或脚本的执行 定向到空或追加到文件 /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1 echo oldboy >>/tmp/oldboy.txt 2>&1 13:上传下载文件: 用户访问系统的记录(看是否有人破解你的密码)----------------------------------- ll /var/log/secure windows文件上传到linux------------------------------------------------------- rz .tar.gz 把Linux文件下载到windows----------------------------------------------------- sz .tar.gz .zip--------------------------------------------------------------------- 压缩包是linux和windows默认支持的。 下载压缩包------------------------------------------------------------------- wget http://nginx.org/download/nginx-1.12.2.tar.gz xshell------------------------------------------------------------------- 远程连接 xftp ftp工具------------------------------------------------------------- 上传大文件 https://www.netsarang.com/download/down_form.html?code=523--------------- xftp下载网址 查看日志: 1.less f或空格向下一页 b上一页 2.head/tail 3.grep grep 'Failed password' secure-20161219 14:nginx: 下载nginx包----------------------------------------------------------------------------- wget http://nginx.org/download/nginx-1.12.2.tar.gz 编译安装nginx前的准备: 1.添加一个用户: 创建虚拟用户(linux每个进程要有一个对应的用户)------------------------------ useradd -s /sbin/nologin -M www 查看这个用户--------------------------------------------------------------- id www ---------------------------------------------------------------- su - www 2.安装nginx依赖软件包 pcre-devel------------------------------------- perl语言的兼容正则表达式 openssl-devel---------------------------------- https 安装------------------------------------------------------------------------- yum install pcre-devel openssl-devel -y 查看是否安装----------------------------------------------------------------- rpm -qa pcre-devel openssl-devel 查看------------------------------------------------------------------------- ll /mnt/Packages/pcre-devel-7.8-7.el6.x86_64.rpm /mnt/Packages/openssl-devel-1.0.1e-57.el6.x86_64.rpm 3.编译安装nginx: 1:解压nginx安装包------------------------------------------------------------- tar xf nginx-1.12.2.tar.gz 2:cd到root目录下的nginx-1.12.2------------------------------------------------ cd nginx-1.12.2 3:安装------------------------------------------------------------------------ ./configure --user=www --group=www --prefix=/application/nginx-1.12.2 --with-http_stub_status_module 参数: --with-http_ssl_module --user 用户 --group 用户组 --prefix 安装到哪里 两个模块--with-http_stub_status_module --with-http_ssl_module 4:--------------------------------------------------------------------------- echo $? 5:--------------------------------------------------------------------------- make 6:--------------------------------------------------------------------------- make install 7:--------------------------------------------------------------------------- md5sum /root/nginx-1.12.2.tar.gz 4d2fc76211435f029271f1cf6d7eeae3 /root/nginx-1.12.2.tar.gz 8:--------------------------------------------------------------------------- /application/nginx-1.12.2/sbin/nginx -t nginx: the configuration file /application/nginx-1.12.2/conf/nginx.conf syntax is ok nginx: configuration file /application/nginx-1.12.2/conf/nginx.conf test is successful 9:--------------------------------------------------------------------------- /application/nginx-1.12.2/sbin/nginx 10:-------------------------------------------------------------------------- ss -lntup|grep 80 tcp LISTEN 0 128 *:80 *:* users:(("nginx",4377,6),("nginx",4378,6)) 11:-------------------------------------------------------------------------- pwd(若在root目录,cd到下面目录) /application/nginx-1.12.2 12:-------------------------------------------------------------------------- ll total 36 drwx------ 2 www root 4096 Mar 15 10:31 client_body_temp drwxr-xr-x 2 root root 4096 Mar 15 10:00 conf------------------------- nginx配置文件的目录 drwx------ 2 www root 4096 Mar 15 10:31 fastcgi_temp drwxr-xr-x 2 root root 4096 Mar 15 10:00 html------------------------- nginx站点目录 网站的根目录 drwxr-xr-x 2 root root 4096 Mar 15 10:31 logs------------------------- nginx日志 drwx------ 2 www root 4096 Mar 15 10:31 proxy_temp drwxr-xr-x 2 root root 4096 Mar 15 10:00 sbin------------------------- nginx命令 drwx------ 2 www root 4096 Mar 15 10:31 scgi_temp drwx------ 2 www root 4096 Mar 15 10:31 uwsgi_temp 13:显示树形结构--------------------------------------------------------------- tree 优雅的重启nginx ---------------------------------------------------------------------------- /application/nginx-1.12.2/sbin/nginx -s reload 关闭nginx 然后开启-------------------------------------------------------------------------- /application/nginx-1.12.2/sbin/nginx -s stop ---------------------------------------------------------------------------- /application/nginx-1.12.2/sbin/nginx 搭建www.etiantian.org网站流程 1.修改nginx.conf文件 查看---------------------------------------------------------------------------- cat conf/nginx.conf 添加内容------------------------------------------------------------------------ vim conf/nginx.conf 按小写字母i------------------------------------------------------进入编辑模式 esc--------------------------------------------------------------退出编辑模式 :wq---------------------------------------------------------------退出并保存 :q!---------------------------------------------------------------强制退出不保存 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name www.etiantian.org; location / { root html/www; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 2.创建环境 --------------------------------------------------------------- mkdir -p /application/nginx-1.12.2/html/{www,bbs,blog} ----------for name in www bbs blog;do echo $name.etiantian.org> /application/nginx-1.12.2/html/$name/index.html ;done --------------------------------for name in www bbs blog;do cat /application/nginx-1.12.2/html/$name/index.html ;done 3.检查语法并重启 --------------------------------------------------------- /application/nginx-1.12.2/sbin/nginx -t nginx: the configuration file /application/nginx-1.12.2/conf/nginx.conf syntax is ok nginx: configuration file /application/nginx-1.12.2/conf/nginx.conf test is successful -------------------------------------------------------- /application/nginx-1.12.2/sbin/nginx -s reload 4.windows测试 浏览器(注意缓存) (1)修改 \etc\hosts 10.0.0.200 www.etiantian.org bbs.etiantian.org blog.etiantian.org (2)浏览器测试 5.Linux命令行测试 -------------------------------------------------------- curl -vH Host: www.etiantian.org 10.0.0.200 排错流程: 1.linux命令行是否能显示 ------------------------------------------------------ curl -vH Host:www.etiantian.org 10.0.0.200 2.windows 本地shell ---------------------------------------------------------- ping 搭建多个网站: 流程相同,只是在nginx.conf 多来几个server。 [root@oldboyedu-s6 nginx-1.12.2]# cat conf/nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name www.etiantian.org; location / { root html/www; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name bbs.etiantian.org; location / { root html/bbs; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name blog.etiantian.org; location / { root html/blog; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 测试: --------------------------------------------------------- curl -H Host:bbs.etiantian.org 10.0.0.200 bbs.etiantian.org --------------------------------------------------------- curl -H Host:blog.etiantian.org 10.0.0.200 blog.etiantian.org 15:linux启动过程: Linux是一种自由和开发源代码的类Unix操作系统。 整个过程基本可以分为:POST---->BIOS---->MBR(GRUB)---->Kernel---->Init---->Runlevel。 Blos:---------------------------------硬件检测 MBR:----------------------------------存储BootLoader信息,加载磁盘上的MBR GRUB:---------------------------------查找并加载kernel kernel:-------------------------------卸载驱动,挂载rootfs,执行/sbin/int init:---------------------------------OS初始化,执行runlevel相关程序 Runlevel:-----------------------------启动指定级别服务 16:http请求与响应过程: 1.域名解析 2. 发起TCP的3次握手 3. 建立TCP连接后发起http请求 4. 服务器端响应http请求,浏览器得到html代码 5. 浏览器解析html代码,并请求html代码中的资源 6. 浏览器对页面进行渲染呈现给用户 ----------------------------------------------------------------------------------------------- grep:--------------------文本搜索,搜索文件中的内容。支持正则表达式 。 grep 选项 被搜索文件------------ 17:Shell脚本: