为什么要用Linux?
Window+tomcat-->服务器。widows因为里面有追加的日志系统,占用内存多。windows开始时间久就会很卡。越处理越慢,处理高并发的项目,很吃力。
正规项目都是LIunx部署。linux无论从系统运行的流畅度上,还是从安全,cpu和内存的消耗极小,并且硬件的扩展特别容易。
1.1、Unix
多用户,多任务。一般用于服务器架设。
为什么要用Linux?
Window+tomcat-->服务器。widows因为里面有追加的日志系统,占用内存多。windows开始时间久就会很卡。越处理越慢,处理高并发的项目,很吃力。
正规项目都是LIunx部署。linux无论从系统运行的流畅度上,还是从安全,cpu和内存的消耗极小,并且硬件的扩展特别容易。
1.1、Unix
多用户,多任务。一般用于服务器架设。
centOs优先选择作为服务器开发。
Linux内核:还是由开发研发负责修改和维护
RedHat是收费的,免费版本不支持在线升级。
centos每个版本是免费的,升级容易。很多公司使用CentOs替代商业版RedHat Linux
ubantu是一个以桌面应用为主的linux操作系统。ubantu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件组建而成的操作系统。为桌面虚拟化提供支持平台。
1.2、Linux版本
Linux的版本分两种:内核版本和发行版本。
内核版本:是在Linux领导下内核小组开发维护的系统内核的版本号。
发行版本:是一些组织和公司根据自己发行版的不同而自定的。
1.3、Linux系统应用
服务器系统:web应用服务器、数据库服务器、接口服务器、DNS、FTP等等
嵌入式系统:路由器、防火墙、手机、PDA、交换机
1.4、虚拟机以及CRT工具
VMware Workstation 兼容性非常好。
VirualBox是一款开源虚拟机软件。Sun被Oracle收购后更名为Oracle VM VirtualBox,兼容性特别差,虚拟技术不稳
1.5、Liunx目录结构
/ | 根目录,一般根目录下只存放目录,不要存放文件。 |
/bin | /usr/bin:(binaries)存放二进制可执行文件。如常用的命令Is、tar、mv、cat等。 |
/boot | 放置丨inux系统启动时用到的一些文件。 /boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可 |
/dev | (devices)存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备。 常用的是挂载光驱mount /dev/cdrom /mnt。 |
/home | 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示 当前用户的家目录,〜test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据 |
/lib | (library)Ajsr/lib:/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。 |
/sbin | (super user binaries) /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令。如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用 |
/root | 系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一 个分区下。 |
/etc | (etcetera)系统配置文件存放的目录,不建议在此目录下存放可执行文件。重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/Xll、/etc/sysconfig、/etc/xinetd.d 修改配置文件之前记得备份。 |
/usr |
(unix shared resources)应用程序存放目录
/usr/bin存放应用程序
/usr/share存放共享数据
/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。
/usr/local: 存放软件升级包。
/usr/share/doc:系统说明文件存放目录。
/usr/share/man:程序说明文件存放 目录
|
/var | (variable)放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log, /var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动 |
/opt | 给主机额外安装软件所摆放的目录。以前的Linux系统中,习惯放置在/usr/local目录下 |
/tmp | (temporary) —般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数 据不可放置在此目录下 |
/srv | 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www 内 |
/mnt | :/media:(mount)光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。 |
/proc |
此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内 存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、 /proc/ioports、/proc/net/*等
以上规定了,哪个目录是做什么用的。上面都只是建议,并不是强制性约束。
|
2.1、磁盘管理
(1).Is 命令
格式:Is [参数][文件或目录]
ls | 列出文件名或目录名 就像windows里的 列表。 |
ls-l,可以简化为ll | 显示指定目录下的内容,友好地显示详细文件列表 |
ll -h test | 显示子文件夹test的所有内容 |
-a或-all | 所有文件和目录 |
-t | 用文件和目录的更改时间排序。 |
-r | 反向排序 |
(2).cd命令(change directory)
功能:切换目录
语法:cd [目录]
~ | 主目录 |
/ | 根目录 |
- | 上次访问目录 |
../ | 上一级目录 |
(3).查看系统磁盘空间使用情况:df 和du
df | 以 kb 为单位展示空间使用情况:总的大小,已经使用的,可用的空间 |
df -h | 以可读性较高的方式来显示信息 |
du -sh 文件夹 | 查看文件夹的大小 |
du -sh 文件 | 查看文件大小 |
实例如下:
(4).其他命令
pwd | 显示工作目录 |
Clear | 清屏 |
mkdir | 创建目录
-p父目录不存在情况下先生成父目录(parents)
-v显示命令执行过程中的详细信息
|
rmdir | 删除空目录(如果目录中有内容,不能删除该目录) |
2.2、文件浏览
(1).cat命令(catenate)
功能:显示文本文件内容,适用于快速查看整体内容,文件内容不能多
语法: cat文件,显示指定文件的所有内容
(2).more命令
功能:快捷分页,进行方便的翻页,和进度显示
语法:more file
Enter | 向下n行,需要定义。默认为1行 |
空格键 | 向下滚动一屏或Ctrl+F |
B | 返回上一屏或Ctrl+B |
q | 退出more |
(3).less命令
功能:分页显示文件内容,操作更详细。查看配置文件,和more的很多功能是相类似的,比起more更加丰富。
语法:less [参数]文件
-m | 显示类似more命令的百分比 |
-N | 显示每行的行号 |
操作:
空格键 | 前进一页或page down |
b | 后退一页或page up |
d | 前进半页 |
u | 后退半页 |
回车键 | 前进一行或方向键向下 |
y | 后退一行或方向键向上 |
/字符串 | 向下搜索 |
?字符串 | 向上搜索 |
v | 进入vim编辑器 |
q | 退出 |
(4).tail命令
功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文 件。
格式:tail[必要参数][选择参数][文件]
-n<行数> 显示行数
只显示后5行。
2.3、文件操作
(1).cp命令(复制)
- cp(copy)功能:复制文件或目录。
- 语法:cp [参数][源文件或目录][目标文件或目录]
-r或-recursive 递归处理,将指定目录下的文件与子目录一并处理。
-a :将文件的特性一起复制
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-u :目标文件与源文件有差异时才会复制
|
示例说明:
1、cp 需要复制的文件复制到哪里去
cp test .txt testl 复制 test.txt 到子目录 testl 中
cp test.txt /testl 复制text.txt到根目录的testl目录中
2、cp需要复制的文件复制到哪里去/改什么名字
例如:cp test.txt testl/hehe.txt 复制 test.txt 到子目录 testl 中,并且改名为 hehe.txt
3、cp-r 需要复制的目录复制到哪里去
例如:cp -r test testl复制test目录及其所有内容,到当前目录下,改名为testl
(2).mv命令(移动)
- mv(move)功能:移动或更名现有的文件或目录。
- 语法:mv [源文件或目录][目标文件或目录]
-f或-force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录,mv -f 强制覆盖
示例说明:
1、mv需要移动的文件移动位置
例如:mv heh.txt test 把heh.txt移动到子目录test中
2、mv需要移动的文件移动位置/改为什么名
例如:mv catalinahehe.log test/catalina 把 catalinahehe.log 移动到子目录 test 中,并更名
(3).rm命令(删除)
- rm(remove) rm功能:删除文件或目录。
- 语法:rm [-dfirv][-help][-version][文件或目录…]
-f或-force 强制删除文件或目录。
-r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
常用命令:
rm-rf | 需要删除的文件/目录 |
rm-rf* | 清空当前目录 |
rm-rf/* | 清空Linux千万不要用 |
2.4、文件编辑
(1).vi和vim
基本上vi可以分为三种状态
输入vim文件名”进入“一般模式”
按下"i"从一般模式,进入“插入模式”
按下Esc从“插入模式”退出到“一般模式
在“一般模式”下,输入:wq退出编辑
|
操作:
分组 | 命令 | 描述 | |||
插入(从一般模式进 入到插入式) | i | 在光标前插入 | |||
shift+ i | 在光标当前行开始插入 | ||||
a | 在光标后插入 | ||||
shift + a | 在光标当前行末尾插入 | ||||
o | 在光标当前行的下一行插入新行 | ||||
shift+ o | 在光标当前行的上一行插入新行 | ||||
| |||||
复制或粘贴 C在插入模式下) | yy | 单行复制,将光标移动到将要复制的行处 | |||
nyy | 多行复制,将光标移动到将要复制的首行处 | ||||
P | 粘贴将光标移动到将要粘贴的行处 | ||||
定位 | gg | 到文本的第一行 | |||
shift + g | 到文本的最后一行 | ||||
| |||||
删除 | dd | 删除光标所在行 | |||
ndd | 删除n行 | ||||
| |||||
退出 | :q | 退出vi (没有做任何修改时) | |||
:q! | 强制退出不保存 | ||||
:w | 保存不退出 | ||||
:wq | 保存后退出 |
(2).管道
①.linux提供管道符号“丨”。
格式:命令1丨命令2 把命令1输出作为命令2的输入
作用是“命令1”的输出内容,将作为“命令2”的输入内容。一般与 grep命令一起使用。
②.grep 命令(Global Regular Expression Print)
表示全局正则表达式版本
功能:用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。
格式:grep [option] pattern [file]
-i或-ignore-case #忽略字符大小写的差别。
例如:
1、查看install .log文件中含有control字符的内容 ,并将含有这个关键字的行显示出来。
grep -i control /root/install.log
-i control /root/install.log
2、#格式:其他命令丨grep参数过滤条件,
在cat命令输出结果基础上,进行过滤
cat /root/install. log | grep -i control
/root/install. log | grep -i control
3、查询ll搜索到文件中带有java关键字的文件
2.5、find命令
find是一个基于查找的功能非常强大的命令,相对而言,它的使用也相对较为复杂,参数也比较多,所以在这里将给把它们分类列出,它的基本语法如下:
find [PATH] [option] [action]
[PATH] [option] [action]
# 与时间有关的参数:
-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;
+n : 列出在n天之前(不含n天本身)被更改过的文件名;
-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
-n : 列出在n天之内(含n天本身)被更改过的文件名;
-newer file : 列出比file还要新的文件名
file : 列出比file还要新的文件名
# 例如:
find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件
/root -mtime 0 # 在当前目录下查找今天之内有改动的文件
# 与用户或用户组名有关的参数:
-user name : 列出文件所有者为name的文件
name : 列出文件所有者为name的文件
-group name : 列出文件所属用户组为name的文件
name : 列出文件所属用户组为name的文件
-uid n : 列出文件所有者为用户ID为n的文件
n : 列出文件所有者为用户ID为n的文件
-gid n : 列出文件所属用户组为用户组ID为n的文件
n : 列出文件所属用户组为用户组ID为n的文件
# 例如:
find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件
/home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件
# 与文件权限及名称有关的参数:
-name filename :找出文件名为filename的文件
filename :找出文件名为filename的文件
-size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
[+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
-tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、
TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、
目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
-perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
-perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
-mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
-perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
+mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
# 例如:
find / -name passwd # 查找文件名为passwd的文件
/ -name passwd # 查找文件名为passwd的文件
find . -perm 0755 # 查找当前目录中文件权限的0755的文件
. -perm 0755 # 查找当前目录中文件权限的0755的文件
find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte
. -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte