linux知识详情,linux详情


4 Linux

1 Linux基本命令
重启命令:
1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机
rpm -qa或者yum list|grep installed 查看linux安装的所有软件

1基本命令

命令 作用
ifconfig 显示或配置网络设备
cd .. 进入上一级目录
cd [路径] 进入路径指定的某一个文件夹
cd / 进入根目录
cd ~ 进入root目录
ls 列出当前目录中所有的文件和文件夹(不包含隐藏文件)
ls -l 详情的形式显示当前目录中所有的文件和文件夹(不包含隐藏文件)
ls -a 列出当前目录中所有的文件和文件夹(包含隐藏文件)
ls -al 详情的形式显示当前目录中所有的文件和文件夹(包含隐藏文件)
clear 清屏
mkdir [文件夹名字] 创建文件夹
Pwd

2 操作目录命令
命令 作用
mkdir [文件夹名字] 创建文件夹
rm -r [文件夹名字] 删除文件夹(需要确认)
rm -fr [文件夹名字] 删除文件夹(无需确认)
mv [原文件夹名] [新文件夹名] 更改文件夹的名字
3 操作文件命令_创建
命令 作用
touh [文件名] 创建文件
vi [文件名] 创建文件并进入文件内部,进行编辑
4 操作文件命令_删除
命令 作用
rm [文件名] 删除文件(需要确认)
rm -f [文件名] 删除文件(无需确认)
5 操作文件命令_复制和剪切
命令 作用
cp [文件名] [文件夹名] 复制文件到目标文件夹
mv [文件名] [文件夹名] 剪切文件的目标文件夹
6 操作文件命令_查看
命令 作用
cat [文件名] 一次性显示文件所有内容
more [文件名] 分页显示文件内容
回车键查看下一行
空格键查看下一页
B查看上一页
Q退出查看
less [文件名] 与more类似,多了一些功能
比如查看行号less -mN [文件名]
tail [文件名] 查看文件的末尾
7 操作文件命令_查找
命令 作用
find -name ‘关键词*’ 在当前目录查找所有前缀为关键词的文件或文件夹
find [目录名] -name ‘关键词*’ 在指定目录查找所有前缀为关键词的文件或文件夹
8 压缩和解压缩 * tar : 打包 * tar.gz : 打包并压缩.GZip
命令 作用
tar -zcvf [要生成的文件的名字] [要打包的文件名] 打包并压缩文件
tar -zxvf [要解压的文件的名字] 解压缩文件到当前目录
tar -zxvf [要解压的文件的名字] -C [指定文件夹] 解压缩文件到指定文件夹

8 编辑文档
命令 作用
vim [文件名] 进入一般模式
i 进入插入模式
Esc键(键盘左上角) 退出插入模式
:wq 保存更改并退出
:q! 不保存更改并退出
9其他命令
命令 作用
pwd 显示当前工作目录
ps -ef 显示所有进程
kill pid 杀死进程
grep [关键词] [文件名] 在文件中搜索关键词
grep [关键词] [文件名] –color >在文件中搜索关键词,并高亮显示
命令1 | 命令2 命令1的结果作为命令2的输入内容
ps -ef | grep usr 从所有进程中找到包含usr的进程
netstat -ano 查看端口占用情况
reboot 重启
halt 关机
10 文件权限
* 使用ls -l命令可以查看当前目录的详情.其中第一段代表对应的文件的权限
命令 作用
chmod [十进制权限之和] [文件名] 更改指定的文件的权限
chmod 777 a.txt 把a.txt的权限改为 rwxrwxrwx 所对应的数据是r-4-w-2-x-1 读写查 总和表示权限
rpm -ql 文件名 查询 安装的软件的目录
rpm -qa|grep jdk 查询 安装的jdk 要查询其他的就在后面写他名字

2 Jdk/mysql/tomcat/redis安装使用
今日目标
- 搭建开发环境
- 操作Redis的String和Hash
- 中断命令: Ctrl + C

ps -ef|grep tomcat 查看tomcat是否运行

rpm -qa|grep jdk 查看安装jdk的版本
source /etc/profile 直接重新运行环境文件 这时候jdk就重启了

