Linux高阶知识

来源:互联网 发布:淘宝没按时发货怎么办 编辑:程序博客网 时间:2024/05/28 18:45
1、Httpd服务
检查httpd服务是否开启:service --status -all | grep httpd
/var/www/html 这个目录下可以存放文件,并通过 http://192.168.123.202/访问
2、系统管理
2.1、挂载外部设备
挂载,需要有挂载源挂载点
  • 挂载光驱:
常用挂载目录/mnt,/media
eg:mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/
注:-t:文件系统类型,iso9660表示光盘或者光盘镜像
-o:挂载方式,ro表示以只读方式,
loop表示把挂载的设备当做一个磁盘
  • 挂载光盘镜像文件(.iso文件):
需要一个镜像文件,和挂载目录
eg:mount -t iso9660 -o loop /root/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/centos
  • 自动挂载
挂载的资源在重启之后即失效,自动挂载可以设置/etc/fstab配置文件中:
/dev/cdrom /mnt/cdrom iso9660 defaults 0 0
/root/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/centos iso9660 defaults,ro,loop 0 0

第一列:/dev/cdrom:挂载源,要挂在的磁盘分区或者存储设备,或者文件系统
第二列:/mnt/cdrom:挂载点,挂载位置
第三列:iso9660:文件系统类型,ext4 文件系统,swap 表示交换分区,……
第四列:defaults:挂载参数
第五列:0:表示 dump 选项dump 工具通过这个选项位置上的数字来决定文件系统是否需要备份。如果是 0,dump 就会被忽略,事实上大多数的 dump 设置都是 0
第六列:0:读取文件系统时候的检查顺序,允许的数字是 0,1,2,根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为 2,0 表示不检查
  • 卸载
umount/mnt/cdrom

2.2、统计文件或者文件夹大小
存储空间查看:df -h
统计指定路径下所有子目录和文件的大小:du -sh /mnt/cdrom/packages

2.3、系统服务管理
service --status-all 查看系统所有的后台服务进程
service sshd status 查看指定的后台服务进程的状态
service ssh stop 停止
service sshd start 开始
service sshd restart 重启
chkconfig httpd on 让httpd服务开机自启
chkconfig httpd off 让httpd服务开机不要自启

2.4、修改系统时间
查看时间:date -Rdate date '+%Y-%m-%d %H:%M:%S'
查看时区:cat /etc/sysconfig/clock
更改时区:cp /usr/share/zoneinfo/Asia/Shanghai/etc/localtime
修改时间:
手动修改时间:date -s
同步网络时间:
ntpdate time.nist.gov 或者ntpdate 202.120.2.101
每隔十分钟从202.120.2.101同步一次时间:
命令:crontab -e 输入:*/10 * * * * ntpdate 202.120.2.101
hwclock -w 将时间写入主板!!!!
3、软件安装
  • 二进制发布包(本地)
核心思路(安装JDK为例):
  1. 获取安装包
  2. 把安装包上传到服务器,然后解压缩到对应的安装目录
通过sftp上传到服务器,通过tar -zxvf 名 -C 解压地址
  1. 更改对应的配置文件,然后配置环境变量
配置环境变量(系统变量/etc/profile、用户变量~/.bashrc 或 ~/.bash_profile)
区别: 系统环境变量是所有用户都可以使用, 全局变量
用户环境变量,只能当前用户使用,其他用户不能使用, 局部变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_73

export PATH=$PATH:$JAVA_HOME/bin

export PATH=$PATH:/usr/local/java/jdk1.8.0_73/bin

配置环境变量注意事项:
1、不要为了图方便,而省略 XXX_HOME
2、给PATH变量追加变量值时,注意分隔符是:
3、千万不要把PATH写错了!~!!!!!!
在配置完环境变量之后,一定不要忘记重新加载变量文件:
source /etc/profile
  1. 初始化、启动、验证是否安装成功

  • RPM发布包(本地)
