- / 称为根目录
- . 称为当前目录
- … 称为当前目录的上级目录
绝对路径 vs 相对路径
先说一下,基本的按键操作。
使用 tab 键补全
我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.
使用 ctrl + c
重新输入如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令.
此处先说两个基本的全局操作的,还有其他的针对性的按键操作具体部分再介绍。接下来先说说基本的输入性操作指令。
1.ls指令
常用选项:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
- -k 以 k 字节的形式表示文件的大小。
- ls –alk 指定文件-l 列出文件的详细信息。
- -r 对目录反向排序。
- -t 以时间排序。
- -R 列出所有子目录下的文件。(递归)
2.pwd命令
3.cd指令
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
cd … : 返回上级目录
cd ~:进入用户家目
cd -:返回最近访问目录
4.touch指令
例子:
touch test.txt
5.mkdir指令
建立一个目录
mkdir test
递归建立多级目录
mkdir -p test/test1
6.rm指令
常用选项:
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
重要注意事项:
千万不要运行 rm -rf / , 尤其是在公司的生产服务器上
7.cp指令
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,
则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
举例: cp test1.txt test2.txt
8.mv指令
常用选项
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
举例:
mv test1.txt test2.txt
9.cat指令
选项:
-n 对输出的所有行编号
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
常用选项
-k 根据关键字搜索联机帮助
num 只在第num章节找 man
man 能够看到 man 手册中的若干个章节及其含义
举例:
man ls
11.less指令
选项:
j k / 方向键: 向上向下滚动屏幕.
-N 显示每行的行号/字符串:向下搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
q: 退出
12.head指令
选项:
-n<行数> 显示的行数
13.tail指令
-f 循环读取
-n<行数> 显示行数
举例:
有一个文件共有100行内容,请取出第50行内容
(这里涉及到了重定向和管道操作,下面讲)
- 方法1
head -n50 test > tmp # 将前50行装入临时文件 tmp
tail -n1 tmp # 得到中间行
- 方法2
head -n50 test | tail -n1
14.vi指令
Linux 的很多指令, 如 cat head tail 等都是默认输出到 “标准输出” 中, 也就是显示器上的. 可以通过 > 这样的符
号把本来要输出到标准输出上的内容写到特定文件中. 这样的操作称为 “重定向”.
重定向有三种方式:
#先构造一个文件, 里面添加一些内容.
cat < test.txt
cat test.txt > test2.txt
#尝试删除一个不存在的文件
rm aaa > test.txt
#输出结果, 这个提示并没有被重定向到 test.txt 文件中. rm: cannot remove ‘aaa’: No such file or directory
#正确做法
rm aaa 2> test.txt
标准输入, 标准输出, 标准错误是三个特殊的文件, 每个进程在启动的时候都会默认打开. 分别对应到键盘, 显示 器, 显示器这样的设备.
在 Java 中, 分别对应到 System.in , System.out , System.err
管道是一种古老的 “进程间通信” 方式. 在 Linux 指令中可以使用 | 作为管道标记.
意思是将前一个指令标准输出的内容, 作为第二个指令的标准输入内容.
Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,
普通用户的命令提示符是“$”。
默认是 root 用户. 但是 root 用户权利比较大, 一旦使用不当可能会造成严重后果(例如 rm -rf /). 因此我们真正在公司中不会直接使用 root 用户来操作服务器.
useradd test
passwd test
注意, 输入密码的时候, 在控制台中不会有提示. 但实际上已经输入进去了.
访问一个文件的人可能分成三种类别.
命令 ll 显示了一个文件的详细信息. 解读如下图:
a) 文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
b) 基本权限
i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“-” 表示不具有该项权限
功能: 设置文件的访问权限
格式: chmod [参数] 权限 文件名
常用选项:
- R -> 递归修改目录文件的权限
- 说明:只有文件的拥有者和root才可以改变文件的权限
chmod命令权限值的格式
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号: u:拥有者 g:拥有者同组用 o:其它用户
a:所有用户
实例:
chmod u+w /home/abc.txt
chmod o-x /home/abc.txt
chmod a=x /home/abc.txt
②三位8进制数字
实例:
chmod 664 /home/abc.txt
chmod 640 /home/abc.txt