mkdir 命令
mkdir
命令用于创建目录。
用法:mkdir [选项] [目录名]
参数:-p
创建多级目录,如果目录名称不存在,就新建一个。
案例:
mkdir farmsec
mkdir farmsec1 farmsec2
mkdir -p farmsec3/farmsec4
ls 命令
ls
命令用于显示指定工作目录下之内容(列出指定目录所含之文件及子目录),ls
命令的输出信息可以进行彩色加亮显示,以区分不同类型的文件。
用法:ls [选项] [目录]
参数:
-
-a
显示所有文件及目录 (. 开头的隐藏文件也会列出) -
-l
除文件名称外,也将文件型态、权限、拥有者、文件大小等资讯详细列出 -
-h
以容易理解的格式列出文件大小
案例:
ls
ls -l
ls -a farmsec3
ls -al farmsec3
pwd 命令
pwd
命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称。
用法:pwd
案例:
pwd
cd 命令
cd
命令用于切换当前工作目录。
用法:cd [目录]
案例:
cd farmsec
用法:cd [绝对路径]
案例:
cd /root/farmsec3/farmsec4
用法: .
代表当前目录,..
代表上一级目录,cd ~
用于切换至登录用户家目录。cd -
用于回到上一个目录。
案例:
cd .
cd ..
cd ~
cd -
touch 命令
touch
命令用于创建一个空白的新文件,如果同名文件已存在,则修改其时间属性。
用法: touch [选项] [文件名]
案例:
touch fsec1
cp 命令
cp
命令主要用于复制文件或目录。
用法:cp [选项] [源文件] [目录]
参数:
-r
:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。(递归)-p
:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。(保持默认属性)
案例;
cp fsec1 farmsec
cp /root/farmsec/fsec1 farmsec1
cp /root/farmsec1/fsec1 /root/farmsec2
cp -r farmsec farmsec3/farmsec4
mv 命令
mv
命令用来为文件或目录改名、或将文件或目录移入其它位置。
用法:mv [选项] [源文件/源目录] [目录]
参数:
- -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。(直接覆盖不询问)
- -n: 不要覆盖任何已存在的文件或目录。(不覆盖已存在的文件)
mv fsec1 f1
mv f1 farmsec
mv farmsec farmsec1
mv
命令的另一种用法是将文件剪切。
mv 路径/文件名 路径、文件名
mv 1.txt /root
mv 2.txt /root/3.txt
mv /root/2.txt /root/1/1.txt
rm命令
rm
命令用于删除文件或者目录。
用法:rm [选项] [文件\目录]
- -i 删除前逐一询问确认。
- -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
- -r 将目录及以下之档案亦逐一删除。
rm f1
rm -f fsec
rm farmsec1/farmsec/ #删除farmsec1/farmsec/目录下的所有文件
rm -r farmsec1
rm -rf farmsec2
rm -rf /root/farmsec3
rm -rf
是一条危险的命令,代表递归删除某文件,如rm -rf /
是递归删除根目录下的所有目录和文件,该命令不会询问,一旦执行系统将崩溃。
Linux 的命令格式
linux命令的格式表现为:命令+选项+对象
COMMAND options arguments
具体说明:
COMMAND: 表示命令的名称, 如 ls 。
options:定义命令的执行特性,可以有长短两种选项:
-
长选项: 用 -- 引导,后面跟完整的单词,如 --help
-
短选项: 用 - 引导,后面跟单个的字符, 如 -a
-
多个短选项可以组合使用,例如: -h -l -a == -hla, 但是长选项不能组合使用,如 --help后面就不能再跟另外一个单词了。
options也可以有自己的参数,注意:选项与选项之间、选项与参数之间、参数与参数之间必须有空格。
arguments:表示命令的作用对象,如上述示例中farmsec 就是ls命令的作用对象。
在Linux中严格区分大小写。
Linux 获取命令帮助的方式
使用-h
,–help
和man
可以查看命令的帮助文件。
ping -h
cp --help
man cp
绝对路径与相对路径
绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,linux的绝对路径是指从根目录说起的。万物起源为/
目录 。
例如: /dev/somedir/..
、/etc/password
而相对路径则是从当前目录说起: 即 ./
。例如在当前目录为根的情况下的./usr/bin
和usr/bin
是一个目录。
Tab键的使用
tab键的两大作用:
- tab补全:只需输入文件或目录名以及命令的前几个字符,然后按TAB键,如无相重的,完整的文件名或者命令立即自动在命令行出现;如有相重的,再按一下TAB键,系统会列出当前目录下所有以这几个字符开头的名字。
- tab键查看:在命令行下,只需输入例如m,再连续按两次TAB键,系统将列出所有以m开头的命令,(包括自定义的Bshell命令函数),对查找某些记不清楚的命令特有用。熟练使用tab键可提高工作效率。
四个特殊的文件名
. #代表当前目录
.. #代表上一级目录
- #代表上一个工作的目录
~ #代表家目录(root为/root,其他用户在/home下)
cat 命令
cat
命令用于打开文件查看文件内容。
用法:cat [选项] [文件]
案例:
cat /etc/passwd
cat -v farmsec
#加入参数-v后再查看
参数:
- -v:除了 LFD(换行) 和 TAB 之外所有控制符,用 ^ 和 M- 显示。
echo 命令
echo
命令用于输出指定内容。
用法:echo '[文本]'
echo '123'
利用>>
和>
也可以将输出内容写入到文件中。
> #为覆盖
>> #为追加
使用>>
和>
可以将命令的输出结果保存于文件中。
cat /etc/passwd >1.txt
more 命令
more
命令类似 cat
,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是,按空格键Space
就往下一页显示,按Enier
键显示文本的下一行内容,按 b
键就会往回(back)一页显示,按q
键退出。
用法:more [选项] [文件]
案例:
more /etc/passwd
less 命令
less
与more类似,用less命令显示文件时,用PageUp
键向上翻页,用PageDown
键向下翻页。要退出less程序按q
键。
用法:less [选项] [文件]
案例:
less /etc/passwd
head 命令
head
命令用于查看文件的开头的内容。在默认情况下,head命令显示文件的头10行内容
用法:head [选项] [文件]
参数:
- -n<行数> 显示的行数
案例:显示passwd文件前两行
head -n 2 /etc/passwd
tail 命令
tail
文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行,如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题
用法:tail [选项] [文件]
- 参数:-n<行数> 显示的行数
案例:查看passwd文件尾部三行内容。
tail -n 3 /etc/passwd
- 参数:-f 循环读取
案例:查看新增的内容
tail -f /var/log/secure
/var/log/secure
是系统远程登录日志,我们可以通过tail -f
命令监控日志变化情况。
随后我们另开一个命令终端远程登录此台计算机。可以看到tail -f
命令监控到了日志变化。Ctrl+c
取消命令。
使用管道操作符|
可以把一个命令的标准输出传送到另一个命令的标准输入中,连续的|意味着第一个命令的输出为第二个命令的输入,第二个命令的输入为第一个命令的输出,依次类推。
案例:只显示passwd文本的第五行。
head -n 5 /etc/passwd |tail -n 1
wc 命令
wc
命令用来计算数字。利用wc指令我们可以计算文件的Byte数、字数或是列数。
用法:wc [选项] [文件]
参数:
- -l 显示行数
- -c 显示Bytes数
- -w 显示字数
案例:
wc -l /etc/passwd
wc -c /etc/passwd
wc -w /etc/passwd
du 命令
du
命令可查看文件使用空间
用法:du [选项] [文件]
参数:
- -h 以K,M,G为单位,提高信息的可读性。
案例:
du -h /etc/passwd
df 命令
df
命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
用法:df [选项]
参数:
- -h 使用人类可读的格式
案例:
df -h
diff 命令
diff
命令用于比较文件的差异。
diff
以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则 diff 会比较目录中相同文件名的文件,但不会比较其中子目录。
案例:
diff 1.txt 2.txt
diff命令所参考的不是第一个文件,而是第二个文件,它的输出信息有以下几种字符:
c: 表示必须做一些修改才能使两个文件相同
a: 表示必须添加一些内容才能使两个文件相同
d: 表示必须删除一些内容才能使两个文件相同
输入/输出重定向
大多数系统命令从您的终端获取输入并将结果输出发送回您的终端。
通常用于标准输出的命令的输出可以很容易地转移到文件中。此功能称为输出重定向。
正如命令的输出可以重定向到文件一样,命令的输入也可以从文件重定向。
输出重定向
当我们执行命令时,命令的输出会显示在终端上。但有时,我们需要命令的输出保存在文件中,这时就需要>
和>>
对命令输出进行重定向。
>
符号,是将命令的输出存入文件,并覆盖文件原本的内容。
ls > 1.txt
cat /etc/passwd > 1.txt
>>
符号,表示将命令输出结果追加入文件,不会覆盖文件内容。
echo '1' >> 1.txt
echo '2' >> 2.txt
输入重定向
正如命令的输出可以可重定向到文件,命令的输入也可以重定向到文件。一般使用<
和<<
,其中<<
可以引入多行命令的输入。
cat < 1.txt
ls < 1.txt
<<
,则更为常用一些,它将运算符解释为读取输入的指令,直到找到包含指定分隔符的行。直到包含分隔符的行的所有输入行都被输入到命令的标准输入中。命令形式一般如下:
command << delimiter
document
delimiter
其中delimiter
代表用户定义的分隔符,两个分隔符之间,是输入的多行参数。
如:
wc -l << EOF
abcd
1234
EOF
## 其输出结果为2,统计了输入的行数。
Linux 的文件结构
在Linux系统中有一个重要的概念:一切都是文件。 其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。
在Linux系统中文件后缀是没有作用的,后缀名只是为了能让自己能够更好的区别文件的作用。
Linux系统中的各类文件被Linux使用目录树进行管理, 所谓的目录树就是以根目录/
为主,向下呈现分支状的一种文件结构。
与Windows 系统不同,Linux 系统没有C盘、D盘、E盘那么多的盘符,只有一个根目录(/),所有的文件(资源)都存储在以根目录(/)为树根的树形目录结构中。
- 这样做最明显的好处是,开发者仅需要使用一套 API 和开发工具即可调取 Linux 系统中绝大部分的资源。举个简单的例子,Linux 中几乎所有读(读文件,读系统状态,读 socket,读PIPE)的操作都可以用read函数来进行;几乎所有更改(更改文件,更改系统参数,写 socket,写 PIPE)的操作都可以用write函数来进行。
- 不利之处在于,使用任何硬件设备都必须与根目录下某一目录执行挂载操作,否则无法使用。我们知道,本身Linux具有一个以根目录为树根的文件目录结构,每个设备也同样如此,它们是相互独立的。如果我们想通过Linux上的根目录找到设备文件的目录结构,就必须将这两个文件系统目录合二为一,这就是挂载的真正含义。
下面我们来逐一介绍Linux根目录下的各个目录:
/bin
目录下包含了用户命令文件,也就是shell命令。/boot
包含了系统启动过程中所需要的所有内容。/dev
目录是设备文件或者专有文件的存放位置。/etc
目录包含了系统的配置文件。/root
用户专有的家目录。一个用户对自己的家目录拥有绝对的控制权。/lib
目录里面存放着共享库和内核模块。在系统的启动阶段和运行根文件系统的各种命令时,都需要用到这些共享库,所以必须与根文件放在一起。/media
与/mnt
是常见的挂载点./opt
目录系统附加软件的存放地址/sbin
目录必备的系统软件存放处。用户系统维护的软件和某些只限root用户使用的命令存储在/sbin /usr/sbin以及/usr/local/sbin目录下。/srv
目录某些服务进程启动以后,他们需要读取的数据会放在srv目录中。/tmp
目录存放临时文件。任何程序都不用对/tmp目录下的任何文件或目录负责。/var
目录包含着系统中绝大多数的随时变化着的数据,比如系统日志。/var的某些内容是不能共享给其他系统的,典型的就是/var/logs /var/run。当然某些是可以共享的,如/var/spool/news。
VI 编辑器
vi编辑器:vi
是Linux系统的第一个全屏幕交互式编辑程序,它从诞生至今一直得到广大用户的青睐,历经数十年仍然是人们主要使用的文本编辑工具,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。 vi编辑器具有三种模式:一般模式
、编辑模式
、指令模式
。 这三种模式可以通过观察vi界面的左下角判断。
在命令行执行vi [文件名]
命令可进入vi编辑器并编辑文件,如果没有同名文件则创建。
命令模式
下常用指令:
w # 保存 write
q # 退出 quit
wq # 保存并退出
q! # 不保存强制退出
set nu # 显示行号
wq! # 强制保存并退出
在一般模式
下可使用的指令:
/farmsec # 搜索“farmsec”内容
gg # 光标立马回到第一行
2 # 光标向下跳2行,以此类推
G # 移动到最后一行
dd # 删除当前行
d2j # 删除当前行和下两行
yy # 复制一行
y2y # 复制2行
p (小写) # 粘贴到光标之后
P (大写) # 粘贴到光标之前