安装步骤(MySql为例)
  1. 先卸载之前系统自带的MySql
rpm -qa | grep -i mysql (-i 忽略大小写)
rpm -e mysql-libs-5.1.73-5.el6_6.x86_64 --nodeps (去除依赖直接删)
删除mysql配置文件:
rm -rf /usr/lib/mysql
rm -rf /usr/include/mysql
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql
  1. 安装现在的MySql
解压:tar -zxvf
安装:server:rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm
安装:client:rpm -ivh MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm
启动mysql服务:service mysql start 初始密码在/root/.mysql_secret这里
修改密码:set PASSWORD=password('root')
增加远程登录权限:mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql安装的注意事项
1、要首先卸载原来的mysql
2、安装mysql-server 和 mysql-client
3、一定要注意,要把mysql的服务器启动
4、找到root用户的初始密码
5、使用root的初始密码进行首次登陆,然后改掉root用户的密码
6、mysql数据库有可能要远程使用,必须要赋予对应用户的远程连接权限
  • Yum在线安装(联网)
yum -y install nc 安装
yum update 升级系统
yum install ~ 安装指定软件包
yum update ~ 升级指定软件包
yum remove ~ 卸载指定软件
  • 源码编译安装()

4、配置本地YUM源
  • 准备一个服务器,默认httpd,在线安装:yum install -y httpd
  • 检查httpd状态:service httpd status
  • 在httpd服务的web目录中放入rpm库:/var/www/html/
eg:将 centos 安装光盘中的 rpm 库放入:
mkdir /var/www/html/centos
cp -r /mnt/cdrom/* /var/www/html/centos/
注:上面这种方式比较浪费空间,可以不用拷贝,其实只要创建一个软连接即可
ln -s /mnt/cdrom /var/www/html/centos
  • 看是否有文件在服务器中:打开网页http://192.168.123.202/。。。
  • 配置Yum客户端repo地址文件,将本地http服务器加入repo地址。
首先将内置的源全部disable掉,cd /etc/yum.repos.d/rename .repo .repo.bak *
然后,新建一个 repo 源,vi CentOS-Local.repo
[CentOS-Local]
name=CentOS-Local
baseurl=http://192.168.123.202/centos/cdrom0
http://192.168.123.202/centos/cdrom1
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  • 检查自定义源是否生效,使用:yum repolist
  • 安装自己定义的软件库:yum install -y
5、进程管理
5.1、进程概念
一个系统并发运行多个进程
一个进程并发运行多个线程
一个线程,就是一个单独的子程序
5.2、进程状态

系统的启动流程
1、系统最开始启动init进程
2、init进程会去寻找所有默认开机启动的程序,然后挨个儿启动

5.3、进程管理常用操作
5.3.1、PS命令
ps 命令常用选项包括:
1、a 显示所有用户的进程
2、u 显示用户名和启动时间
3、x 显示所有进程,包括没有控制终端的进程
4、e显示所有进程,包括没有控制终端的进程,较 x 选项,信息更为简略
5、l显示进程详细信息,按长格式显示

ps -au显示所有用户进程,并给出用户名和启动时间等详细信息
ps -aux显示所有用户进程,包括没有控制终端的进程,并给出用户和和启动埋单等详细信息
ps -el 按长格式显示进程详细信息
5.3.2、kill命令
kill pid 直接杀死进程,但不能保证一定能杀死(pid进程号)
kill -9 pid 强制杀死进程
5.3.3、进程切换
ctrl + c 终止进程
ctrl + z 挂起进程
fg 命令将进程转换到前台执行
bg 命令将进程转换到后台执行
jobs 命令查看任务
nohup 命令 & 可以直接让进程启动至后台
5.3.4、top命令
动态显示进程等信息,按q退出查看
5.3.5、pstree命令
pstree:以树状形式显示进程,看清各进程父子关系
-p:显示进程号
5.3.6、JPS命令
JDK提供检查系统是否启动了JVM进程
6、计划任务
6.1、概念
at:通过at命令安排任务在某一时刻执行一次
crontab:周期性的日志分析或数据备份等工作

6.2、命令服务管理crontab
安装:yum -y install crontabs
操作: service crond start## 启动服务
service crond stop## 关闭服务
service crond restart ## 重启服务
service crond reload ## 重新载入配置
service crond status## 服务状态
chkconfig --list 查看 crontab 服务是否已设置为开机启动
chkconfig --level 35 crond on 加入开机自动启动
6.3、crontab功能使用
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
参数说明:
-u user:用来设定某个用户的 crontab 服务,例如,”-u ixdba”表示设定 ixdba 用的
crontab 服务,此参数一般有 root 用户来运行。
file:file 是命令文件的名字,表示将 file 做为 crontab 的任务列表文件并载入 crontab。
-e:编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户crontab 文件。
-l:显示某个用户的 crontab 文件内容,如果不指定用户,表示显示当前用户crontab 文件内容。
-r:删除定时任务配置,从/var/spool/cron 目录中删除某个用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。
-i:在删除用户的 crontab 文件时给确认提示。

crontab -l [-u user] ## 列出用户目前的 crontab.
crontab -e [-u user] ## 编辑用户目前的 crontab.
补充:通过 crontab 添加的计划任务都会存储在/var/spool/cron/目录里

基本格式 :
* * * * * command
分 时 日 月 周 命令
第 1 列表示分钟 1~59 每分钟用*或者 */1 表示
第 2 列表示小时 0~23(0 表示 0 点) 7-9 表示:8 点到 10 点之间
第 3 列表示日期 1~31
第 4 列表示月份 1~12
第 5 列标识号星期 0~6(0 表示星期天)
第 6 列要运行的命令

