命令基础:
command [选项] [参数]
1. whoami
我是谁
2. pwd
我在哪 print working directory
windows下分盘 C D E F D:\oldCode\workspace
unix下 / 根目录 目录的开始位置 /home/ubuntu
/home/ubuntu
第一个/ 表示 根目录
第二个/ 表示 目录层级分隔符
3.ls
我有什么内容 list
列出当前目录下面的文件 及 目录
- ls -a 显示隐藏文件
unix下隐藏文件是以 . 开头 - ls -l 详细显示文件信息
drwxr-xr-x 3 ubuntu ubuntu 4096 12月 5 14:15 桌面
-
第一个字符 代表文件类型:
d 文件夹
– 普通文件
l 链接文件(桌面的快捷方式)
s socket文件
p 管道文件
c 字符设备文件
b 块文件文件 -
rwxr-xr-x 文件的用户权限
r read表示用户拥有read权限
w write
x execute 可执行 如果是目标代表该目录可进入
- 代表没有此权限
三组权限代表三种"人"的权限:
属主(拥有者) 属组(同一组的用户) 其他人
unix多用户的操作系统
一台服务器 每个人有自己账户 -
3 数值 代表文件的硬链接数
一个文件只有当硬链接数为0时,其所在磁盘上的文件才会被删除
否则只是硬链接数-1
软链接(访问的快捷方式)
硬链接(访问文件的一个方式) -
ubuntu 用户名
-
ubuntu 组名
-
4096 文件大小 目标大小为4096(目录结构大小 不是里面内容)
ls -l
ls -lk
ls -lh h 4k -
12月 5 14:15 文件最后修改时间
ls -t 按时间排序显示
ls -r 逆序显示 -
桌面 文件名 目录名
4.cd
我要去其它地方 切换目录 change directory
相对路径: 相对当前目录
绝对路径: 从/ 根目录表示的路径
. 表示当前所在的目录
… 表示当前所在的上一级目录
cd … 返回上级目录
~ 当前用户主目录 进入终端时默认的位置
/home/ubuntu
cd ~ 回到主用户目录
cd 回到主用户目录
一个用户对应一个用户主目录
/ 根目录
cd - 返回之前所在的目录
5.mkdir
创建目录 make directory
如果需要创建层级关系的目录 可以用 -p 选项
mkdir parentdir/childdir //如果parentdir不存在则创建失败
mkdir -p parentdir/childdir //一定能保证成功
6.touch
创建文件
如果文件存在,则更新文件的最后修改时间
7.rmdir
只能删除空目录
8.rm remove
删除文件
rm -r 能够删除非空目录
rm -f force 强制删除
rm -i 询问式删除
注意一下:用rm删除的文件找不回来的 谨慎
9.mv
移动 剪切 move 文件和目录都一样操作
可以把文件和目录移动到其它目录 也可以移动到当前目录改名
mv day04 day03
mv a ./桌面/b/ //移动到d目录下(若d不存在,则同下)
mv a ./桌面/b //移动到桌面下改名为d
mv -i 如果目标目录下有同名的文件 询问是否覆盖
10.cp
复制 copy
cp -r 复制文件夹
cp -i 询问是否覆盖
cp -f 强制执行
11.安装软件包
sudo apt-get install xxx //安装 xxx 软件包
sudo apt-get upgrade //升级
sudo apt-get update //更新软件源
sudo apt-get remove xxx //卸载 xxx 软件包
12.tree
以树形结构显示目录内容
13.链接文件
ln [-s] 目标文件 链接文件
给目标文件创建一个链接文件
如果 -s 选项 表示创建软链接文件
-
软链接: 快捷方式 文件中的内容只存储了目标文件的路径 但如果是打开或者显示 却是目标文件的内容
当目标文件消失之后 软件接文件失效
创建软件接 文件的链接数不变
目录也可以创建软链接
读写软链接 本质读写的是目标文件 -
硬链接: 访问目标文件的一种途径
每次删除文件本质上是硬链接数减1
当硬链接数为0时 数据才真正删除
14.echo
显示
15.输出重定向
> 覆盖
>> 追加
16.clear
清屏
17.cat
可以查看文件内容
more | less
more 显示一屏内容 Enter 向后翻一行 Space翻一屏 b向前翻一屏 q退出
less
head tail(非常实用)
tail -f 可以实时监测文件末尾写入的内容
详见:https://blog.csdn.net/qq_15256443/article/details/81664081?spm=1001.2014.3001.5506
18.find
查找文件
find 目录 -name file 根据文件名查找
-size -perm -user
find ~ -name a.txt
- 通配符
*代表任意多个任意字符
? 代表一个任意字符
[a-z] 代表区间的一个字符
find ~ -name "*.txt"
find ~ -name "????.txt"
19.grep
查找文件内容
grep -n strcontent
文件名 在文件中查找内容 显示所在行及内容
^ 匹配开始行
$ 匹配结束行
. 代表任意一个字符
.* 信表任意多个任意字符
非常实用:
找出主用户目录下所有.c文件中 包含 #include <stlid.h> 的文件
find ~ -name "*.c" | xargs grep "#include <stdlib.h>"
找出主用户目录下所有的.c文件
查找.c文件中是否包含 #include <stlid.h> 代码
20.管道
| 管道
前面命令的输出 作为 后面一个命令的输入
21.man unix下最强大的 手册
man ls 用法 描述 选项 参数
要退出查看 q