java -version 查询jdk版本

1安装JDK
1. 查询本地已安装的JDK,命令 : rpm -qa | grep jdk
2. rmp -qa 查询所有本地安装的软件
3. 卸载已安装的JDK,命令 : rpm -e [文件名] rpm -e –nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686 (先查询出来jdk软件 然后复制到后面卸载)
4. 利用xFtp上传文件到/usr/local目录
5. 将文件统一解压到/usr/local目录.命令 : tar -zxvf [文件名]
6. 配置环境变量, 命令 : vim /etc/profile (在跟目录下进入这个文件)
- 在该文件中添加以下内容
set java environment
JAVA_HOME=/usr/local/jdk1.7.0_72
CLASSPATH=.:JAVAHOME/lib.tools.jarPATH=" role="presentation">JAVAHOME/lib.tools.jarPATH=JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
- 让文件立即生效. 命令: source /etc/profile
2安装MySQL
1. 查询本地已安装的mysql,命令 : rpm -qa | grep mysql
2. 卸载已安装的mysql,命令 : rpm -e –nodeps [文件名] (直接卸载的时候rpm -e [文件名] 有两个依赖,卸载不掉,所以要用前面的,卸载的时候不检查依赖)
3. 利用xFtp上传文件到/usr/local目录
4. 创建文件夹mysql, 命令 : mkdir mysql
5. 将文件统一解压到/usr/local/mysql目录.命令 : tar -xvf [文件名] -C mysql
6. 进入/usr/local/mysql目录,安装客户端,命令 : rpm -ivh MySQL-client-5.5.49-1.linux2.6.i386.rpm
7. 进入/usr/local/mysql目录,安装服务器端,命令 : rpm -ivh MySQL-server-5.5.49-1.linux2.6.i386.rpm
8. 启动mysql,命令 : service mysql start
9. 查看mysql状态,命令 : service mysql status
10. 设置root用户密码, 命令 : /usr/bin/mysqladmin -u root password ‘root’
11. 连接mysql,命令 : mysql -u root -p
12. 添加mysql到系统服务,命令 : chkconfig –add mysql (要在mysql的文件夹下 实行这个命令)
13. 设置mysql服务为自动启动,命令 : chkconfig mysql on (要在mysql的文件夹下 实行这个命令)

开启MySQL的远程访问
- 开启远程访问
- 进入MySQL,命令 : mysql -u root -p
- 开启远程访问,命令
grant all privileges on . to ‘root’ @’%’ identified by ‘root’;
flush privileges;
- 退出MySQL,命令 : exit;
- 开放3306端口,命令
/sbin/iptables -I INPUT -p tcp –dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
3安装Tomcat
1. 利用xFtp上传文件到/usr/local目录
2. 将文件统一解压到/usr/local目录.命令 : tar -zxvf [文件名]
3. 开放8080端口,命令(在压缩包的当前文件)
/sbin/iptables -I INPUT -p tcp –dport 8080 -j ACCEPT
/etc/rc.d/init.d/iptables save
4. 开启Tomcat,首先进入Tomcat的bin目录,再执行命令 : ./startup.sh
5. 关闭Tomcat,首先进入Tomcat的bin目录,再执行命令 : ./shutdown.sh

发布工程到Linux的Tomcat (直接倒出来的war包形式复制到 tomcat下wappspace空间就行,他会自动解压)
Redis的历史
4 Redis的安装
1. 利用xFtp上传文件到/usr/local目录
2. 将文件统一解压到/usr/local目录.命令 : tar -zxvf [文件名]
3. 安装gcc环境,命令 : yum install gcc-c++ (直接在/local/redis-3.0.7/src 目录下进行)
- rpm和yum的区别
- rpm一般用于离线安装
- yum一般用于在线安装.它不仅可以安装指定的软件包,还会自动安装软件包的依赖
4. 进入redis-3.0.7目录,执行make命令,进行编译
5. 进入redis-3.0.7目录,安装redis,命令 : make PREFIX=/usr/local/redis install
6. 进入redis-3.0.7目录,拷贝redis.conf文件到/usr/local/redis/bin目录,命令 : cp redis.conf /usr/local/redis/bin
7. 进入redis/bin目录,启动redis,命令 : ./redis-server redis.conf