7、克隆虚拟机
安装好了vmware软件之后 : 快照, 克隆
快照: 备份
克隆: 复制出新的虚拟机
具体的操作方式
克隆:
1、先按照文档,按照规定的操作步骤去克隆出一个新的虚拟机
2、启动该克隆出来的虚拟机,更改对应的一些配置信息,克隆出来的虚拟机和原来的虚拟机有三个地方是重复的,并且是必须要更改的:
1)主机名
vi /etc/sysconfig/network
2)网卡---网卡的mac地址重复
eth0
会在一个配置文件中说明,正在使用的网卡是eth0
(1)如果想使用原来的eth0,需要更改mac地址
(2)直接生成一块新的网卡eth1,让系统使用eth1网卡
(3)IP重复
修改IP : 三种方式
但是现在:修改配置文件
3)正常使用

8、SSH免密登录配置
1)SSH概念
SSH就是一个网络协议,用于计算机之间的加密登录。
2)SSH认证机制
一种基于口令的安全验证:
只要知道自己账号和口令,就可以登录到远程主机
二种基于密钥的安全验证:
为自己创建一对密钥,并把公用的密钥放在需要访问的服务器上。

3)配置SSH认证机制
以A登录B为例:
在A上进行操作:
首先生成密钥:
ssh-keygen -t rsassh-keygen
将A自己的公钥放置到授权列表文件authorized_keys中
cat id_rsa.pub > authorized_keys
或者
cp id_rsa.pub authorized_keys
将得到的authorized_keys发送给B机器对应的文件夹下
scp -r authorized_keys root@192.168.123.102:$PWD
或者
scp -r authorized_keys root@192.168.123.102:/root/.ssh/
验证 :
ssh 192.168.123.102
重点理解之处:
A 将公钥发给 B ,不是 B 可以访问 A ,而是 A 可以访问 B ,所以任何一台机器想要能访问其他机器,那么就把自己的公钥 内容发送到别的机器的authorized_keys 中去,记住,是追加,不是覆盖






原创粉丝点击