一、终端
1.tty
ctrl + alt + F1 回到图形化界面
ctrl + alt + F2 进入tty1
ctrl + alt + F3 进入tty2
……
2.还是图形界面终端更好用
二、命令行
1.命令行提示符
[dlc@localhost ~]$
- dlc是当前用户的名字。
- @前面是用户名、后面是所在的域。
- localhost是主机的名字。
- ~ 是当前目录名字,会随着用户进入不同目录而改变
- $ 指示所具有的权限($普通用户,#超级用户)
2.简单的命令
date 显示当前时间
[root@localhost dlc]# date
2020年 04月 30日 星期四 10:19:46 CST
ls 列出当前目录下文件和目录
[root@localhost /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
3.命令的参数
参数是写在命令之后的一些补充选项,命令和参数之间有空格隔开。
参数没有固定的格式,但是一般来说还是遵循一定的规范。
- 短参数(一个字母):一般是一个短横线后接一个字母。多个短参数也可以合在一起。
- 长参数(多个字母):两个短横线开始
参数的值
- 短参数赋值:command -p 10
- 长参数赋值:command --parameter=10
三、查找命令和命令的历史记录
1.如何找到一个命令
- Tab键补全命令,也可以补全目录、文件。
- 按两次Tab可以显示出所有结果
2.命令的历史记录
- 按上下键查找
- 也可以用
Ctrl + R
查找。 - history 列出之前使用过的所有命令,可以用
!编号
这样的格式来重新运行history输出中对应编号的命令。
3.一些实用快捷键
- Ctrl + L 清屏
- Ctrl + D 给终端传递EOF(文件结束符)
- Ctrl + A 光标跳到一行命令开头
- Ctrl + E 光标跳到一行命令结尾
- Ctrl + U 删除所有在光标左侧的命令字符
- Ctrl + K 删除所有在光标右侧的命令字符
- Ctrl + W 删除在光标左侧的一个单词
- Ctrl + Y 用于粘贴U、K、W删除的字符串
四、文件组织,pwd和which命令
1.文件组织
(1)文件分类:
分类:普通文件、特殊文件
- 普通文件
文本类型、声音文件、程序 - 特殊文件
例如 光盘、驱动器
Linux中一切都是文件
(2)根目录
根目录就是 /
(3)目录结构
使用 /
表明目录的层级与包含关系
(4)根目录直属子目录:
bin:包含会被所有用户使用的可执行程序
boot:包含Linux启动相关文件
dev:包含外设
etc:系统的配置文件
home:用户私人目录
lib:包含被程序所调用的库文件
media:媒体
mnt:挂载,临时挂载一些装置
opt:可选的应用软件包
root:root的家目录
sbin:系统二进制文件
srv:服务,一些网络服务启动后所需要取用的数据
tmp:存放临时文件
usr:Unix操作系统软件资源
var:包含程序的数据,比如日志文件
2.pwd和which
- pwd:显示当前目录的路径
- which:获取命令的可执行文件的位置(?)
什么意思?
Linux下,每一条命令其实对应了一个可执行程序。比如:
五、浏览和切换目录
1.ls命令:列出文件和目录
CentOS终端默认有颜色标注:
- 蓝色:目录
- 绿色:可执行文件
- 红色:压缩文件
- 浅蓝色:链接文件
- 灰色:其他文件
ls命令常用参数
- -a:显示所有文件和目录,包括隐藏的
- -l:详细列表
权限 链接数 创建者名称 文件所在群组 大小byte 最近修改时间 名称
- -h:以Ko,Mo,Go的形式显示文件大小(和 l 一起用)
- -t:按文件最后一次修改时间排序(和 l 一起用)
2.cd:切换目录
绝对路径:/
开头,从根目录开始
相对路径:从当前目录开始
.
表示当前目录,..
表示上级目录
3.du:显示目录包含的文件大小
- -a:显示目录和文件(默认只显示目录)
- -s:只显示总计大小
- -h:以Ko,Mo,Go的形式显示文件大小
六、浏览和创建文件
1.cat和less:显示文件内容
cat:一次性在终端中显示文件的所有内容
- -n:显示行号
- 可以显示多个文件
less:分页显示文件内容
有以下快捷键
- 空格:文件内容读取下一个屏幕终端的行数(与pageDown一样)
- 回车:向下一行
- d键:前进半页
- b键:后退一页(与pageUp一样)
- y键:后退一行
- u键:后退半页
- q键:退出less
- =键:显示在文件中的位置
- h键:显示帮助文档
- /键:搜索模式,n下一个,N上一个
2.head和tail:显示文件的开头和结尾
head显示文件开头
默认显示头10行。
- -n:指定显示行数
tail显示文件结尾
与head相似。
但是还可以用-f
来实时追踪文件的更新。
默认会每过一秒检查一下文件是否有新内容,也可以指定间隔检查的秒数,用-s
3.touch和mkdir:创建文件和目录
touch:创建一个空白文件
touch本意是修改文件时间戳,不过如果后面跟的是一个不存在的文件,便会新建。
mkdir:创建一个目录
可以用-p
递归创建目录结构
七、文件的复制、移动、删除、链接
1.cp:拷贝文件或目录
也可以将文件拷贝到其他目录。
如果要拷贝目录,需要加上-r
,目录中所有的文件、目录都会被拷贝。
使用通配符*
,可以替代任意字符串。比如cp *.txt folder
,就是将当前目录下所有txt文件拷贝到folder中。
2.mv:移动文件或目录/重命名
- 移动:用法类似cp
- 重命名:本质也是移动,只是在移动时可以修改名字。
3.rm:删除文件和目录
- -i:向用户确认是否删除
- -f:不会询问,强制删除
- -r:递归删除一个目录
4.ln:创建链接
每个文件有三部分:文件、文件名、权限
两种链接类型:
-
硬链接
两个文件名指向同一个文件。(文件名像是引用,文件像是实例)
-
软链接
创建软链接需要加上-s
文件2作为文件1的软链接,则文件2的文件内容是文件1。
八、用户和权限
1.sudo:以root身份运行命令
一般会创建一个有限权利的用户,这是一种安全机制。
sudo命令:暂时成为root。
sudo su:一直成为root
su -:切换到root用户,且目录定位到root的家目录
2.Linux下的用户组织
一种可能的组织形式:
3.用户管理的命令
- useradd:添加新用户
- passwd:修改密码
- userdel:删除用户,
-r
会删除家目录
九、群组管理和文件权限管理
1.群组管理的命令
Linux每一个用户都属于一个特定的群组。如果你不设置用户的群组,默认会创建一个和它用户名一样的群组,并且把用户划归到这个群组。
- groupadd:创建群组
- usermod:修改用户账户
-l
:对用户重命名,家目录名不改变-g
:修改用户所在群组-G
:将一个用户添加到多个群组-a
:追加,不离开以前的,又想加入新的群组,可与-G一起用
- groups:查看用户所在群组
- groupdel:删除群组
2.改变文件的所有者和群组
- chown:改变文件的所有者
chown 用户 文件
。-R
:递归设置子目录和子文件
- chgrp:改变文件的群组
chgrp 群组名 文件
- chown也可以改变群组:
chown oscar:friends file.txt
,将文件所有者改为oscar,群组改为friends。
3.修改权限
(1)权限的原理
文件访问权限符:
- d:表示“目录”
- l:表示“链接”
- r:可读
- w:可写
- x:可运行
- 相应位置有字母表示有相应权限,没有用
-
表示。后面有.
表示启动安全标签
(2)chmod:修改文件的访问权限
不需要是root,只要是该文件的所有者就可以运行。
- 数字分配
chmod 620 file
就是rw–w—x - 字母分配
- u:所有者
- g:群组
- o:其他用户
- a:所有用户
+
:添加权限,-
:去除权限,=
:分配权限
例如:
同样的利用-R
,可以递归地修改访问权限。
十、软件仓库
1.软件包
(1)定义
一个软件包其实是软件的所有文件的压缩包,二进制形式,包含了安装软件的所有指令。在Red Hat一族里,软件包的后缀是.rpm。
(2)和windows安装程序的区别
- 软件包管理包括了依赖关系的管理。
- 软件包不需要去自己搜索下载,几乎所有.rpm包存放在相同地方,称为软件仓库(repository)
(3)切换软件仓库(以阿里云为例)
- 首先备份系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repo
[root@localhost dlc]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 下载阿里云的yum源配置文件到/etc/yum.repos.d/
[root@localhost dlc]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- 运行yum makecache生成缓存
yum clean all
yum makecache
2.包管理工具
yum是CentOS中默认包管理工具
- yum update/upgrade:更新软件包
- yum search:搜索软件包
- yum install:安装软件包
- yum remove:删除软件包
3.本地软件包安装
本地的.rpm软件包,可以用rpm命令来安装。
sudo rpm -i *.rpm
用于安装sudo rpm -e 包名
用于卸载
十一、RTMF阅读手册
1.man命令:显示使用手册
使用手册类别:
- 可执行程序或Shell命令
- 系统调用(Linux内核提供的函数)
- 库调用(程序库中的函数)
- 文件
- 特殊文件
- 游戏
- 杂项
- 系统管理命令
- 内核子程序
2.手册页的不同区域
区域的名字是用大写和粗体表示,且靠左对齐。
- NAME:名字
- SYNOPSIS:包含使用此命令的所有方法
- DESCRIPTION:命令更深入描述,包括所有参数及其用法
- AUTHOR:作者
- COPYRIGHT:版权
- SEE ALSO:扩展阅读
3.SYNOPSIS区域语法总结
- 粗体:原封不动输入
- 下划线:用实际内容替换
- [-hvc]:-h -v -c都是可选的
- a|b:输入a或者b,但不能同时输入
- …:表示前面的内容可以输入多个
3.apropos:查找命令
比如要查找如何控制音量:
apropos sound
4.-h或–help
显示帮助文档。
十二、查找文件
1.locate 快速查找
locate 后接要查找的关键字即可。
刚刚新建的,用locate查不到。因为locate在文件的数据库中查找,刚创建的文件还不会放到数据库。
2.find 深入查找
find 何处 何物 做什么
,何物是必须指定的。
- 何处:指定在哪个目录中查找,所有子目录也会被查找。假如没有指出会在当前目录及子目录查找。
- 何物:可以根据名字、大小、最近访问时间等查找
- 做什么:找到后可以接后续操作
(1)根据文件名查找
需要使用通配符来模糊查询。
(2)根据文件大小查找
假如要查找/var中大小超过10M的文件
(3)根据最近访问时间查找
查找7天内访问的txt文件。
(4)按类型
-type
- -type d:只查找目录
- -type f:只查找文件
(5)后接操作
默认的操作是显示(-print)
- 可以用
-printf
格式化打印。 - 用
-delete
删除找到的文件 - 使用
-exec
可以后接一个命令,{}
会用每一个查找到的文件来替换,\;
是必须的结尾
例如:find -name "*.txt" -exec chmod 600 {} \;
就是将当前目录所有txt文件权限改为600