Linux
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。
Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
Linux优点:完全免费,完全兼容POSIX1.0标准,多用户、多任务,良好的界面,支持多种平台。
基础命令
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
查看shall
命令提示符
登录系统后,第一眼看到的内容是:
[root@localhost ~]#
这就是 Linux 系统的命令提示符。含义
- []:这是提示符的分隔符号,没有特殊含义。
- root:显示的是当前的登录用户,笔者现在使用的是 root 用户登录。
- @:分隔符号,没有特殊含义。
- localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。
- ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
- #:命令提示符,Linux 用这个符号标识登录的用户权限等级。超级管理员,提示符就是 #;普通用户,提示符就是 $。
命令的基本格式
接下来看看 Linux 命令的基本格式:
[root@localhost ~]# 命令[选项][参数]
命令格式中的 [] 代表可选项,有些命令可以不写选项或参数,也能执行。
Linux常用快捷键
| 快捷键 | 功能 |
|---|---|
| Tab 键 | 自动补齐(两次可以显示所有选项) |
| 反斜杠“\” | 强制换行或转义 |
| Ctrl+a | 光标移到最前 |
| Ctrl+e 或 end键 | 光标移到最后 |
| Ctrl+U | 清空至行首不包括当前光标处的字符 |
| Ctrl+K | 清空至行尾包括当前光标处的字符 |
| Ctrl+w | 从当前光标删除到开头 |
| ALT+d | 从当前光标删除末尾 |
| Ctrl+l | 清屏 |
| Ctrl+c | 取消本次命令编辑 |
| Ctrl+s/Ctrl+q | 锁屏/解锁 |
| 向上下箭头 | 回看执行过的命令 |
如何获得命令帮助
help命令可以查看内部命令
与此同时help也可用来查看外部命令的帮助
于此同时还有man操作手册
info ls也可以用来查询还有百度
shell与内、外部命令
可以使用 type 命令来区分内外部命令
Linux绝对路径和相对路径
绝对路径一定是由‘/’开头开始写起
绝对路径是相对于根路径 / 的,只要文件不移动位置,那么它的绝对路径是恒定不变的;而相对路径是相对于当前所在目录而言的,随着程序的执行,当前所在目录可能会改变,因此文件的相对路径不是固定不变的。
Linux命令行下,如何识别文件类型?
| 文件属性 | 文件类型 |
|---|---|
| - | 常规文件,即file |
| d | 目录文件 |
| b | block device 即块设备文件,如硬盘;支持以block为单位进行随机访问 |
| c | character device 即字符设备文件,如键盘支持以character为单位进行线性访问 |
| l | symbolic link 即符号链接文件,又称软链接文件 |
| p | pipe 即命名管道文件 |
| s | socket 即套接字文件,用于实现两个进程进行通信 |
查看及切换目录(cd,pwd,ls,du命令)
cd :切换目录 cd 目标位置
| 命令 | 效果 |
|---|---|
| cd cd ~ | 若不指定目标位置,切换到当前用户的宿主目录(家目录) |
| cd - | 到前一次目录 |
| 一个点号“.”开头(自己) | 表示以当前的工作目录作为起点(已点开头的是) |
| 两个点号“..”开头(上一级) | 表示以当前目录的上一级目录(父目录)作为起点 |
| “~用户名”形式开头 | 表示以指定用户的宿主目录(家目录)作为起点 |
| "."开头文件 | 表示隐藏文件 |
| ~apple (有个用户叫apple 家目录为起点) | 表示以指定用户的宿主目录作为起点 |
pwd:显示当前工作路径
ls:查看目录中的文件
- -l 已长格式显示文件和目录列表 ll=ls -l
- -a 显示全部包括隐藏文件,包括 .和..
- -A 显示全部文件或隐藏文件,但不包括 . 和..
- -d 仅列出目录本身,而不是列出目录内的文件数据
- -h 友好显示文件大小(human,人性化)
- -R 递归显示该目录及该目录的子目录下的所有内容
- --color 显示颜色
- -S 以文件容量大小排序
- -i 显示indoe号
drwxr-xr-x. 2 root root 6 7月 21 01:40 公共
rwxr-xr-x 权限三个 一组 rwx r-x r-x 什么人能对它增删改查(3个对象)
2 连接数是2
Root 这个文件 属于 root
Root 这个文件属于 root组
6 文件大小
7月 21 01:40 文件最后一次修改时间
公共 文件或者目录名字
通配符: 匹配文本名 ?任意单个字符 *任意长度的任意字符
du:查看当前所在文件夹的总磁盘占用量
du [选项] [文件或目录… ]
eg:
du -a与-s不能同时使用
创建目录和文件(mkdir,touch,ln命令)
mkdir:创建目录
- -p 递归创建文件夹
- -v 显示详细过程
touch:创建文件及修改文件时间戳
- 如果当前文件下没有同命名文件夹
- touch 文件名 新建一个文件夹
- 如果此文件夹下有同名文件
- 刷新修改此文件时间
ln:建立软/硬连接文件
硬链接
- ln 源文件(夹)路径 目标文件夹路径
- 不用非得使用绝对路径
软连接
- ln [-s] 源文件或目录… 链接文件或目标位置
- 加s是软连接 符号连接
- 一定要使用绝对路径
复制,删除,移动目录和文件(cp,rm,mv命令)
cp:复制文件和目录
cp 要复制的文件 要放置复制文件夹的位置/可以重名
| 选项 | 说明 |
|---|---|
| -f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
| -i | 覆盖目标同名文件或目录时提醒用户确认 |
| -p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
| -r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
| -a | 完整保留所有的信息 |
| -v | 可视化 |
| -u | 相当于增备,差异备份(只对文件夹起作用) |
-p保留文件的源权限
-a保留权限更强大 包括连接文件的属性也可以保留 建议使用-a
rm:删除文件和目录
rm [选项] 要删除的文件或目录
- -f、强制
- -i、交互
- -r 递归(删除目录需要)
mv:移动或重命名文件和目录
mv [选项] 源文件或目录 目标文件或目录 可以移动或改名
- -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
- -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);
- -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
- -v:显示文件或目录的移动过程;
查找目录和文件(which,find命令)
which:查找文件和目录
只能找命令的位置
find:查找文件和目录
查找文件有locate和find
locate是模糊查询不是实时查询(Linux系统中有一个文件数据库,找这个数据库,找那些一直不改变的文件)刷新数据库用:Updatedb
应用范围比较窄
find
find [查找范围] [查找条件表达式] [处理动作]
- 查找路径:指定具体目标路径;不指定为默认为当前目录
- 查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
- 处理动作:对符合条件的文件做操作,默认输出至屏幕(print)
| 查找类型 | 关键字 | 说明 |
|---|---|---|
| 按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“* ” 及“?” 通配符 |
| 按文件大小查找 | -size | 根据目标文件的大小进行查找 |
| 按文件属性查找 | -user | 根据文件是否属于目标用户进行查找 |
| 按文件类型查找 | -type | 根据文件的类型进行查找()文件文件类型包括普通文件(f)目录(d)块设备文件(b)字符设备文件(c) |
| 按inode查找 | -inum | 根据文件inode号查找 |
| 按权限查找 | -perm | 按文件权限查找 |
| 最大搜索目录深度 | -maxdepthlevel | 将你的文件已分级的形式查找 |
| 最小搜索目录深度 | -mindepthlevel | 同上 |
- find -name 按名称查找
2.find -size 按文件大小查找
查找root目录下大于1024k的文件
查找root文件下小于1M的文件
- fao:文件大小不加+—号是一定范围,范围越精确越好
- find -user 按文件属主查找
- find -type 按文件类型查找 f(普通文件) d(目录) c(字符文件) b(块设备)
- find -inum 按照indoe查找
6. find -maxdepth level -mindepth level
7. find -mtime 按天数查找文件
找到7天以上且文件类型为普通文件且大于1M的文件且删除
动作处理 默认
- print输出屏幕让你看一下
- ls 显示详细信息
- delete 直接删除
- ok 连接符 会询问
- exec 连接符 不会询问
find -name "*.txt" -ok mv {} /mnt ;
找到名字以txt结尾的文件
-ok 处理动作 连接 前面后面的命令 会询问你要不要这样处理
mv {} 代指前面 find找到的文件 /mnt 移动到的目录 \;固定格式
不删除,移动文件
find -name '*.txt' -ok mv {} /mnt ;
会询问
find -name '*.txt' -exec mv {} /mnt ;
不会询问
alias:别名
将常用的一些比较复杂的命令简单化 alias 自行定义的命令=‘常用的复杂命令’
删除别名:unalias别名命令
所有使用命令修改的配置都是临时生效 只有修改配置文件(写入文件)才是永久生效
总结:学会使用Linux里面的基础命令用来修改文件或目录