[beacon@localhost ~]$
~ 当前所在目录的名字,会随着用户进入不同目录而改变
$ 所具有的权限(表示普通用户)
# 表示超级用户
Tab键可以补全命令
ctrl+R 查找使用过的命令
ctrl+L 清屏 同 clear命令
Ctrl + D 文件结束符
Shift + PgUp用于向上滚屏
Shift + PgDn用于向上滚屏
Ctrl+A光标跳到一行命令的开头,Home键有相同效果
Ctrl+E光标跳到一行命令的结尾,End键有相同的效果
Ctrl +U删除在光标左侧的所有字符
Ctrl +K删除在光标右侧的所有字符
Ctrl+W 删除光标左侧的一个单词(空格隔开的一个字符串)
目录和文件
1) pwd //显示当前工作目录
2) mkdir mydir //创建工作目录
3) cd mydir //更改工作目录
4) rmdir mydir //删除工作目录
5) touch myfile //创建文件
6) mv myfile mydir //移动目录或文件
7) cp myfile myfir //复制目录或文件
8) rm -rf mydir //删除目录或文件
9) ls -l myfile //查看文件最后被编辑时间
10) ls -lu myfile //查看文件最后被访问时间
11) touch -at 01011212 myfile //修改文件最后被访问时间
12) ls //列出所有文件和目录
13) ls -a //查看所有文件
14) ls -i //显示文件索引节点号
15) ls -l //详细显示
16) ls -m //以逗号分隔
17) sudo apt-get install tree
18) tree -l//以树状图列出目录内容
19) tree -a //所有
20) tree -i //不以阶梯状
21) tree -s //列出文件或目录大小
22) tree -t //按更改时间
23) file -b myfile //显示目录或文件的详细信息
24) stat myfile //同上
一、文件操作-浏览和创建文件
1.1、cat和less
- cat 是concatenate的缩写,表示“连接/串接”
- cat 命令可以一次性在终端中显示文件的所有内容
- 用法:只需要在命令后加上想要显示的文件路径即可
less
- 和cat命令最大区别是less可以分页
- 空格键:文件内容读取下一个终端屏幕行数
- 回车键:文件内容读取下一行,
- d键:前进半个屏幕
- b键:后退一行,与键盘上向上键效果一样
- u键:后退半页(半个屏幕)
- q键:停止读取文件,中止less命令
- =号:显示在文件中的位置
- h键:显示帮助文档,按q键退出帮助文档
- /:进入搜索模式
- 要在搜索所得结果中跳转,可以按n键(跳到下一个符合项目)
- 按N键 跳到上一个符合项目
1.2、head命令和tail命令:显示文件的开头和结尾
head:
- head命令:显示文件开头
- 默认显示文件头10行
tail:显示文件结尾
- tail 命令配合-f参数实时跟踪文件的更新
- 可以指定间隔检查的秒数。用 -s参数:tail -f -s 4
1.3、touch命令和mkdir命令:创建文件和目录
touch创建文件
mkdir创建目录
mkdir -p one/two/three 递归创建目录,可用于创建嵌套目录
二、文件的复制,移动,删除和链接
cp和mv命令拷贝和移动文件
2.1、rm命令:删除文件和目录
- 保险起见,用 rm 命令删除文件时,可以加上 -i参数,这样删除文件时,终端会询问我们是否确定删除
- -f 参数,强制删除
- -r:递归删除
2.2、ln命令:创建链接
Linux有两种链接类型
- Physical link:物理链接或硬链接
- Symbolic link:符号链接或软链接
硬链接原理:
- 使链接的两个文件共享同样文件内容,就是同样的incode
- 硬链接缺陷:只能创建指向文件的硬链接,不能创建指向目录的
- 通过一些参数的修改,也可以创建指向目录的硬链接,但比较复杂
软链接:
- 软链接猜猜真正像Windows下的快捷方式,原理很相似
- 创建硬链接时In不带任何参数,创建软连接时要加上 -s 参数
- s 是 symbolic 的缩写
- 软链接可以指向目录,硬链接不行
三、用户管理-用户和权限
sudo命令:以root身份运行命令
useradd命令:添加新用户
userdel命令: 删除用户
3.1、群组的管理和文件权限管理
群组管理的命令
Linux中每一个用户都属于一个特定的群组
groupadd:创建群组
- groupadd 后接需要创建的群组名 创建群组
usermod命令:修改用户账户
- -l: 对用户重命名。/home中的用户家目录名不改变,需要手动修改
- -g: 修改用户所在群组
chown命令:改变文件的所有者
- chown 是 change 和 owner 的缩写。需要root身份才能运行
- 后接新的所有者的用户名,再接文件名
chmod 命令:修改文件的访问权限
- chmod命令不需要root用户也能运行
用数字来分配权限:chmod的绝对用法
权限 | 数字 | 计算 |
--- | 0 | 0+0+0 |
r-- | 4 | 4+0+0 |
-w- | 2 | 0+2+0 |
--x | 1 | 0+0+1 |
rw- | 6 | 4+2+0 |
-wx | 3 | 0+2+1 |
r-x | 5 | 4+0+1 |
rwx | 7 | 4+2+1 |
用字母来分配权限
- chmod u+rx file 文件file的所有者增加读和运行的权限
- chmod g+r file 文件file 的群组其他用户增加读的权限
- chmod o-r file 文件file的其他用户移除读的权限
- chmod g+r o-r file 文件file的群组其他用户增加读的权限,其他用户移除读的权限
- chmod go-r file 文件file的群组其他用户和其他用户均移除读的权限
- chmod +x file 文件file的所有用户增加运行的权限
-R参数:递归地修改访问权限
- chmod 配合 -R参数可以递归地修改文件访问权限
四、文件查找
4.1、locate 命令 ,快速查找
- locate 后接要查找的文件名
- locate 命令是搜索包含关键字的所有文件和目录
- 对刚创建不久的文件,因为没有收录进文件数据库,因此locate 命令找不到其索引,所以不会返回任何结果,Linux 系统每天会更新一次文件数据库
- 如果想要立即更新用 updatedb 命令强制系统更新文件数据库
- updatedb 命令只能由 root用户执行
- locate 命令会列出所有在文件数据库中找到的内容
4.2、 find命令,深入查找
- find 命令不会在文件数据库中查找文件的记录,而是遍历实际硬盘
- find 命令 用法 : find <何处> <何物> <做什么> <何物>是必须指定的
- 何处:指定在哪个目录中查找,如果没有给出《何处》参数,会在当前目录及其子目录中查找
- 何物:可根据文件名字 ,文件大小 ,最近访问时间来查找
- 做什么:可对找到的用户做操作
根据文件名查找:
例如:在var/log 目录下查找 syslog的文件
find/var/log -name "syslog"
查找以 sylog 结尾的文件 ,可以用 *syslog
查找包含 syslog 关键字的文件 ,可以用 *syslog*
如果在整个硬盘中查找 find / -name "syslog"
根据文件大小查找:
例如:以 root 身份查找 /var 中大小超过 10M的文件
find /var -size + 10M
如果要查找小于指定大小的文件,可以用减号
find /var -size - 10M
如果没有加减号则查找指定大小的文件
根据文件的最近访问时间查找:
- 可以用 -atime参数 例如查找近7天内以.txt结尾的文件 find -name "*.txt" -atime -7
仅查找目录或文件:
- -type d:只查找目录类型
- -type f:只查找文件类型
- 如果不指定 -type参数类型,find命令默认同时查找目录和文件
4.3、find命令的高级用法:操作查找结果
格式化打印查找结果:
find -name "*.txt" -printf "%p - %u\n"
- %p: 文件名
- - : 一个短橫
- %u\n: 文件所有者
删除查找到文件:
用 -delete 参数
find -name "*.txt" -delete 会删除当前目录及子目录下所有以 .jpg为后缀的文件
调用命令:
使用 -exec 参数,后接一个命令
假如将 one目录 下所有查找到的txt文件的访问权限都改为600
find one -name "*.txt" -exec chmod 600 {} \;