文章目录
前言
这篇文章是继上一篇linux的补充,主要介绍软件的安装与linux的shell编程。
一、linux入门2
1.软件的安装方式
1.RPM(Redhat Package Manager)红帽包管理方式
通过RPM命令安装软件
rpm -ivh jdk-7u67-linux-x64.rpm (i - install v -过程 h -显示进度)
查询软件
rpm -qa | grep jdk
rpm -q jdk
卸载
rpm -e jdk-7u67-linux-x64
配置环境变量
vim etc/profile
export JAVA_HOME=/usr/java/jdk1.7
export PATH=$JAVA_HOME/bin:$PATH
重新加载环境
source /etc/profile
2.解压安装
tar -xvf package
3.源码安装
4.yum安装
yum是rpm的上层管理工具,自动解决依赖性,而rpm是底层管理工具;yum的使用需要配置yum源;
search 查询命令
yum search jdk:查询包
yum info ntp:查看包信息
yum list :查询多个包
更改yum源
首先安装wget
yum install wget -y (-y 表示默认执行 yes)
备份原有的yum
mv /etc/yum.repos.d /etc/yum.repos.d.backup
设置新的yum源
mkdir /etc/yum.repos.d
下载阿里云yum配置
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清空缓存
yum clean all
缓存服务器软件包信息
yum makecache
2.linux三剑客(用于操作linux中的文件)
文件操作命令
文本切割
cut -d':' -f1,2,3 passwd -- 用 :切割passwd 取前三列
cut -d':' -f1,2,3 passwd | grep name -- 查找前三列中的 name
排序
sort sxt --字典序 比较第一位后比较第二位
sort -t' ' -k2 sxt --用空格切割,以第二列排序
sort -t' ' -k2 -r sx --逆序
sort -t' ' -k2 -n sx --按数值排序,如果有字母,字母在前
wc passwd :统计字符数
l:line w:word c:char
2.1 剑客1号
grep:搜索指令
1)可以对文本进行搜素
2)同时搜索多个文件
grep pssswd sxt
3)显示匹配的行号
grep -n passwd sxt
4)显示不匹配 (i -忽略大小写) (v -取反),显示不匹配的
grep -nvi passwd --color=auto
5)使用正则表达式匹配
grep -E"[1-9]+" passwd --color=auto
2.2 剑客2号
sed:高级指令 增、删、改 -擅长取行和替换
sed '2a hello' passwd -- 在第二行增加一条hello
sed '2,5a hello' passwd -- 在第二行至第五行都增加一条hello
sed '2,+3a hello' passwd -- 在第二行,到第2+3行增加一条hello
sed 'm~na hello' passwd
sed '2i hello' passwd --打印到控制台
sed -i '2a hello' passwd --直接修改文件
删除
sed '3,10d' passwd
改
整行替换
sed '3,20c hello' passwd
sed '3~1c hello' passwd
2.3 剑客3号
awk:用于取列
打印文件第一列:awk -F ‘:’ ‘{print $1}’ passwd
3、find指令
find指令对于linux文件的查找尤为重要,so好好掌握。
find命令格式:
find path -option [-print] [-exec -ok |xargs |grep] [command {} \; ]
1)path 路径
2)print:将结果输出到标准输出
3)exec:对匹配的文件执行该参数所给出的shell命令。
形式为command {} \;,注意{}与\;之间有空格
4)ok:与exec作用相同,
区别在于,在执行命令之前,都会给出提示,让用户确认是否执行
5)|xargs 与exec作用相同 ,起承接作用
区别在于 |xargs 主要用于承接删除操作 ,而 -exec 都可用 如复制、移动、重命名等
6) options :表示查找方式
options常用的有以下选项:
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-prune #忽略某个目录
1、根据名称查找
find -name "pass*" --查找以"pass"开头的文件
find -name "*.txt": --查找以".txt"结尾的文件
2、根据权限查找
find -perm 664
3、根据用户查找
find -user root
4、根据组查找
find -group root
5、查询n天内修改过的文件
find -mtime -n
查询n天内访问为的文件
find -atime -n
查询n天内创建的文件
find -ctime -n -ls
time 可以修改为min 表示的是分钟
6、无属组文件
find -nouser
find -nogroup
7、查找当前目录下的目录/块设备/字符设备/链接文件/管道文件/普通文件
find -type b/d/c/l/p/f
8、查询大小为输入大小字节的文件,下面是我先用“ll”指令先获取一个确定的文件的大小,然后再查找。
find -size 49c
9、表示最多查找的层数为2
find -name file -maxdepth 2
10、查找空白文件、空白文件夹、没有子目录的文件夹
find -empty
二、Linux的shell编程
1.名词解释
Kernel
Linux内核主要为了和硬件交互
Shell
Shell是一个用c语言编写的程序,它是用户使用linux的桥梁。
Shell及时一种命令语言,又是一种设计语言。
Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操 作系统内核的服务。
Shell环境
需要一个可以编写代码的的文本编辑器和解释执行的脚本解释器
Bourne Shell (/usr/bin/sh 或 /bin/sh)
Bounre Again Shell(/bin/bash) 默认
C Shell (/usr/bin/csh)
#! 声明
告诉系统其后路径所指定的程序及时解释此脚本文件的Shell程序
2.执行Shell的方式
./hello.sh --需要设置可执行权限 (即必须是一个可执行文件) 启动后会开启一个子进程执行脚本 上级进程ppid = 1
sh hello.sh -- 执行的可以是一个普通文本
source hello.sh --直接在当前进程执行脚本
三、linxu程序的开机自启动
1、方法一:修改/etc/rc.local
/etc/rc.local 为一个链接文件 -->/etc/rc.d/rc.local
[root@iZuf6gptd6bqap891v21cdZ ~]# ll /etc/rc.local
lrwxrwxrwx 1 root root 13 Mar 27 15:09 /etc/rc.local -> rc.d/rc.local
编写可执行文件,将脚本决定路径写入文件rc.local
修改rc.local 为可执行文件
2、方法二:chkconfig
编写开机自启动脚本
vim ntpdate.sh
#! /bin/bash
#开机自动动同步时间
yum info ntp && ntpdate cn.ntp.org.cn
设置脚本可执行权限
chmod u+x ntpdate.sh
将脚本拷贝到/etc/init.d目录下
cp ntpdate.sh /etc/init.d
添加到服务,重启计算机
chkconfig --add /etc/init.d/ntpdate.sh
查看开机自启动服务
chkconfig --list
关闭开机自动动
chkconfig ntpdate off
chkconfig --del ntpdate --移除脚本