8. Ctrl + c : 关闭服务器

账号: 密码: 虚拟机如果要连接网络,要先在真实的电脑中连上网络,之后虚拟机使用NAT连接模式 如果要让其他同学连接自己的电脑,虚拟机使用桥接模式

5 Redis的后端启动(因为启动后就占用了整个窗口)
1. 进入redis/bin目录,修改redis.conf,将daemonize = no修改为daemonize = yes 命令: vi redis.conf
2. 进入redis/bin目录,启动redis,命令 : ./redis-server redis.conf
3. 查看redis是否开启
- 方式1 : ps -ef | grep redis, 如果能够看到redis相关的进程说明启动成功
- 方式2 : 执行命令 ./redis-cli 启动客户端,再执行ping命令,如果返回结果为pong说明启动成功
1 Redis的使用
6 Redis存储String类型数据
1. 进入redis/bin目录,启动redis,命令 : ./redis-server redis.conf
2. 启动客户端,命令 : ./redis-cli

命令 作用
set [key] value 存储数据
如果key已存在,覆盖之前的值
get [key] 获取数据
del [key] 删除数据
incr [key] 将key对应的数字+1
如果key不存在,默认为0
decr [key] 将key对应的数字-1
如果key不存在,默认为0
keys * 查看所有的key
7 Redis存储Hash类型数据
- 这里的hash类型,其实就是Java中的HashMap
1.进入redis/bin目录,启动redis,命令 : ./redis-server redis.conf
2.启动客户端,命令 : ./redis-cli

命令 作用
hset [key] [字段名] [字段值] 向集合key中,存储一个键值对
hget [key] [字段名] 获取集合key中,字段对应的值
hdel [key] [字段名] 删除集合key中,对应的字段
这里可以指定多个字段名,同时删除多个字段
如果一个集合中所有的字段都被删除了,那么这个集合也会被删除
del [key] 删除整个集合

8 Redis存储List类型数据
- 这里的List类型,类似于Java中的LinkedList
1. 进入redis/bin目录,启动redis,命令 : ./redis-server redis.conf
2. 启动客户端,命令 : ./redis-cli
这里面存储的value都是string类型的

命令 作用
lpush [listname] [value1] [value2] … 从左侧向集合中插入数据
rpush [listname] [value1] [value2] … 从右侧向集合中插入数据
lrange [listname] [start] [end] 获取集合中的数据
取值范围从start开始到end结束
lrange [listname] [start] -1 获取集合中的所有数据
-1代表倒数第一个数据
lpop [listname] 删除集合中第0个元素
rpop [listname] 删除集合中最后一个元素
llen [listname] 获取集合的长度

Redis存储List类型数据扩展命令
- 这里的List类型,类似于Java中的LinkedList 1. 进入redis/bin目录,启动redis,命令 : ./redis-server redis.conf 2. 启动客户端,命令 : ./redis-cli
命令 作用
lpushx [listname] [value] 如果集合存在,就向其左侧插入数据
如果集合不存在,就不插入数据
rpushx [listname] [value] 如果集合存在,就向其右侧插入数据
如果集合不存在,就不插入数据
lrem [listname] [count] [value] 从集合中删除count个指定的value
如果count > 0 ,从左往右删
如果count < 0 ,从右往左删
如果count = 0 ,全部删除
如果value是字符串,一定要用”“引起来
lset [listname] [index] [value] 设置集合指定位置的值,会覆盖之前的值
linsert [listname] before [value1] [value2] 在value1之前插入一个新的值,value2
linsert [listname] after [value1] [value2] 在value1之后插入一个新的值,value2
rpoplpush [list1] [list2] 移除list1中最后一个值
将该值添加到list2的左侧

