Linux快捷键
ctrl + L 清屏
ctrl + U 删除光标前字符 ***
ctrl + K 删除光标后字符
ctrl + A 光标移动行首 ***
ctrl + E 光标移到行末 ***
ctrl + 左右箭头 光标移动到上/下一个单词
ctrl + C 结束当前正在运行的进程
ctrl + Z 将当前正在运行的进程调到后台并挂起它(即暂停执行)
ctrl + B 光标移动到前一个字符
ctrl + F 光标移动到后一个字符
常用命令
1.mkdir /data 新建目录
-p 创建多级目录
2.ls /data/ 显示目录 list
ls -l /data/ 显示目录详细信息
3.cd /data/ change directory
4.pwd 显示当选所在位置 print working directory
5.touch /data/a.txt 创建文件 修改文件的时间戳
6.vi/vim操作: 编辑文件
vi 文件 打开文件
i 插入模式
esc 退出编辑
:wq 保存退出 :q! :x 退出
yy 复制(前面可以加数字)
p 粘贴(前面可以加数字)
dd 删除/剪贴(前面可以加数字)
u 撤销
dG 光标所在行到尾行 删除
G 移动光标到尾行
gg 移动光标到首行
Ctrl + V 批量操作 然后上下左右箭头选择 操作
:set nu 显示行号
:set nonu 隐藏行号
7.cat 显示文件内容
8.cp 文件位置 目的地位置 复制
cp a a.bak 备份文件
9.man 命令名 查看命令的帮助
10.mv 1 2 移动文件
11.rm 删除文件或目录
-r 递归删除
-f 强制删除且不提示
12.find | xargs 查找
-type f(file)或者d(dir)
-name 名字,支持通配符
例 find /root/ -type f -name "*.txt" |xargs ls -l
13.grep 'xxx' 过滤xxx
-v 排除过滤
14.head -2 显示前两行的内容(默认10行)
15.tail -2 显示末尾两行(默认10行)
-f 实时显示文件的更新
16.sed 取某行
-n 取消默认输出
-i 修改文件内容
17.tar 压缩和解压缩
-c 压缩
-x 解压
-v 显示执行明细
-z 是否使用gzip压缩
-f 指定压缩文件的名称
tar zcf /压缩后 /file 压缩
tar tf /压缩包 查看
tar xf /压缩包 解压
z=== gzip
c=== create
f=== file
t===list
常用符号
; 多个命令的分隔符
/ 根目录或路径分隔符
重定向,数据沿箭头方向流动,原来文件内容会被丢弃
追加重定向,在原来文件结尾追加内容
.. 上一级目录
. 当前目录
~ 用户家目录
|管道 通过管道把前一个命令的输出交给后一个命令继续处理。
{} 配合echo打印序列echo {1..10}
PATH 环境变量,所有包含在环境变量里面的路径,都可以直接敲出来执行。
全局生效/etc/profile 普通用户生效/.bash_profile或者/.bashrc
重定向:在Linux里经常使用,意思是将数据流重新定向。
或1> 标准输出重定向:把流向标准输出的数据重新定位到后边的文件中,文件原本内容被丢弃
或1>> 标准输出追加重定向:把流向标准输出的数据重新定位到后边的文件结尾处,在其尾部添加数据。文件原本内容不会被丢弃
<或<0 标准输入重定向:把源数据流从标准输入重定向到其它文件,覆盖原来数据
<<或<<0 标准输入追加重定向:把源数据流从标准输入重定向到其它文件,不覆盖原来数据,在后面追加
2> 标准错误重定向:把流向标准错误的数据重新定位到后边的文件中,文件原本内容被丢弃
2>> 标准错误追加重定向:把流向标准错误的数据重新定位到后边的文件文件结尾处,在其尾部添加数据。文件原本内容不会被丢弃
标准输入,标准输出,标准错误是Linux内核给每一个进程打开的三个文件,其文件描述符分别为0,1,2
Linux shell中单引号,双引号以及不加引号的区别
单引号:
可以说是所见即所得,即将单引号内的内容原样输出
双引号:
把双引号内的内容输出出来,如果内容中有命令,变量等,会先把变量,命令解析出结果,然后在输出最终内容。双引号内命令或变量的写法为命令或变量
或$(命令或变量)。
无引号:
把内容输出出来,可能不会将含有空格的字符串视为一个整体输出,如果内容中有命令,变量等,会先把变量,命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要加引号,一般连续的字符串,数字,路径等可以用,不过最好用引号替代之。
Linux软件安装方式
yum安装
# 1.更改安装来源 https://opsx.alibaba.com/mirror
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 2.yum安装新软件
yum install -y tree bash-completion wget vim
rpm安装
# mount 给 /dev/cdrom 创建一个入口 /mnt/
mount /dev/cdrom /mnt/
cd /mnt/
# ls -l 缩写为ll
ll /mnt/
# rpm查找软件
ll /mnt/Packages/telnet-0.17-64.el7.x86_64.rpm
# rpm安装软件
rpm -ivh /mnt/Packages/bash-completion-2.1-6.el7.noarch.rpm
# 删除软件 rpm -e 软件名称
注意:
rpm -qa 后面要跟上包的名字才能搜索到
-qa = query all
比如,rpm -qa http 搜不到,是因为包的名字叫做 httpd
rpm -qa | grep 是把搜索到的全部包的名字交给 grep 去过滤,只要包含那个字符串就会被显示出来
安装Nginx前提
关闭selinux
cp /etc/selinux/config /etc/selinux/config.bak 先备份
# 永久修改SELINUX并显示结果,下次重启服务器生效
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
cat /etc/selinux/config 查看修改结果
# 临时修改SELINUX并显示结果,下次重启服务器生效
setenforce 0 # 修改状态
getenforce # Permissive 结果正确
关闭防火墙
systemctl 管理服务
#查询防火墙状态
systemctl status firewalld.servic
#当前正在运行的防火墙 --- 临时
systemctl stop firewalld.service(关闭)
systemctl start firewalld.service (打开)
#让防火墙不会开机自启动 --- 永久
systemctl disable firewalld.service(禁止启动)
systemctl enable firewalld.service (自启动)
#is-active 是否正在运行
#systemctl is-active firewalld.service
#is-enabled 是否开机自启动
#systemctl is-enabled firewalld.service
定时任务
crond 定时任务
crontab -l
-l list 查看
crontab -e
-e edit 编辑
-r delete 删除
# 每两分钟同步一次系统时间
*/2 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
# 修改系统时间
date -s "20180101"
# 同步服务器时间
ntpdate ntp[1-7].aliyun.com
Nginx安装
# 安装nginx
# 下载
wget http://nginx.org/download/nginx-1.12.2.tar.gz
# 解压
tar xf nginx-1.12.2.tar.gz
cd nginx-1.12.2
# 安装依赖
yum install pcre-devel openssl-devel -y
#编译安装三部曲 :1 ./configure 2 make 3 make install
# 第一步
./configure --prefix=/application/nginx-1.12.2 --with-http_stub_status_module --with-http_ssl_module
# 第二步
make
# 第三步
make install
echo $? # 检查上一条命令的执行结果 返回0 表示正确
#检查语法
/application/nginx-1.12.2/sbin/nginx -t
#启动nginx
/application/nginx-1.12.2/sbin/nginx
/application/nginx-1.12.2/sbin/nginx -s reload
对比两个文件区别
diff conf/nginx.conf conf/nginx.conf.default # 没区别
egrep -v "#|^$" /application/nginx-1.12.2/conf/nginx.conf.default >/application/nginx-1.12.2/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 { #一个server相当于是一个网站 虚拟主机
listen 80; #监听的端口
server_name www.etiantian.org; #网站名字 域名
location / {
root html; #根 站点的根目录
index index.html index.htm; #首页文件
}
}
}
other
连不上IP解决方案
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network
获取IP
dhcclient
查看网关
ip r
快捷键
esc + . 上个命令最后一个文件
查找目录
which ntpdate
从根下找
find / -type f -name "ntpdate"
显示命令的绝对路径
which ntpdate
/usr/sbin/ntpdate
find / -type f -name "ntpdate"
/etc/sysconfig/ntpdate
/usr/sbin/ntpdate