开机会自动执行的脚本:
/etc/rc.local -> rc.d/rc.local (这是自定义的开机初始化)
实际上,所有开机先运行的全在/etc/rc.d下,比如/etc/rc.d/init.d/network启动网络
注意给 rc.d/rc.local 执行权限
-----------------------------------------------------------------------------------
查看文件md5:
md5sum filename
执行命令,前边执行成功,后面才执行:
--------------------------------------------------------------------------
查看目录占用空间大小
du -sh ./*
查看进程占用内存
while true;do clear;date;ps aux|grep clamscan|grep -v grep|awk '{print $6/1024 "M" "\t" $0}';sleep 1;done
----------------------------------------------------------------------------------------
export 环境变量相关操作:
export -p //列出当前的环境变量值
# export MYENV=7 //定义环境变量并赋值
-------------------------------------------------------------------------------------------------------------------------
更改hostname
hostname -b test1
-----------------------------------------------------------------------------------------------------------------------
curl
获取公网地址:
curl ipinfo.io
curl -H "Content-Type: application/json" -X POST -d '{"user_id": "123", "coin":100, "success":1, "msg":"OK!" }' "http://192.168.0.1:8001/test"
参数 内容
-H 请求头
-d POST内容
-X 请求协议
-------------------------------------------------------------------------------------------------------------------------
kill -15 优雅退出
------------------------------------------------------------------------------------------------------
git 常用:
gitlab回退到指定的commit版本,并覆盖当前
1、切换至指定的commit版本
git reset --hard 281768597f8ec26610a90f3040762317808e24fd
2、强制更新,覆盖当前master,去掉之后的提交
git push origin master --force
-----------------------------------------------------------------------------------------------------------
yum install screen
screen -S vbaupdate 开启一个名字为vbaupdate的screen
screen -ls 查看screen
screen -r 12607.vbaupdate 连接某个screen
ctrl+a+d 从连接了的screen里退出
-------------------------------------------------------------------------------------------------------
追加文件内容:
cat >>/root/test/append<<EOF
c
EOF
把字母c追加到/root/test/append
追加多行内容到文件:
echo -e "a\nb\nc">>/root/test/append
-----------------------------------------------------------------------------------------------------------------------
ssh:
ssh-keygen -t rsa -P '' 一路回车生成公私密钥
ssh-copy-id copy密钥到远程主机
ssh-copy-id root@node02
ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限
netstat
netstat -anp 查看所有端口
--------------------------------------------------------------------------------------
grep -r "vs" ./
搜索目录下所有文件,在文件内容里找vs这个字符串
-------------------------------------------------------------------------------------
vi 搜索替换
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
vi windows下回车换行到Linux报错:
:set ff=unix
---------------------------------------------------------------------
查看linux所有用户:
用户:/etc/passwd,/etc/shadow,/etc/group
compgen -u
cat /etc/passwd
filebeat:x:996(uid):1000(gid)::/home/filebeat(家目录):/sbin/nologin
id filebeat
uid=996(filebeat) gid=1000(filebeat) groups=1000(filebeat),4(adm)(逗号分隔的组)
添加用户:
添加一个登录用户:
useradd -m testuser (-m 表示登录用户)
passwd testuser
visudo 添加sudo免密
useradd -u 1001 elk
id elk
uid=1001(elk) gid=1001(elk) groups=1001(elk)
passwd elk
groupadd redis
useradd -r -g redis -s /sbin/nologin redis
查看所有用户:
cat /etc/passwd
查看所有组:
/etc/group
查明密码加密文件
/etc/shadow
永久性删除用户账号
userdel peter
groupdel peter
ansible批量添加用户:
vi user_list.txt
username:password:uid:gid:description Account:/home/username:/bin/bash
newusers user_list.txt
密码会自动加密
ansible批量操作:
ansible all-linux -m shell -a " newusers /opt/user.txt "
ansible all-linux -m shell -a "cd /opt;rm -f user.txt "
----------------------------------------------------------------------------------------------------------------------
sudo
切换用户执行命令
免密码sudo,配置/etc/sudoers文件
使用visudo 命令进行编辑
sudo -s 进入root环境shell
---------------------------------------------------------------------------------------------------------------------------
查找文件
find / -name "dump.rdb"
---------------------------------------------------------------------------------------------------------
nohup
nohup command >> test.log 2>&1 &
---------------------------------------------------------------------------------------------
yum清缓存
yum clean all
yum provides fuser,查看命令是由哪个包提供的
psmisc-22.20-17.el7.x86_64 : Utilities for managing processes on your system(包名)
Repo : base
Matched from:
Filename : /usr/sbin/fuser
然后 sudo yum install psmisc 就可以安装了
yum,rpm | |
yum list installed 查看机器上已经用yum安装了的包 | |
rpm -ql mysql 查看yum安装位置 | |
yum repolist all 查看yum源列表 | |
yum grouplist 查看已安装和可安装的工具包group | |
(?centos的一些版本没有源 | |
yum install epel-release | |
ls -lah /etc/yum.repos.d/ | |
(?rpm -e epel-release | |
如果ls -lah /etc/yum.repos.d/找不到epel源,说明之前有安装脏 | |
需要rpm -e epel-release | |
再yum install epel-release | |
) | |
yum remove mod_wsgi yum删除 | |
rpm: | |
-e, --erase=<package>+ erase (uninstall) package 删除 | |
-i, --install install package(s) 安装 | |
-v, --verbose provide more detailed output | |
-h, --hash print hash marks as package installs (good with -v) | |
-l, --list list files in package(with -q) | |
-U, --upgrade=<packagefile>+ upgrade package(s) 升级 | |
-a, --all query/verify all packages | |
-q 查询 | |
安装,升级,删除,查询可组合其他命令选项使用,例子: | |
rpm -q logstash 查看某个包是否被安装 | |
rpm -qa logstash 列出所有已安装的rpm包 | |
rpm -ql mysql 查看安装位置 | |
rpm -ivh logstash-2.1.1-1.noarch.rpm 安装某个rpm软件包 | |
rpm -Uvh logstash-2.1.1-1.noarch.rpm 升级某个rpm包 | |
rpm -e epel-release 卸载某个已用rpm方式安装的软件 |
翻页查看:
使用命令rpm -ql kernel-headers-3.10.0-957.21.2.el7.x86_64|less查看安装目录,因安装目录太多故后面加less方便翻页查看
----------------------------------------------------------------------------------------------
fuser -v -m /data
查看 /data目录,被哪些进程占用
sudo lsof /data
lsof 查看目录被哪些程序占用
------------------------------------------------------------------------------
scp
scp elasticsearch-7.16.2-x86_64.rpm username@ip address:/home
----------------------------------------------------------------------------------------------
tips:
While another partition would be located at D:\ on Windows, this other partition would appear in another folder under / on Linux.:
https://www.howtogeek.com/117435/htg-explains-the-linux-directory-structure-explained/
trap命令,定义接受信号后的行为
------------------------------------------------------------------------------------------------
sed 文本编辑
sed -i 直接操作指定文件|-e输出到标准输出 '行号 要做的动作' 要操作的文件
替换指定行的内容:
sed -i '134 s/localhost/192.168.102.155/g' filebeat.yml
每一行开头加上sudo:
sed -i 's/^/sudo &/g' filebeat.sh (^表示开头)
4 行之后追加 2 行:
sed -e '4 a newline\nnewline2' testfile
--------------------------------------------------------------------------
脚本:
获取eth0的ip地址
ifconfig eth0 | grep inet|grep -v inet6 |awk '{print $2}'
ip=$(ifconfig eth0 | grep inet|grep -v inet6 |awk '{print $2}') #shell中把命令结果赋值给变量 变量名=$(要执行的命令)
echo $ip #使用变量
sed -i "134 s/localhost/$ip/g" /opt/filebeat.yml #双引号可以做变量替换,单引号不行
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
进程:
查看某个进程下的线程:
ps -T -p 进程pid
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
常用命令:
获取帮助的地方,优先级从上到下: | |
--help命令(脚本或命令 --help) | |
脚本里的注释 | |
程序自带文档 | |
man 脚本名 | |
压缩与解压缩: | |
安装: | |
apt-get install rar unrar | |
wget http://www.rarlab.com/rar/rarlinux-x64-5.4.0.tar.gz | |
tar -zxvf rarlinux-x64-5.4.0.tar.gz | |
cd rar | |
make | |
使用 | |
unrar x 文件名 | |
程序运行: | |
一。& 最经常被用到 | |
这个用在一个命令的最后,可以把这个命令放到后台执行 | |
二。ctrl + z | |
可以将一个正在前台执行的命令放到后台,并且暂停 | |
三。jobs | |
查看当前有多少在后台运行的命令 | |
四。fg | |
将后台中的命令调至前台继续运行 | |
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid) | |
五。bg | |
将一个在后台暂停的命令,变成继续执行 | |
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid) | |
例如: | |
不间断在后台运行守护进程 | |
nohup php test.php > xxx.log 2>&1 & | |
0 stdin 标准输入 | |
1 stdout 标准输出 | |
2 stderr 标准错误 | |
> 重定向符 | |
crontab: | |
* * * * * | |
MINUTES Minutes in one hour (0-59) | |
HOURS Hours in one day (0-23) | |
DAYMONTH Day in a month (1-31) | |
MONTH Month in a year (1-12) | |
DAYWEEK Day of the week (0-7) where 0 and 7 are sunday | |
If you want to schedule your build every 5 minutes, this will do the job : */5 * * * * | |
If you want to schedule your build every day at 8h00, this will do the job : 0 8 * * * | |
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。 | |
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” | |
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” | |
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段, | |
表示每十分钟执行一次。 | |
例如,周二到周四每隔两小时的第3和第15分钟执行 | |
命令:3,15 /2 * 2-4 | |
yum,rpm | |
yum list installed 查看机器上已经用yum安装了的包 | |
rpm -ql mysql 查看yum安装位置 | |
yum repolist all 查看yum源列表 | |
yum grouplist 查看已安装和可安装的工具包group | |
(?centos的一些版本没有源 | |
yum install epel-release | |
ls -lah /etc/yum.repos.d/ | |
(?rpm -e epel-release | |
如果ls -lah /etc/yum.repos.d/找不到epel源,说明之前有安装脏 | |
需要rpm -e epel-release | |
再yum install epel-release | |
) | |
yum remove mod_wsgi yum删除 | |
rpm: | |
-e, --erase=<package>+ erase (uninstall) package 删除 | |
-i, --install install package(s) 安装 | |
-v, --verbose provide more detailed output | |
-h, --hash print hash marks as package installs (good with -v) | |
-l, --list list files in package(with -q) | |
-U, --upgrade=<packagefile>+ upgrade package(s) 升级 | |
-a, --all query/verify all packages | |
-q 查询 | |
安装,升级,删除,查询可组合其他命令选项使用,例子: | |
rpm -q logstash 查看某个包是否被安装 | |
rpm -qa logstash 列出所有已安装的rpm包 | |
rpm -ql mysql 查看安装位置 | |
rpm -ivh logstash-2.1.1-1.noarch.rpm 安装某个rpm软件包 | |
rpm -Uvh logstash-2.1.1-1.noarch.rpm 升级某个rpm包 | |
rpm -e epel-release 卸载某个已用rpm方式安装的软件 | |
安装: | |
安装rz sz: | |
yum install lrzsz | |
环境配置 | |
系统相关 | |
set命令显示当前shell的变量,包括当前用户的变量; | |
env命令显示当前用户的变量; | |
export命令显示当前导出成用户变量的shell变量。 | |
echo $PATH | |
which python | |
ln -s /usr/local/bin/python2.7 /usr/bin/python | |
(把后者链到前者,使用后者实际上就是使用前者,再比如/data有空间 /opt无空间 就可以 ln -s /data/storage /opt/storage | |
当向/opt/storage里写入时 实际上就是向/data/stroage里写入 | |
) | |
vim .bashrc | |
export GOPATH=$HOME/go //the go path | |
vim /etc/profile文件 (全局所有用户) | |
export GOPATH=$HOME/go | |
编辑完/etc/profile文件后,需要执行 source /etc/profile 使之生效 | |
语言举例: | |
whereis java | |
which java (java执行路径) | |
go语音相关: | |
go env //the go language env | |
php环境查看 | |
可echo出phpinfo()这个函数 | |
php环境配置 | |
cd php-5.6.11/ext/zip | |
/data1/php/bin/phpize | |
./configure --with-php-config=/data1/php/bin/php-config | |
apache相关 | |
apachectl -V //查看编译设置 | |
配置JAVA_HOME举例 | |
查看rpm方式安装的程序路径: | |
[root@i-be9r027r jvm]# rpm -qa | grep java | |
java-1.8.0-openjdk-1.8.0.51-1.b16.el6_7.x86_64 | |
java-1.8.0-openjdk-headless-1.8.0.51-1.b16.el6_7.x86_64 | |
java-1.7.0-openjdk-1.7.0.91-2.6.2.2.el6_7.x86_64 | |
tzdata-java-2015f-1.el6.noarch | |
[root@i-be9r027r jvm]# | |
[root@i-be9r027r jvm]# rpm -ql java-1.7.0-openjdk | |
推导安装路径: | |
[root@i-be9r027r jvm]# which java | |
/usr/bin/java | |
[root@i-be9r027r jvm]# ls -lah /usr/bin/java | |
lrwxrwxrwx 1 root root 22 Jan 14 19:34 /usr/bin/java -> /etc/alternatives/java | |
[root@i-be9r027r jvm]# ls -lah /etc/alternatives/java | |
lrwxrwxrwx 1 root root 46 Jan 14 19:34 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java | |
编辑/etc/profile文件 | |
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64/jre (这个机器应该有调整,JDK的路径较怪异) | |
执行source /etc/profile命令 | |
echo $JAVA_HOME 验证是否配置成功 | |
ssh | |
1.在A机下生成公钥/私钥对。 | |
[chenlb@A ~]$ ssh-keygen -t rsa -P '' | |
2.把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,我用scp复制。 | |
[chenlb@A ~]$ scp .ssh/id_rsa.pub chenlb@192.168.1.181:/home/chenlb/id_rsa.pub | |
3.B机把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。 | |
[chenlb@B ~]$ cat id_rsa.pub >> .ssh/authorized_keys (这一步有可能加入文件内后,没有换行,导致不生效,注意检查) | |
[chenlb@B ~]$ chmod 600 .ssh/authorized_keys (这一步不要忘了) | |
脚本: | |
for i in 1 2 3;do ssh-keygen -t rsa -P '';echo $i;scp .ssh/id_rsa.pub root@xx.xx.xx.$i:/root/id_rsa.pub; | |
ssh xx.xx.xx.$i "cat /root/id_rsa.pub >> .ssh/authorized_keys";echo $i;done | |
ssh非密码形式,文件钥形式: | |
ssh -i ~/.ssh/keyfile root@xxx.xxx.xxx.xxx | |
提示Enter passphrase for key时解决: | |
http://www.cnblogs.com/lovingprince/archive/2011/08/04/2166213.html | |
------------------------------------------------------------------------------------------------ | |
centos: | |
CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。 | |
1、原来的 service 命令与 systemctl 命令对比 | |
daemon命令 systemctl命令 说明 | |
service [服务] start systemctl start [unit type] 启动服务 | |
service [服务] stop systemctl stop [unit type] 停止服务 | |
service [服务] restart systemctl restart [unit type] 重启服务 | |
此外还是二个systemctl参数没有与service命令参数对应 | |
status:参数来查看服务运行情况 | |
reload:重新加载服务,加载更新后的配置文件(并不是所有服务都支持这个参数,比如network.service) | |
应用举例: | |
#启动网络服务 | |
systemctl start network.service | |
#停止网络服务 | |
systemctl stop network.service | |
#重启网络服务 | |
systemctl restart network.service | |
#查看网络服务状态 | |
systemctl status network.serivce | |
2、原来的chkconfig 命令与 systemctl 命令对比 | |
2.1、设置开机启动/不启动 | |
daemon命令 systemctl命令 说明 | |
chkconfig [服务] on systemctl enable [unit type] 设置服务开机启动 | |
chkconfig [服务] off systemctl disable [unit type] 设备服务禁止开机启动 | |
--------------------------------------------------------------------------------------------------- | |
跟踪 | |
tcpdump -i bond0 port 8085 -s 0 -w - | strings | |
strace -p pid we can get the process run infometion | |
常用命令 | |
groupadd hadoop | |
useradd hadoop -g hadoop | |
scp | |
“scp”调用SSH进行登录,然后拷贝文件,最后调用SSH关闭这个连接。 | |
scp -i ~/.ssh/dev-key .ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:/root/id_rsa.pub(文件钥形式) | |
scp .ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:/home/sk77/id_rsa.pub(密码形式) | |
kill | |
kill -term(-15) 关闭程序,给程序资源回收的机会和时间 | |
kill -kill(-9) 直接强制杀死 | |
kill -0 Check access to pid 通常可在编写脚本时使用,用以检查进程是否运行 | |
参考文档:http://www.cyberciti.biz/faq/unix-kill-command-examples/ | |
通常,应该发送15,等一两秒钟,如果没效果,发送2,如果还不行,发送1。如果还不行,那你应该把那个程序删掉,因为那个程序写的太烂了! | |
不要使用kill -9。不要用收割机来修剪花盆里的花。 | |
总之,在使用kill -9前,你应该先使用kill -15,给目标进程一个清理善后工作的机会。(进程也许无法捕捉或直接忽略SIGKILL信号,但它们可以, | |
通常也是能够捕捉SIGTERM信号的。)如果你不留机会让进程完成清理工作,它们会留下一些不完整的文件或状态,当系统重启时, | |
程序将无法理解这些状态。 | |
strace/truss,ltrace和gdb都是查看一个卡住的进程因何卡住的好工具。(Solaris里的truss -u非常好用;)Solaris里还有一些 | |
非常有用的/proc相关的工具,有一些已经被移植到了Linux上。 | |
所谓的将程序重启,比如logstash,也就是 | |
stop && start,也就是 | |
kill -15 pid && /opt/logstash/bin/logstash agent -f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS} | |
nohup,screen,& 三者的用法: | |
1.当交互bash退出的时候,比如exit或logout,它会发送SIGHUP到它的所有作业,作业下的所有子进程都会收到SIGHUP。 | |
2.当终端挂断的时候,终端驱动会发送SIGHUP到它的控制进程,通常我们登录后控制进程就是bash,它收到SIGHUP,然后退出,退出的过程参1 | |
3.显然不想让一个进程被bash发送的SIGHUP中止通常用三种方法: | |
a.自己处理SIGHUP | |
b.忽略SIGHUP(用nohup命令或disown -h) | |
c.脱离交互bash的作业(比如用disown,在脚本中发起后台命令,在nestedsubshell中发起后台命令) | |
在交互bash里使用了&的启动命令,和在脚本里使用&的启动命令一样吗?现在确定的是,在脚本里启动,就属于后台启动了,不属于当前运行脚本的 | |
交互bash了。那直接在当前交互bash里,使用了&的命令呢? | |
当一个会话的终端中断后,系统只会给当前会话的前台进程组发送SIGHUP信号,如果启动进程时,让进程在后台去执行,也是执行的时候后面加一个&, | |
也可以自己去重定向输入输出,会话的终端中断时,后台的进程组是不会收到SIGHUP信号,也就不会被系统kill掉(再揣摩实验下,用./bin/kibana & | |
实验了一下,只用&,在终端里不是在脚本里,看终端关闭后,kibana进程是不是还在运行。测试结果,关闭终端后,只用&,kibana进程仍然运行) | |
screen应该是和在脚本里使用&一个道理,都是后台启动。screen的好处是可以调出查看。nohup就是忽略SIGHUP了。 | |
---------------------------------------------------------------------------------------------------------------------- | |
网络: | |
ifconfig | |
ping | |
telnet | |
nslookup | |
节点(node):具有ip的设备 | |
server | |
client | |
网卡 | |
网口: eth0 ,lo等 | |
拓扑 | |
路由 | |
网关 :具有两个以上的网络接口, 可以连接两个以上不同的网段的设备 | |
局域网LAN 内网 | |
广域网WAN 外网 | |
TCP/IP: | |
链路层: | |
LAN:Ethernet | |
WAN: | |
arp(ip地址与MAC地址的对应,mac地址网卡出厂时就会设定唯一的) | |
mac数据包,网络上数据传输的最小单位,MAC数据包跨过路由器,经过不同的网域,那么来源与目的的硬件地址(mac地址)就会跟着改变 | |
mac地址可由ifconfig命令查看 | |
网络层: | |
IP: | |
ip数据包内容: | |
TTL: IP 封包通过一个路由器时, TTL 就会减一,当 TTL 为 0 时,这个封包将会被直接丢弃 | |
来源地址ip | |
目的地址ip | |
协议Protocol:TCP,UDP,ICMP等 | |
IP (Internet Protocol) 其实是一种网络封包,而这个封包的表头最重要的就是那个32位的来源与目标地址! | |
为了方便记忆,所以我们也称这个 32 bits 的数值为 IP 网络地址就是了, | |
常用的是点分十进制记法,如127.0.0.1,192.168.0.1 | |
最小:0.0.0.0 最大255.255.255.255 | |
ip可以分Net_ID(网段号码)与Host_ID(主机号码)两部分 | |
同一个网域的定义是『在同一个物理网段内,主机的 IP 具有相同的 Net_ID ,并且具有独特的 Host_ID』, | |
那么这些 IP 群就是同一个网域内的 IP 网段啦! | |
什么是物理网段呢?当所有的主机都是使用同一个网络媒体串在一起, 这个时候这些主机在实体装置上面其实是联机在一起的, | |
那么就可以称为这些主机在同一个物理网段内了! | |
同时并请注意,同一个物理网段之内,可以依据不同的 IP 的设定,而设定成多个『IP 网段』 | |
Host_ID 在二进制的表示法当中,全为 0 表示整个网段的地址 (Network IP),而全为 1 则表示为广播的地址 (Broadcast IP) | |
同网段可透过 IP 广播传递数据(通过CSMA/CD走MAC) | |
在同一个物理网段之内,如果两部主机设定成不同的 IP 网段,则由于广播地址的不同,导致无法透过广播的方式来进行联机。 | |
此时得要透过路由器 (router) 来进行沟通才能将两个网域连结在一起。 | |
五种IP分级在十进制的表示: | |
Class A : 0.xx.xx.xx ~ 127.xx.xx.xx | |
Class B : 128.xx.xx.xx ~ 191.xx.xx.xx | |
Class C : 192.xx.xx.xx ~ 223.xx.xx.xx | |
Class D : 224.xx.xx.xx ~ 239.xx.xx.xx | |
Class E : 240.xx.xx.xx ~ 255.xx.xx.xx | |
内网,局域网:( | |
IPv4地址分为A、B、C、D、E五类,出去特殊作用的D、E两类,剩下的A、B、C三类地址是我们常见的IP地址段。 | |
A类地址的容量最大,可以容纳16777214个主机,B类地址可以容纳65534个主机,C类地址可以容纳254个主机。 | |
在这三类地址中,绝大多数的IP地址都是公有地址,需要向国际互联网信息中心申请注册。但是在IPv4地址协议中预留了3个IP地址段, | |
作为私有地址,供组织机构内部使用。 | |
这三个地址段分别位于A、B、C三类地址内: | |
A类地址:10.0.0.0--10.255.255.255 | |
B类地址:172.16.0.0--172.31.255.255 | |
C类地址:192.168.0.0--192.168.255.255 | |
所以局域网在选取使用私有地址时,一般会按照实际需要容纳的主机数来选择私有地址段。 | |
常见的局域网由于容量小,一般选择C类的192.168.0.0作为地址段使用,一些大型企业就需要使用B类甚至A类地址段作为内部网络的地址段。 | |
) | |
路由器: | |
连接不同网段的设备 | |
ICMP(ping命令与tracert命令使用该协议) | |
传输层: | |
TCP | |
UDP | |
应用层: | |
HTTP | |
DNS | |
SSH | |
telnet | |
NFS | |
FTP | |
SMTP | |
POP3 | |
CSMA/CD(同网段时): | |
多点传输 (Multiple Access): | |
我的计算机明明没有被入侵,为何我的数据会被隔壁的计算机窃取? | |
就因为多点传送,原本其他node收到数据不是给它的就丢弃, | |
但它为了窃取,利用监听软件把该丢弃的数据收集下来了 | |
ip:http://os.51cto.com/art/201406/441461.htm | |
内核: | |
modprobe命令用于智能地向内核中加载模块或者从内核中移除模块。 modprobe可载入指定的个别模块,或是载入一组相依的模块。 | |
modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。 | |
语法 modprobe(选项)(参数) | |
选项 -a或--all:载入全部的模块; | |
-c或--show-conf:显示所有模块的设置信息; | |
-d或--debug:使用排错模式; | |
-l或--list:显示可用的模块; | |
-r或--remove:模块闲置不用时,即自动卸载模块; | |
-t或--type:指定模块类型; | |
-v或--verbose:执行时显示详细的信息; | |
-V或--version:显示版本信息; | |
-help:显示帮助。 | |
---------------------------------------------------------------------------------------------------- | |
linux查看相关 | |
硬盘: | |
/etc/fstab fsck、mount、umount的等命令都利用该程序 | |
fdisk -l 查看数据盘信息 | |
df -h | |
df -lhT 查看磁盘容量及文件系统类型,没有分区和格式化数据盘之前,无法看到数据盘 | |
fdisk /dev/vdb 对数据盘进行分区 | |
磁盘分区,格式化,挂载步骤: | |
输入命令fdisk -l查看您的数据盘信息,注意:在没有分区和格式化数据盘之前,使用df -h 命令是无法看到数据盘的。 | |
3) 执行以下命令,对数据盘进行分区。 | |
fdisk /dev/vdb | |
按照界面的提示,依次输入“n”(新建分区)、“p”(新建扩展分区)、“1”(使用第1个主分区),两次回车(使用默认配置),输入“wq”(保存分区表),回车开始分区。 | |
这里是以创建1个分区为例,开发者也可以根据自己的需求创建多个分区。 | |
使用“fdisk -l”命令,即可查看到,新的分区vdb1已经创建完成。 | |
5) 分区后需要对分好的区进行格式化,您可自行决定文件系统的格式,如ext2、ext3等。本例以“ext3”为例: | |
使用下面的命令对新分区进行格式化。 | |
mkfs.ext3 /dev/vdb1 | |
6) 使用以下命令创建mydata目录并将分区挂载在该目录下: | |
mkdir /mydata | |
mount /dev/vdb1 /mydata | |
最后用以下命令查看 | |
df -h | |
出现如图信息则说明挂载成功,即可以查看到数据盘了。 | |
7) 如果希望云服务器在重启或开机时能自动挂载数据盘,必须将分区信息添加到/etc/fstab中。如果没有添加,则云服务器重启或重新开机后,都不能自动挂载数据盘。 | |
使用以下命令添加分区信息: | |
echo '/dev/vdb1 /mydata ext3 defaults 0 0' >> /etc/fstab | |
使用以下命令查看 | |
cat /etc/fstab | |
出现如图信息则说明添加分区信息成功。 | |
cpu: | |
cat /proc/cpuinfo | |
内存: | |
cat /proc/meminfo | |
版本: | |
cat /proc/version | |
cat /etc/redhat-release | |
查看所有运行服务: | |
service --status-all | |
进程 | |
查看进程树: pstree -p 进程号 | |
--------------------------------------------------------------------------------------------- | |
编译安装: | |
# yum groupinstall "Development tools" | |
# yum install curl-devel expat-devel zlib-devel bzip2-devel openssl-devel ncurses-devel zx-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel python-devel libffi-devel libxml2-devel openssl-devel libxslt-devel gcc libgcc glibc | |
以上这些必要的基础依赖,在以后其他组件的安装及使用过程中需要用到,所以要提前装好 | |
对于基础依赖,要有个共识印象 | |
编译安装php apache http://php.net/manual/zh/install.unix.apache2.php | |
apache: | |
yum groupinstall "Development tools" | |
yum install curl-devel expat-devel zlib-devel bzip2-devel openssl-devel ncurses-devel zx-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel python-devel libffi-devel libxml2-devel openssl-devel libxslt-devel gcc libgcc glibc | |
tar -zxvf httpd-2.4.27.tar.gz | |
cd httpd-2.4.27 | |
wget https://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz | |
wget http://www-us.apache.org/dist//apr/apr-1.6.2.tar.gz | |
tar -zxvf apr-util-1.5.4.tar.gz | |
tar -zxvf apr-1.6.2.tar.gz | |
cp -R apr-1.6.2 httpd-2.4.27/srclib/ | |
cp -R apr-util-1.5.4 httpd-2.4.27/srclib/ | |
cd httpd-2.4.27/srclib/ | |
mv apr-1.6.2 apr | |
mv apr-util-1.5.4 apr-util | |
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz | |
tar -zxvf pcre-8.41.tar.gz | |
cd pcre-8.41 | |
./configure --prefix=/usr/local/pcre | |
./configure --enable-so --with-included-apr --with-pcre=/usr/local/pcre | |
make | |
make install | |
php: | |
yum list installed |grep php (把原有的yum安装脏都干掉) | |
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-pdo-mysql --with-curl | |
cp php.ini-development /usr/local/lib/php.ini | |
(php --ini 查看php用哪个ini | |
php-config 查看php配置 | |
) | |
例如编译安装apche,报configure: error: pcre-config for libpcre not found | |
这样安装依赖: | |
下载源码 | |
1. Download PCRE from PCRE.org | |
确定安装路径 | |
2. Compile it with a prefix and install it: | |
./configure --prefix=/usr/local/pcre | |
make | |
make install | |
带上所需要依赖的安装路径 | |
3. Go back to where your Apache installation is and compile Apache with PCRE: | |
--with-pcre=/usr/local/pcre | |
安装依赖时,小组件的版本也要注意,比如安装httpd2.4时,下了最新的apr-util1.6不行,需要apr-util-1.5.4 |