Redis存储Set类型数据
- 这里的set是一个无序set,该set不允许出现重复数据
1. 进入redis/bin目录,启动redis,命令 : ./redis-server redis.conf
2. 启动客户端,命令 : ./redis-cli
命令 作用
sadd [setName] [value1] [value2] … 向set中出入数据
如果要插入的数据set中已存在,会插入失败
smembers [setName] 获取集合中的所有数据
sismember [setName] [value] 判断set中是否包含某个值
srem [setName] [value] [value] … 移除set中的某个值
sdiff [set1] [set2] 差集运算.获取属于set1但不属于set2的数据
sinter [set1] [set2] 交集运算.获取同时属于两个集合的数据
sunion [set1] [set2] 并集运算.获取两个集合的所有数据
如果有重复数据,只保留一份

Redis存储Set类型数据扩展命令
1. 进入redis/bin目录,启动redis,命令 : ./redis-server redis.conf
2. 启动客户端,命令 : ./redis-cli

命令 作用
zrangebyscore [setName] [min] [max] 获取指定分数范围的数据,返回结果时按照分数从小大到排序
zrangebyscore [setName] [min] [max] limit [offset] [pageSize] 获取指定分数范围的数据,返回结果时,去掉前面offset个,截取pageSize个
类似数据库的分页查询
zincrby [setName] [score] [value] 给指定的value增加score分数
zcount [setName] [min] [max] 获取指定分数范围中,元素的个数
zrank [setName] [value] 获取指定元素在集合中的排名
分数最小的返回值为0,分数越高,返回值越大
zrevrank [setName] [value] 获取指定元素在集合中的排名

Keys 通配符
1. 进入redis/bin目录,启动redis,命令 : ./redis-server redis.conf
2. 启动客户端,命令 : ./redis-cli

命令 作用
keys * 获取所有的key
keys ??? 获取有三个字符的key
有几个问号就代表几个字符
del [keyName] 删除一个key
exists [keyName] 判断一个key是否存在
rename [oldName] [newName] 对key进行重新命名
expire [keyName] [seconds] 设置某个key的过期时间,单位是秒
过期后这个key就会被删除
ttl [keyName] 获取某个key的过期时间
未设置返回-1,不存在返回-2
type [keyName] 获取key的类型
2 Jedis的使用
- 主页
- 使用步骤
1. 开放6379端口
/sbin/iptables -I INPUT -p tcp –dport 6379 -j ACCEPT
/etc/rc.d/init.d/iptables save
2. 导入jar包
3. 代码实现
// 创建对象
六天项目一
1 BaseServlet 用反射根据用户名调用 方法
Method method = this.getClass().getDeclaredMethod(action, HttpServletRequest.class, HttpServletResponse.class);
// 设置访问权限
method.setAccessible(true);
// 反射执行对应的方法
String result = (String) method.invoke(this, request, response);
//每个都设置有返回值 如果方法执行完成以后有返回值,就转发到对应的页面
if (result != null && result.trim().length() > 0) {
request.getRequestDispatcher(result).forward(request, response);
}
2 自定义BeanUtils String–Date转换
// 参数1 : 自定义的转换器
// 参数2 : 转换后的数据类型,对应的字节码文件
// 注册了一个自定义的日期转换器.这样的话,BeanUtils就会使用该转换器去处理Date类型的数据
ConvertUtils.register(new DateConverterUtils(), Date.class);
User user = new User();
// BeanUtils只能处理基本数据类型和java.sql.Date
// 因为我们的User中birthday字段使用的类型是java.util.Date
// 所以必须自己去实现一个转 换器
BeanUtils.populate(user, request.getParameterMap());
1注册
2登陆 记住用户名 自动登陆
3注销

3 用DButils封装从客户端来的数据时候 日期转化器

// 自定义的日期转换器 必须实现DButils中的 Converter接口 自己把String类型转换成Date类型
public class DateConverterUtils implements Converter {

// arg1:就是转换之前的数据.
// 对于本案例来讲,就是注册的页面中,生日输入框用户输入的日期
@Override
public Date convert(Class arg0, Object arg1) {
    try {
        // 需要处理的,就是把string类型的日期转换成java.util.Date类型的日期
        // int i =10;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date =sdf.parse((String) arg1);*强调内容*

相关内容