学习目标:
Linux(持续更新)
学习方式:
知识的浏览者,网页的搬运工。
学习内容:
1、Linux 教程
2、Shell 教程
3、Linux 参考手册
1、Linux 教程
1.1 Linux 简介
1.1.1 Linux 的发行版
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
1.1.2 Linux 应用领域
服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
1.1.3 Linux vs Windows
目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows。
1.2 Linux 安装
Linux 安装的相关链接网址:
a.U盘安装linux操作系统
b.linux装机教程 linux安装系统步骤
c.Linux基础教程之Linux安装步骤详解
d.使用iso安装linux系统安装教程,史上最详细linux安装教程
1.3 Linux云服务器
云服务器(Elastic Compute Service, ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。
1.4 Linux 系统启动过程
1.5 Linux 系统目录结构
1.6 Linux 忘记密码解决方法
1.7 Linux 远程登录
Window 系统上 Linux 远程登录客户端有 SecureCRT, Putty(下载地址), SSH Secure Shell,FinalShell等。
1.8 Linux 文件基本属性
1.9 Linux 文件与目录管理
常用命令:
a.ll or ls :列出目录及文件名
ll -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
ll -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
ll -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
b. rm [-fir] 文件或目录:rm (移除文件或目录)
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
c.tail [-n number] 文件 or tail [- number n ] 文件:取出文件后面几行
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
备注:不指定number,默认的情况中,显示最后的十行!!!
1.10 Linux 用户和用户组管理
1.11 Linux 磁盘管理
1.12 Linux vi/vim
a.vi/vim 文件 进入命令模式(Command mode)
b.命令模式(Command mode) 按i 进入输入模式(Insert mode)
c.ESC,退出输入模式,切换到命令模式。在命令模式下按下:(英文冒号)就进入了底线命令模式。q 退出程序,w 保存文件。按enter结束。按ESC键可随时退出底线命令模式切换到命令模式。
1.13 Linux yum 命令
常用命令:
a.列出所有可更新的软件清单命令:yum check-update
b. 更新所有软件命令:yum update
c.仅安装指定的软件命令:yum install <package_name>
d.仅更新指定的软件命令:yum update <package_name>
e. 列出所有可安裝的软件清单命令:yum list
f.删除软件包命令:yum remove <package_name>
g.查找软件包命令:yum search
h.清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
1.14Linux apt 命令.
apt 常用命令:
a.列出所有可更新的软件清单命令:sudo apt update
b.升级软件包:sudo apt upgrade
c.列出可更新的软件包及版本信息:apt list --upgradeable
d.升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
e.安装指定的软件命令:sudo apt install <package_name>
f.安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
g.更新指定的软件命令:sudo apt update <package_name>
h.显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
i.删除软件包命令:sudo apt remove <package_name>
j.清理不再使用的依赖和库文件: sudo apt autoremove
k.移除软件包及配置文件: sudo apt purge <package_name>
l.查找软件包命令: sudo apt search
m.列出所有已安装的包:apt list --installed
n.列出所有已安装的包的版本信息:apt list --all-versions
2、Shell 教程
2.1 Shell 变量
2.1.1 Shell 数组
定义数组:数组名=(值1 值2 … 值n)
读取数组:${数组名[下标]}
获取数组的长度:
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}
Shell 注释:
#--------------------------------------------
# 这是一个注释
# author:菜鸟教程
# site:www.runoob.com
# slogan:学的不仅是技术,更是梦想!
#--------------------------------------------
##### 用户配置区 开始 #####
#
#
# 这里可以添加脚本描述信息
#
#
##### 用户配置区 结束 #####
多行注释:
:<<EOF
注释内容...
注释内容...
注释内容...
EOF
:<<'
注释内容...
注释内容...
注释内容...
'
:<<!
注释内容...
注释内容...
注释内容...
!
2.2 Shell 传递参数
2.3 Shell 数组
2.4 Shell 运算符
2.5 Shell echo命令
2.6 Shell printf命令
2.7 Shell test 命令
2.8 Shell 流程控制.
#if else-if else 语法格式:
if condition1 #condition 条件
then
command1 #command 命令行
elif condition2
then
command2
else
commandN
fi
#实例
a=10
b=20
if [ $a == $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
#实例
num1=$[2*3]
num2=$[1+5]
if test $[num1] -eq $[num2]
then
echo '两个数字相等!'
else
echo '两个数字不相等!'
fi
#for 循环
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
#实例
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
#while 语句
while condition
do
command
done
#实例
#!/bin/bash
int=1
while(( $int<=5 ))
do
echo $int
let "int++"
done
#无限循环
while :
do
command
done
#或者
while true
do
command
done
#或者
for (( ; ; ))
#until 循环
until condition
do
command
done
#实例
#!/bin/bash
a=0
until [ ! $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
done
#case ... esac
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
#实例
echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
1) echo '你选择了 1'
;;
2) echo '你选择了 2'
;;
3) echo '你选择了 3'
;;
4) echo '你选择了 4'
;;
*) echo '你没有输入 1 到 4 之间的数字'
;;
esac
#跳出循环
#break命令
#例
#!/bin/bash
while :
do
echo -n "输入 1 到 5 之间的数字:"
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
break
;;
esac
done
#continue
#实例
#!/bin/bash
while :
do
echo -n "输入 1 到 5 之间的数字: "
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的!"
continue
echo "游戏结束"
;;
esac
done
2.9 Shell 函数
2.10 Shell 输入/输出重定向
2.11 Shell 文件包含
3、Linux 参考手册
3.1 Linux 命令大全
3.2 Nginx 安装配置
Nginx 安装
系统平台:CentOS release 6.6 (Final) 64位。
一、安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
二、首先要安装 PCRE
PCRE 作用是让 Nginx 支持 Rewrite 功能。
1、下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
[root@bogon src]# cd /usr/local/src/
[root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

2、解压安装包:
[root@bogon src]# tar zxvf pcre-8.35.tar.gz
3、进入安装包目录
[root@bogon src]# cd pcre-8.35
4、编译安装
[root@bogon pcre-8.35]# ./configure
[root@bogon pcre-8.35]# make && make install
5、查看pcre版本
[root@bogon pcre-8.35]# pcre-config --version

安装 Nginx
1、下载 Nginx,下载地址:https://nginx.org/en/download.html
[root@bogon src]# cd /usr/local/src/
[root@bogon src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz

2、解压安装包
[root@bogon src]# tar zxvf nginx-1.6.2.tar.gz
3、进入安装包目录
[root@bogon src]# cd nginx-1.6.2
4、编译安装
[root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
[root@bogon nginx-1.6.2]# make
[root@bogon nginx-1.6.2]# make install
5、查看nginx版本
[root@bogon nginx-1.6.2]# /usr/local/webserver/nginx/sbin/nginx -v

到此,nginx安装完成。
Nginx 配置
创建 Nginx 运行使用的用户 www:
[root@bogon conf]# /usr/sbin/groupadd www
[root@bogon conf]# /usr/sbin/useradd -g www www
配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容
[root@bogon conf]# cat /usr/local/webserver/nginx/conf/nginx.conf
user www www;
worker_processes 2; #设置值和CPU核心数一致
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
#下面是server虚拟主机的配置
server
{
listen 80;#监听端口
server_name localhost;#域名
index index.html index.htm index.php;
root /usr/local/webserver/nginx/html;#站点目录
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
# access_log off;
}
location ~ .*\.(js|css)?$
{
expires 15d;
# access_log off;
}
access_log off;
}
}
检查配置文件nginx.conf的正确性命令:
[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx -t

启动 Nginx
Nginx 启动命令如下:
[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx

访问站点
从浏览器访问我们配置的站点ip:
图片
Nginx 其他命令
以下包含了 Nginx 常用的几个命令:
/usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx
3.3 MySQL 安装配置
MySQL 安装
本教程的系统平台:CentOS release 6.6 (Final) 64位。
一、安装编译工具及库文件
yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel
二、 安装cmake 编译器
1、下载地址:http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
$ wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
2、解压安装包
$ tar zxvf cmake-3.1.1.tar.gz
3、进入安装包目录
$ cd cmake-3.1.1
4、编译安装
$ ./bootstrap
$ make && make install
三、安装 MySQL
1、下载地址: http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
2、解压安装包.
$ tar zxvf mysql-5.6.15.tar.gz
3、进入安装包目录
$ cd mysql-5.6.15
4、编译安装
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_INNODB_MEMCACHED=1 -DWITH_DEBUG=OFF -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=ON -DMYSQL_MAINTAINER_MODE=OFF -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DMYSQL_TCP_PORT=3306
$ make && make install
5、查看mysql版本
$ /usr/local/webserver/mysql/bin/mysql --version
MySQL 配置
1、创建mysql运行使用的用户mysql
$ /usr/sbin/groupadd mysql
$ /usr/sbin/useradd -g mysql mysql
2、创建binlog和库的存储路径并赋予mysql用户权限
$ mkdir -p /usr/local/webserver/mysql/binlog /www/data_mysql
$ chown mysql.mysql /usr/local/webserver/mysql/binlog/ /www/data_mysql/
3、创建my.cnf配置文件
将/etc/my.cnf替换为下面内容
$ cat /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/webserver/mysql
datadir = /www/data_mysql
log-error = /usr/local/webserver/mysql/mysql_error.log
pid-file = /usr/local/webserver/mysql/mysql.pid
open_files_limit = 65535
back_log = 600
max_connections = 5000
max_connect_errors = 1000
table_open_cache = 1024
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 600
#thread_concurrency = 8
query_cache_size = 128M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
default-tmp-storage-engine=MYISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 128M
max_heap_table_size = 128M
log-slave-updates
log-bin = /usr/local/webserver/mysql/binlog/binlog
binlog-do-db=oa_fb
binlog-ignore-db=mysql
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
relay-log-index = /usr/local/webserver/mysql/relaylog/relaylog
relay-log-info-file = /usr/local/webserver/mysql/relaylog/relaylog
relay-log = /usr/local/webserver/mysql/relaylog/relaylog
expire_logs_days = 10
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
interactive_timeout = 120
wait_timeout = 120
skip-name-resolve
#master-connect-retry = 10
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
#master-host = 192.168.1.2
#master-user = username
#master-password = password
#master-port = 3306
server-id = 1
loose-innodb-trx=0
loose-innodb-locks=0
loose-innodb-lock-waits=0
loose-innodb-cmp=0
loose-innodb-cmp-per-index=0
loose-innodb-cmp-per-index-reset=0
loose-innodb-cmp-reset=0
loose-innodb-cmpmem=0
loose-innodb-cmpmem-reset=0
loose-innodb-buffer-page=0
loose-innodb-buffer-page-lru=0
loose-innodb-buffer-pool-stats=0
loose-innodb-metrics=0
loose-innodb-ft-default-stopword=0
loose-innodb-ft-inserted=0
loose-innodb-ft-deleted=0
loose-innodb-ft-being-deleted=0
loose-innodb-ft-config=0
loose-innodb-ft-index-cache=0
loose-innodb-ft-index-table=0
loose-innodb-sys-tables=0
loose-innodb-sys-tablestats=0
loose-innodb-sys-indexes=0
loose-innodb-sys-columns=0
loose-innodb-sys-fields=0
loose-innodb-sys-foreign=0
loose-innodb-sys-foreign-cols=0
slow_query_log_file=/usr/local/webserver/mysql/mysql_slow.log
long_query_time = 1
[mysqldump]
quick
max_allowed_packet = 32M
4、初始化数据库
$/usr/local/webserver/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
显示如下信息:
Installing MySQL system tables...2015-01-26 20:18:51 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
OK
Filling help tables...2015-01-26 20:18:57 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
OK
...
5、创建开机启动脚本
$ cd /usr/local/webserver/mysql/
$ cp support-files/mysql.server /etc/rc.d/init.d/mysqld
$ chkconfig --add mysqld
$ chkconfig --level 35 mysqld on
6、启动mysql服务器
$ service mysqld startmysql4
7、连接 MySQL
$ /usr/local/webserver/mysql/bin/mysql -u root -pmysql5
修改MySQL用户密码
mysqladmin -u用户名 -p旧密码 password 新密码或进入mysql命令行SET PASSWORD FOR ‘用户名’@‘主机’ = PASSWORD(‘密码’);
创建新用户并授权:grant all privileges on . to 用户名@’%’ identified by ‘密码’ with grant option;
其他命令
启动:service mysqld start
停止:service mysqld stop
重启:service mysqld restart
重载配置:service mysqld reload
学习时间:
2022.01.16——2022.01.20学习产出:
1、 技术笔记1篇
2、了解Linux博客若干篇
3、 学习Linux官网知识
2万+

被折叠的 条评论
为什么被折叠?



