Linux 初识
由芬兰大学生 Linus 和后来众多参与者共同开发完成
https://www.netcraft.com/ 可以查询网站使用的服务器是哪个平台
linux文件系统
dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
这里的a-d是指a-d盘;比如/dev/hda 就是硬盘的a盘 |
/dev/sda 1 表示SCSI、SATA硬盘接口的a硬盘1分区
必须分区:
根分区/ 和 swap分区
推荐分区:
/boot (启动分区,200MB)
文件系统结构
Linux 注意事项
- Linux 严格区分大小写。所有的命令都是小写
- Linux所有内容都是以文件形式保存,包括硬件。
硬盘文件是/dev/sd[a-p]
光盘文件是/dev/sr0等
- Linux不靠扩展名区分文件类型。扩展名是方便给管理员识别的
- 不要在服务器访问高峰运行高负载命令
- 远程配置防火墙时不要把自己踢出服务器
(防火墙是一个过滤器,靠ip 端口 mac地址等来过滤。过滤出不能访问的用户)
- 合理分配权限
- 定期备份重要数据和日志
Linux各级目录的作用
Linux 常用命令
命令格式 : 命令 【-选项】 【参数】
例如: ls –ls /etc
目录处理命令
ls
英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法: ls [-ald] [文件或目录]
-a 显示所有文件,包括隐藏文件
-l 详细信息显示 ;-lh 人性化显示详细信息
-d 查看目录本身属性
aldh等 选项可以叠加使用
ls –ld /etc/ 查看etc这个目录本身的信息
ls –l /etc/ 查看etc目录下所有文件的详细信息
文件详细信息表示的意义
rmdir
注意:只能删除空目录
英文原意:remove empty directory
命令所在路径:/bin/rmdir
执行权限:所有用户
功能描述:删除空目录;
语法:rmdir [目录名]
cp、mv
英文原意:copy
命令所在路径:/bin/cp
执行权限:所有用户
功能描述:复制文件或者目录
语法:cp –rp [原文件或目录] [目标目录]
-r 复制目录
- p 保留文件或属性
表示 : 将 JingZhou目录复制到root下
必须要 –r
mv是剪切,还可以改名
rm
英文原意:remove
命令所在路径:/bin/rm
执行权限:所有用户
功能描述:复制文件或者目录
语法:rm –rf [文件或目录]
-r 删除目录
- f 强制执行
文件处理命令
touch
英文原意:touch
执行权限:所有用户
功能描述:创建空文件
语法:touch [文件名]
在当前目录创建
指定路径创建
注意:
在没指定文件的路径的时候直接创建文件,最后文件会在home/用户名/ 下面
cat、tac
执行权限:所有用户
命令所在路径:/bin/cat
功能描述:显示文件内容
-n 显示行号
语法:cat [文件名] [-n]
当文件内容很长时 用tac ,tac 会把内容倒过来显示
more、less
执行权限:所有用户
命令所在路径:/bin/more
功能描述:显示文件内容
-n 显示行号
语法:more [文件名]
显示出来时候 按 空格或f 翻页
Enter 换行
Q或q 退出
less跟more 用法一样
但是可以用pageup 和pagedown 来上下翻页
同时 /关键词 可以进行关键词查找
head、tail
执行权限:所有用户
命令所在路径:/user/bin/head
功能描述:显示文件前面几行
语法:head [文件名]
-n 指定显示的行数
tail 显示文件末尾的内容 -f可以动态显示文件末尾
链接命令 ln
执行权限:所有用户
命令所在路径: /bin/ln
功能描述:生成软链接文件
语法:ln -s [原文件] [目标文件]
-s 创建软链接
创建/etc/issue 的软连接issue.soft 放在tmp目录下
创建/etc/issue 的硬连接issue.hard放在tmp目录下
软链接文件:
- 文件类型是 l
- 软链接文件类似于快捷方式,指向原文件;
- 软链接的权限不决定原文件的权限,所以linux里面所有软链接的权限都是rwx;
硬链接文件:
- 没有箭头指向;
- 文件类型是 -
- 所有信息,包括大小,修改时间都是一样的;
- 修改硬链接文件,原文件也会更新;
- 原文件被删除,硬链接也可以访问;
- 硬文件和原文件和 I节点是一样的;
权限管理命令
Chmod
英文原意:change the permissions mode of a file
执行权限:所有用户
命令所在路径: /bin/chmod
功能描述:改变文件或者目录权限
语法:chmod [{ugoa}{+-=}{rwx}] [文件或目录] u=>所有者 g=>所属组 o=>其他人 a=>所有人
[mode=421] [文件或目录]
-R 递归修改
可以看到,执行完之后所有者的w权限少了;
可以同时做多个授权用逗号隔开:
chmod u+x,g-r,g+w tmp/zhangjing
也可以直接 =
chmod u=r-x tmp/zhangjing
权限的数字表示: (最常用
r--4 w—2 x—1
rwxrw-r-- 7 6 4
rwxr-xr-x 7 5 5
-R 比如 tmp/a/b 你修改a的权限, b的不会变 ; 加一个-R a下面所有目录和文件的权限都会修改
| 权限 | 对文件的权限 | 对目录的权限 |
r | 读权限 cat more less tail head | 可以查看 | 可以列出目录中的内容 ls |
w | 写权限 vim | 可以修改 | 可以在目录中创建、删除内容 touch/mkdir/rmdir/rm |
d | 执行权限 Command script | 可以执行
| 可以进入目录 cd |
由表可知,对文件的删除权限,是基于对改文件所在目录的权限
chown
英文原意:change file ownership
执行权限:所有用户
命令所在路径: /bin/chown
功能描述:改变文件或者目录的所有者
语法:chown [用户] [文件或目录]
比如:
$ chown zhangjing text.txt 改变text.txt的所有者为zhangjing
注意:
- 只有root才能改变文件的所有者
root创建一个文件
root修改这个文件的所有者
zhangjing可以对这个文件进行修改
chgrp
和 chown用法一样
chown [用户组] [文件或目录]
umask
英文原意: the user file-creation mask
执行权限:所有用户
命令所在路径: shell 内置命令
功能描述:显示设置文件的缺省权限
语法:umask –S
linux默认认为文件没有执行权限;
这样,病毒文件无法执行
文件搜索命令
find
执行权限:所有用户
命令所在路径:/bin/find
功能描述:文件搜索
语法:find [搜索范围] [匹配条件]
-type 根据文件类型查找 [f/d/l]
- $ find /etc –name init
在目录/etc中查找文件init
-iname 不区分大小写
- $ find / -size +204800
在根目录下查找大于100MB的文件
+n 大于 –n小于 n等于
- $ find /etc –size +163840 –a –size -204800
在/etc目录下查找大于80MB小于100MB的文件
-a 与
-o 或
- $ find /home –user zhangjing
在home目录下查找所有者为zhangjing的文件
-group 根据所属组查找
- $ find /etc –cmin -5
在/etc目录下查找5分钟内被修改过属性的文件和目录
-amin 访问时间access
-cmin 文件属性 change
-mmin 文件内容modify
locate
执行权限:所有用户
命令所在路径:/user/bin/locate
功能描述:在文件资料库中查找文件
语法:locate 文件名
-i 不区分大小写
locate 和 find的区别:
Linux为locate命令在/var/lib/mlocate目录专门有bai一du个文件信息的数据库zhi,用locate命令查找文件时dao,其实是在这样的zhuan数据库中查找。所以locate命令和find命令的区别就是,locate命令查找文件在数据库中查找,查找的速度非常快,几乎是马上列出结果;而find命令查找时则是直接查找硬盘上的文件,查找的速度相应的非常慢。不过find命令查找文件比locate命令要可靠一些,因为locate的数据库是每天更新一次,如果是刚刚新建的文件,locate命令会找不到。
对于更新不及时的问题 , locate 提供了一个更新数据库命令 updatedb;
注意 :locate的数据库不会收集/tmp目录下的文件
which、whereis
执行权限:所有用户
命令所在路径:/user/bin/which
功能描述:搜索命令所在目录及别名信息
语法:which 命令
whereis 功能:搜索命令所在目录及帮助文档信息
语法: whereis 命令
帮助命令
man、whatis
英文原意:manual
执行权限:所有用户
命令所在路径:/user/bin/man
功能描述:获得帮助信息
语法:man [命令或配置文件]
/关键词 可以进行搜索、
配置文件信息 man services:
whatis 命令
查看命令的简单信息
帮助命令help
执行权限:所有用户
命令所在路径:shell内置命令
功能描述:获得shell内置命令的帮助信息
语法:help [命令]
其他命令
- $ type [命令]
查看该命令是否是shell内置命令
用户管理命令
增加一个用户的步骤:
- useradd [用户名]
添加用户
- passwd [用户名]
给用户设置密码
passwd [用户名] 也可以改密码
每个用户只能更改自己的密码,root可以更改别人的密码
who、w
执行权限:所有用户
命令所在路径:/user/bin/who
功能描述:查看用户登录信息
语法:who
w 相比于who 信息更加详细
tty: => 本地终端
pts => 远程终端
网络命令(pending)
- write
功能:给在线用户发信息,以ctrl+D保存结束
语法: $ write 用户名
- wall
功能:给所有用户发信息,以ctrl+D保存结束
语法: $ wall [信息]
注意:自己也会受到
- ping
功能:测试网络连通性
语法: $ping [选项] [ip地址]
-c 发送次数
范例: $ ping 192.168.0.1
注意:自己也会受到
vim操作命令
常用操作
删除命令:
dd: 删除光标所在行,
ndd: 删除n行
D: 删除光标所在处到行尾内容
dG: 删除光标所在处到文件末尾内容
复制剪切命令:
yy: 复制当前行
nyy: 复制当前以下n行
dd: 剪切当前行
ndd: 剪切当前以下n行
p: 粘贴
替换和取消命令:
r : 取代光标所在处字符
R : 从光标所在处开始替换字符,esc结束
u: 撤销
搜索替换命令:
/string: 搜索指定字符
保存和退出命令:
:w 保存自修改
:w [文件名] 另存为指定文件
:wq 保存修改并退出
ZZ 快捷键,保存修改并退出
:q! 不保存修改退出
:wq! 保存修改并退出
:q 退出
vim使用技巧
- :r 文件名
编辑模式时使用,可以将指定文件内容导入到当前光标下
- :r !命令
编辑模式时使用,可以将命令的执行结果导入文件中
比如: :r !date
定义快捷键
范例 :map 快捷键 触发命令
:map ^P I#<ESC>
^P => Ctrl + v +p 快捷键的按法
I =>在行首进入插入模式
# =>插入字符#
<ESC> =>输入完成后按ESC键
整个命令的含义 在光标当前行首插入#, 即注释当前行
:map ^B 0x
删除行首第一个字符
:map ^H ozhangjing@family.com<ESC>
另起一行插入我的邮箱
软件包管理
软件包分类
- 源码包
脚本安装包,即源代码开放的包
优点:
- 开源
- 可以自由选择所需的功能
- 软件是编译安装,所以更加适合自己的系统,更加稳定同时效率也更高。
- 卸载方便
缺点:
- 安装过程多
- 编译时间长
- 二进制包(RPM包、系统默认包)
指源代码编译过后的包
优点:
- 包管理简单
- 安装速度比源码包快很多
缺点:
- 源码不开放
- 依赖性
rpm命令管理
包名命令规则
包名:httpd-2.2.15-15.el6.centos.1.i686.rpm
- httpd: 包名
- 2.2.15: 软件版本
- 15: 软件发布的次数
- e16.centos 适合的linux平台
- i686 适合的硬件平台
- rpm 包扩展名
安装升级与卸载
没下载时,要操作包全名;
包下载好后,操作包名即可,
包安装:
rpm –ivh 包全名
-i (install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
安装要在Packages目录下
包升级:
rpm –Uvh 包全名
包卸载:
rpm –e 包名
-(erase)
查询
查询包是否安装:
rpm –q 包名
-q(query)
-i 查询软件信息
-l 列表展示
查询所有已安装包
rpm –qa 包名
-(query)
包校验和文件提取
包校验
rpm –V 已安装包名
yum在线管理
pending 待学习