1 文件目录结构
- /boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
- /dev: 设备文件(打印机、音响……)
- /etc:配置文件
- /home:用户的家目录,每一个用户的家目录通常默认为/home/username
- /root:管理员的家目录
- /lib:库文件
- /media:挂载点目录,移动设备
- /mnt:挂载点目录,额外的临时文件系统
- /opt:可选目录,第三方程序的安装目录
- /proc:伪文件系统,内核映射文件
- /sys:伪文件系统,跟硬件设备相关的属性映射文件
- /tmp:临时文件, /var/tmp
- /var:可变化的文件
- /bin: 可执行文件, 用户命令
- /sbin:管理命令
2 简单命令
- type:命令类型(外部命令 & 内建命令)
type命令的基本使用方式就是直接跟上命令名字。
type -a可以显示所有可能的类型,比如有些命令如pwd是shell内建命令,也可以是外部命令。
type -p只返回外部命令的信息,相当于which命令。
type -f只返回shell函数的信息。 - help:内建命令帮助
- man:外部命令帮助
-1:用户命令(/bin, /usr/bin, /usr/local/bin)
-2:系统调用
-3:库用户
-4:特殊文件(设备文件)
-5:文件格式(配置文件的语法)
-6:游戏
-7:杂项(Miscellaneous)
-8: 管理命令(/sbin, /usr/sbin, /usr/local/sbin) - whereis : 定位命令位置
- file:文件类型(二进制文件 & 脚本文件)
- echo:打印到标准输出
$PATH: 环境变量路径
$LANG:当前环境语言
3 基本命令
3.1 文件系统命令
- df:显示磁盘使用情况
df -h - du:显示文件系统使用情况
du -h - ls:显示目录
ls -a:隐藏文件
ls -l:文件详细信息- 文件类型
-:普通文件 (f)
d: 目录文件
b: 块设备文件 (block)
c: 字符设备文件 (character)
l: 符号链接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket) - 文件权限:9位,每3位一组,3组权限(当前用户、组、其他)每一组:rwx(读,写,执行)
- 文件硬链接的次数
- 文件的属主(owner)
- 文件的属组(group)
- 文件大小(size),单位是字节
- 时间戳(timestamp):最近一次被修改的时间
- 文件类型
- cd:切换工作目录
- pwd:显示当前工作目录
- mkdir:创建目录
mkdir -p:创建多级目录
mkdir x/{aa,bb,cc}dir:二级目录中创建多个目录,例:
- rm:删除
rm -f:强制删除,不询问
rm -r:删除目录下所有 - cp:拷贝
cp 原文件 拷贝后的文件路径/文件名
cp -r:拷贝目录下所有 - mv:移动,重命名
- ln:建立链接
ln -s:建立软链接 - stat:看文件或者文件系统的状态
access:最后一次访问(仅仅是访问,没有改动)文件的时间
modify:最后一次修改文件的时间
change:最后一次对文件属性改变的时间,包括权限,大小,属性等等 - touch:创建文件和修改文件或者目录的时间戳
touch -a:只修改文件的access(访问)时间.
touch -c或–no-create:不创建不存在的文件。
touch -d:使用指定的日期时间,而非现在的时间
touch -m:指修改Modify(修改)时间,而不修改access(访问)时间
touch -r:使用指定file文件的时间戳(access,modify)更新文件的时间戳(access,modify)
3.2 文本操作命令
- cat:查看文件内容
- more:按页来查看文件的内容,空格向后翻页
- less:将文件加载到内存中,空格向后翻页,b向前翻页
- head:默认查看文件前10行
head -2:查看文件前2行 - tail:默认查看文件后10行
tail -2:查看文件后2行
tail -f:当文件增长时,输出后续添加的数据 - 管道:“|”代表管道,左边简单命令的标准输出指向右边简单命令的标准输入
注意:右边简单命令一定能够接受标准输入
head -6 profile | tail -1:head -6输出profile文件的前6行,作为tail的输入,tail -1输出前六行的最后一行,也就是查看profile文件的第6行 - xargs:把标准输入中读取到的内容和自己的参数拼接成新的命令并执行
echo “/” | xargs ls -l:将echo输出的"/"和"ls -l"拼成"ls -l /"命令并执行 - vi:文本编辑
-
打开文件
vi /path/to/somefile
vi +3:打开文件,并定位于第3行
vi +:打开文件,定位至最后一行
vi +/PATTERN:打开文件,定位至第一次被PATTERN匹配到的行的行首 -
关闭文件
:q 退出,没有动过文件
:wq或:x 保存并退出
:q! 不保存并退出
:w 保存
:w! 强行保存 -
模式
-
编辑模式:按键具有编辑文本功能,默认打开进入编辑模式
- 移动光标
- 字符
h: 左;j: 下;k: 上;l: 右 - 单词
w:移至下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或前一个单词的词首 - 行内
0:绝对行首
^:行首的第一个非空白字符
$:绝对行尾 - 行间
G:文章末尾
3G:第3行
gg:文章开头 - 翻屏
ctrl+f:下一页
ctrl+b:上一页
- 字符
- 删除&替换单个字符
x:删除光标位置字符
3x:删除光标开始3个字符
r:替换光标位置字符 - 删除命令
dw:剪切、删除一个单词
dd:剪切、删除一行 - 复制粘贴&剪切
yw:复制一个单词
yy:复制一行
p或P:粘贴 - 撤销&恢复
u:撤销
ctrl+r:恢复 - 重复上一步的操作
.:重复上一步的操作
- 移动光标
-
输入模式:按键本身意义
-
末行模式:接受用户命令输入
- set:设置
:set nu或:set number:显示行号
:set nonu或:set nonumber:隐藏行号
:set readonly:只读
:set noreadonly:取消只读 - /:查找
/after:查找"after"
n:向下翻
N:向上翻 - !:执行命令
:! ls -l / - s查找并替换
: s/str1/str2/gi
/:临近s命令的第一个字符为边界字符:/,@,#
g:一行内全部替换
i:忽略大小写
范围
n:行号
.:当前光标行
+n:偏移n行
: 末 尾 行 , :末尾行, :末尾行,-3
%:全文
- set:设置
-
-
模式切换
- 编辑–>输入:
i:在当前光标所在字符的前面,转为输入模式
a:在当前光标所在字符的后面,转为输入模式
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
o:在当前光标所在行的下方,新建一行,并转为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式 - 输入–>编辑:
ESC - 编辑–>末行:
: - 末行–>编辑:
ESC, ESC
- 编辑–>输入:
-
3.3 用户权限命令
- useradd:添加用户
- userdel:删除用户
- groupadd:添加组
- groupdel:删除组
- usermod:修改用户帐号的各项设定
usermod -G:修改用户所属的附加群组
usermod -g:修改用户所属的群组
usermod -l:修改用户帐号名称 - id:显示用户的ID,以及所属群组的ID
- passwd:修改用户密码
- chmod:改变文件或者文件目录的所有者
- chown:改变一个或多个文件的存取模式
u 表示拥有者,g 表示组,o 表示其他,a 表示所有。
+表示增加权限,-表示取消权限,=表示重新设定权限。
r、4表示可读取,w、2表示可写入,x、1表示可执行