文章目录
- 1. Linux命令的格式
- 2. 文件与目录操作命令
- 3. Linux的文件权限
- 4. 文件内容查阅命令
- 5. 查找命令
- 6. 文件打包压缩命令
- 7. 磁盘与目录的容量
- 8. 其它命令
- 9. 常用的几个快捷键
1. Linux命令的格式
command [-options] parameter1 parameter2 ...
命令 选项 参数1 参数2
说明:
- command :命令名,相应功能的英文单词或单词的缩写 ,命令这一部分肯定是存在的
- [-options] :选项,可用来对命令进行控制,选项通常是以
-
来指明的,可以省略 - parameter :传给命令的参数,可以是零个、一个 或者多个,可以省略
- 命令、选项、参数之间以空格隔开(一个或多个空格都视为是一个空格)
2. 文件与目录操作命令
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | cd | change Directory | 切换工作目录 |
02 | ls | list | 列出当前目录下的内容 |
03 | mkdir | make Directory | 创建一个新的目录 |
04 | rmdir | remove Directory | 删除一个空的目录 |
05 | rm | remove | 移除文件或目录 |
06 | mv | move | 移动文件与目录,或更名 |
07 | cp | copy | 复制文件或目录 |
08 | touch | touch | 修改文件时间或创建新文件 |
09 | pwd | print working directory | 显示目前所在的目录 |
2.1. 切换工作目录:cd
- 比较特殊的目录
. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表“目前使用者身份”所在的主文件夹
~account 代表 account 这个使用者的主文件夹(account是个帐号名称)
cd ~dmtsai
# 去到 dmtsai 这个使用者的家目录,亦即 /home/dmtsai
cd ~
# 表示回到自己的家目录
cd
# 没有加上任何路径,也还是代表回到自己家目录
cd ..
# 表示去到目前的上层目录
cd -
# 表示回到上一次所在的目录
- 绝对路径和相对路径
绝对路径:从根目录
/
一级级找下去,需要写出完整路径名相对路径:参照当前所在目录进行查找,一般以
.
和..
来构成
2.2. 列出当前目录下的内容:ls
usage:
ls [-ahl] 目录名称
======================================================
选项与参数:
-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-h :将文件容量以人类较易读的方式(例如 GB, KB 等等)列出来
-l :长数据串列出,包含文件的属性与权限等等数据(常用)
=====================================================
范例:
ls -al
# 将当前目录下的所有文件列出来(含属性与隐藏文件)
ls -al ~
# 将主文件夹下的所有文件列出来(含属性与隐藏文件)
2.3. 创建新目录:mkdir
usage:
mkdir [-mp] 目录名称
====================================================
选项与参数:
-m :配置文件的权限,直接配置,不需要看默认权限 (umask) 的脸色
-p :直接将所需要的目录(包含上一级目录)递归创建起来
====================================================
范例:
mkdir test
# 创建一名为 test 的新目录
mkdir -p test1/test2/test3/test4
# 加了这个 -p 的选项,可以自行帮你创建多层目录
mkdir -m 711 test2
# 创建权限为rwx--x--x的目录
2.4. 删除“空”的目录:rmdir
rmdir test
# 删除test这个空目录
2.5. 移除文件或目录:rm
usage:
rm [-fir] 文件或目录
======================================================
选项与参数:
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递回删除,最常用在目录的删除,这是非常危险的选项!
======================================================
范例:
[root@www tmp]# rm -i bashrc
# 将文档bashrc 删除掉,如果加上 -i 的选项就会主动询问喔,避免你删除到错误的档名
rm -i bashrc*
# 将/tmp底下开头为bashrc的档名通通删除,注意那个`*`,代表的是 0 到无穷多个任意字符
rm -r /tmp/etc
# 将/tmp/etc/ 这个目录删除掉
2.6. 移动文件与目录,或更名:mv
usage:
mv [-fiu] source destination
=======================================================
选项与参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
=======================================================
范例:
mv 旧文件名 新文件名 ====>修改文件名
如:mv file1 filea 将当前目录的文件file1改名为filea
mv 旧目录名 新目录名 ====>修改目录名
如:mv dir1 dira 将当前目录下的目录dir1改为dira
mv 文件名 目录名 ====>移动路径
如:mv filea dira 将当前目录下filea移动到dira子目录
如:mv filea ~ 将当前目录下filea移动到家目录
如:mv ~/filea .. 将家目录下的fila移动到当前路径的上一级目录
2.7. 复制文件或目录:cp
usage:
cp [-ipr] 来源文件(source) 目标文件(destination)
[root@study ~]# cp [options] source1 source2 source3 .... directory
======================================================
选项与参数:
-i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-p :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用);
-r :递回持续复制,用于目录的复制行为;(常用)
=====================================================
范例:
cp File1 file2
# 将当前目录下的文件File1拷贝成file2
cp file2 dira/
# 将当前目录下的文件file2拷贝到dira子目录
cp -r dira dirb
# 复制dira目录下的所有内容到dirb,其中`-r`参数表示递归复制
cp -i file2 dira
# 如果dira目录下面有同名的file2,加入-i参数就会要求你确认是否覆盖同名的文件
2.8. 修改文件时间或创建新文件:touch
使用场景:
创建一个空的文件;
将某个文件日期修订为目前 (mtime 与 atime)
touch file1
# 在当前目录新建名为file1的文件
2.9. 显示目前所在的目录:pwd
pwd 单纯显示出目前的工作目录
3. Linux的文件权限
3.1. Linux文件属性
下达ls -al
可以查看到文件的属性:
[root@www ~]# ls -al
drwx------ 3 root root 4096 Sep 5 10:37 .gconf <=范例说明处
-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log <=范例说明处
[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ]
[ 权限 ][链接数][拥有者][群组][文件容量][ 修改日期 ] [ 档案名 ]
上述七个字段代表的意思:
- 第一栏共有十个字符,代表这个文件的类型与权限
第一个字符代表这个文件是“目录、文件或链接文件等等”:
1. 当为[ d ]则是目录;
2. 当为[ - ]则是文件;
3. 若是[ l ]则表示为链接文件(link file);
4. 若是[ b ]则表示为设备文件里面的可供储存的周边设备(可随机存取设备);
5. 若是[ c ]则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。
接下来的字符中,以三个为一组,且均为“rwx” 的三个参数的组合;
[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute);
如果没有权限,就会出现减号[ - ]。
1. 第一组为“文件拥有者可具备的权限”;(owner)
2. 第二组为“加入此群组之帐号的权限”;(group)
3. 第三组为“非本人且没有加入本群组之其他帐号的权限”。(others)
- 第二栏表示有多少文件名链接到此节点(i-node)
- 第三栏表示这个文件/目录的“拥有者帐号”
- 第四栏表示这个文件的所属群组
- 第五栏为这个文件的容量大小,默认单位为Bytes;
- 第六栏为这个文件的创建日期或者是最近的修改日期
- 第七栏为这个文件的文件名
3.2. 修改文件权限
序号 | 命令 | 作用 |
---|---|---|
01 | chgrp | 改变文件所属群组 |
02 | chown | 改变文件拥有者 |
03 | chmod | 改变文件的权限 |
3.2.1. 改变所属群组:chgrp
usage:
chgrp [-R] dirname/filename ...
====================================================
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录都更新成为这个群组之意。常常用在变更某一目录内所有的文件的情况。
====================================================
范例:
chgrp users install.log 将文件install.log所属群组变更为users
3.2.2. 改变文件拥有者,chown
usage:
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录
===================================================
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更
===================================================
范例:
chown bin install.log
# 将install.log的拥有者改为bin这个账号
chown root:root install.log
# 将install.log的拥有者与群组变更为root
3.2.3. 改变权限:chmod
3.2.3.1. 数字类型改变文件权限
- 文件权限基础知识
1. Linux文件的基本权限有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限
2. 我们可以使用数字来代表各个权限,各权限的分数对照表是:
r:4 w:2 x:1
3. 每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为 [- rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
- chmod通过数字改变权限的语法
usage:
chmod [-R] xyz 文件或目录
====================================================
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递回(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
====================================================
范例:
chmod 777 .bashrc 将.bashrc这个文件所有的权限都设置启用
chmod 644 .bashrc 将.bashrc这个文件的权限修改成-rw-r--r--
3.2.3.2. 符号类型改变文件权限
九个权限每三个为一组分别属user / grou / others三种身份,我们就可以借由u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份
范例:
chmod u=rwx,go=rx .bashrc
# 设置.bashrc这个文件的权限成为“-rwxr-xr-x”
chmod a+w .bashrc
# 增加.bashrc这个文件的每个人均可写入的权限
chmod a-x .bashrc
# 拿掉全部人的可执行权限
4. 文件内容查阅命令
序号 | 命令 | 作用 |
---|---|---|
01 | cat | 由第一行开始显示文件内容 |
02 | tac | 从最后一行开始显示文件内容 |
03 | nl | 显示的时候,顺道输出行号 |
04 | more | 一页一页的显示文件内容 |
05 | less | 与 more 类似,但是比 more 更好的是,他可以往前翻页 |
06 | head | 只看头几行 |
07 | tail | 只看尾巴几行 |
08 | od | 以二进制的方式读取文件内容 |
4.1. 将文件内容一次性全部输出
4.1.1. 由第一行开始显示文件内容:cat
usage:
cat [-AbEnTv]
====================================================
选项与参数:
-n :打印出行号,连同空白行也会有行
范例:
cat /etc/issue
# 检阅 /etc/issue 这个文件的内容
cat -n /etc/issue
# 检阅 /etc/issue 这个文件的内容,加印行号
4.1.2. 从最后一行开始显示:tac
tac /etc/issue 由最后一行到第一行反向在屏幕上显示出来
4.1.3. 显示的时候,顺道输出行号:nl
nl /etc/issue 用 nl 列出 /etc/issue 的内容
4.2. 一页一页显示文件内容
4.2.1. more
more /etc/man.config
# Generated automatically from man.conf.in by the
# configure script
# man.conf from man-1.6d
....(中间省略)....
--More--(28%) <== 重点在这一行!你的光标也会在这里等待你的命令
- 使用 more 的操作键
4.2.2. less
与 more 类似,但是比 more 更好的是,他可以往前翻页
less /etc/man_db.conf
- 使用 less 的操作键
操作键 | 功能 |
---|---|
空格键 | 向下翻动一页 |
pagedown | 向下翻动一页 |
pageup | 向上翻动一页 |
/word | 向下搜寻word字符串 |
?word | 向上搜寻word字符串 |
n | 重复前一个搜寻 (与 / 或 ? 有关) |
N | 反向的重复前一个搜寻 (与 / 或 ? 有关) |
q | 离开 less 这个程序 |
4.3. 只看特定几行内容
4.3.1. 只看头几行:head
usage:
head [-n number] 文件
=====================================================
选项与参数:
-n :后面接数字,代表显示几行的意思
=====================================================
范例:
head /etc/man_db.conf
# 默认的情况中,显示前面十行
head -n 20 /etc/man_db.conf
# 显示前面20行
4.3.2. 只看尾巴几行:tail
usage:
tail [-n number] 文件
=====================================================
选项与参数:
-n :后面接数字,代表显示几行的意思
====================================================
范例:
tail /etc/man_db.conf
# 默认的情况中,显示最后的十行
tail -n 20 /etc/man_db.conf
# 显示最后20行
4.4. 查看非纯文本文件
4.4.1. 以二进位的方式读取文件内容:od
usage:
od [-t TYPE] 文件
=======================================================
选项或参数:
-t :后面可以接各种“类型 (TYPE)”的输出,例如:
a :利用默认的字符来输出;
c :使用 ASCII 字符来输出
d[size] :利用十进制(decimal)来输出数据,每个整数占用 size Bytes ;
f[size] :利用浮点数值(floating)来输出数据,每个数占用 size Bytes ;
o[size] :利用八进位(octal)来输出数据,每个整数占用 size Bytes ;
x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size Bytes ;
=====================================================
范例:
od -t c /usr/bin/passwd
# 将/usr/bin/passwd的内容使用ASCII方式来展现
5. 查找命令
5.1. 查找符合条件的文件:find
find 默认会递归搜寻子目录文件
5.1.1. 根据文件名查找文件
usage:
find 目录名 选项 查找条件
范例:
find / -name passwd
# 找出文件名为 passwd 的文件
find / -name "*passwd*"
# 找出文件名包含了 passwd 这个关键字的文件
find /etc -name '*httpd*'
# 找出 /etc 下面文件名包含 httpd 的文件
5.1.2. 查找几天内有变动的文件
usage:
find [PATH] [option] [action]
====================================================
选项与参数:
-mtime n :n 为数字,意义为在 n 天之前的“一天之内”被更动过内容的文件;
-mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件文件名;
-mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件文件名。
=====================================================
范例:
find / -mtime 4
# 将4天前的 24 小时内有变动过的文件都列出来
find /var -mtime -4
# 将4天内有被更动过的文件列出来
find /var -mtime +4
# 将4天之前(不包括第4天)有被更动过的文件列出来
- 有没有加上“+, -”的差别
+4代表大于等于5天前的文件名:
find /var -mtime +4
-4代表小于等于4天内的文件文件名:find /var -mtime -4
4则是代表4-5那一天的文件文件名:find /var -mtime 4
5.2. 查找文件中符合条件的字符串:grep
使用grep命令来查找文件中符合条件的字符串
grep 是分析一行信息, 若当中有我们所需要的信息就将该行拿出来
usage:
grep [-inv] '搜寻字串' filename
=====================================================
选项与参数:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字串' 内容的那一行
====================================================
范例:
grep -n "abc" test1.txt 在test1.txt中查找字符串abc
grep -rn "abc" * 在当前目录下递归查找字符串abc
grep -v "abc" test1.txt 在test1.txt中,只要没有字符串abc的行就取出
5.3. 查找命令或应用程序所在位置:which,whereis
5.3.1. which
which 默认是根据“PATH”这个环境变量所规范的路径,去搜寻“可执行文件”的文件名
which pwd 定位到/bin/pwd
which gcc 定位到/usr/bin/gcc
5.3.2. whereis
whereis ==> 由一些特定的目录中寻找文件文件名
whereis 主要是针对 /bin /sbin下面的可执行文件, 以及 /usr/share/man下面的 man page 文件来搜索而已
whereis pwd 查找到可执行程序的位置/bin/pwd和手册页的位置/usr/share/man/man1/pwd.1.gz
6. 文件打包压缩命令
6.1. 压缩单个文件
6.1.1. gzip压缩单个文件
usage:
gzip [-lkdv] 文件名
=======================================================
选项与参数:
-l:列出压缩文件的内容
-k:在压缩或解压时,保留输入文件
-d:将压缩文件进行解压缩
-v:可以显示出原文件/压缩文件的压缩比等信息
===================================================
范例:
1)查看
gzip -l 压缩文件名
比如:gzip -l pwd.1.gz
2)解压
gzip -kd 压缩文件名
比如:gzip -kd pwd.1.gz 该压缩文件是以.gz结尾的单个文件
3)压缩
gzip -k 源文件名
比如:gzip -k mypwd.1 得到了一个.gz结尾的压缩文件
注意:
- 如果gzip不加任何选项,此时为压缩,压缩完该文件会生成后缀为.gz的压缩文件,并删除原有的文件,所以说,推荐使用
gzip -k
来压缩源文件。 - gzip只能压缩单个文件,不能压缩目录。
6.1.2. bzip2压缩单个文件
usage:
bzip2 [-dkzv] 文件名
===================================================
选项与参数:
-d :解压缩的参数
-k :保留原始文件,而不会删除原始的文件喔!
-z :压缩的参数 (默认值,可以不加)
-v :可以显示出原文件/压缩文件的压缩比等信息;
===================================================
范例:
1)压缩
bzip2 -k 源文件名
比如:bzip2 -k mypwd.1得到一个.bz2后缀的压缩文件
2)解压
bzip2 -kd 压缩文件名
比如:bzip2 -kd mypwd.1.bz2
注意:
-
如果bzip2不加任何选项,此时为压缩,压缩完该文件会生成后缀为.bz2的压缩文件,并删除原有的文件,所以说,推荐使用bzip2 -k 来压缩源文件。
-
bzip2只能压缩单个文件,不能压缩目录。
6.1.3. xz压缩单个文件
usage:
xz [-dlkv] 文件名
=======================================================
选项与参数:
-d :就是解压缩啊
-t :测试压缩文件的完整性,看有没有错误
-l :列出压缩文件的相关信息
-k :保留原本的文件不删除
-v :可以显示出原文件/压缩文件的压缩比等信息
=======================================================
范例:
1)压缩
xz -k 源文件名
比如:bzip2 -k mypwd.1 得到一个.xz后缀的压缩文件
2)解压
xz -kd 压缩文件名
比如:xz -kd mypwd.1.xz
注意:
-
如果xz不加任何选项,此时为压缩,压缩完该文件会生成后缀为.xz的压缩文件,并删除原有的文件,所以说,推荐使用xz -k 来压缩源文件。
-
xz只能压缩单个文件,不能压缩目录。
6.2. 打包、压缩多个文件或目录:tar
- tar常用选项:
-c(create):创建打包文件,用来生成文件包
-x:解打包或解压缩的功能,可以搭配-C在特定目录解开
-t:察看打包文件里面含有哪些文件,重点在察看『文件名』
-z:使用gzip方式进行压缩 / 解压缩,它与`c`结合就表示压缩,与`x`结合就表示解压缩。
-j:使用bzip2方式进行压缩 / 解压缩,它与`c`结合就表示压缩,与`x`结合就表示解压缩
-J:使用xz方式进行压缩 / 解压缩,它与`c`结合就表示压缩,与`x`结合就表示解压缩
-v:在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f <filename>:指定档案文件名称,-f后面要立刻接要被处理的文件,所以必须放选项最后
-C <指定目录>:解压到指定目录
6.2.1. tar打包、gzip压缩
1)压缩
tar -czvf 压缩文件名 目录名
如:tar -czvf dira.tar.gz dira
注意:tar -czvf与tar czvf是一样的效果,所以说,后面统一取消-。
2)查看
tar -tzvf 压缩文件名
如:tar -tzvf dira.tar.gz
3)解压
tar -xzvf 压缩文件名
tar -xzvf 压缩文件名 -C 指定目录
如:tar -xzvf dira.tar.gz 解压到当前目录
如:tar -xzvf dira.tar.gz -C /home/book 解压到/home/book
6.2.2. tar打包、bzip2压缩
1)压缩:
tar -cjvf 压缩文件名 目录名
如:tar -cjvf dira.tar.bz2 dira
2)查看:
tar -tjvf 压缩文件名
如:tar -tjvf dira.tar.bz2
3)解压:
tar -xjvf 压缩文件名
tar -xjvf 压缩文件名 -C 指定目录
如:tar xjvf dira.tar.bz2 解压到当前目录
如:tar xjvf dira.tar.bz2 -C /home/book 解压到/home/book
6.2.3. tar打包、xz压缩
1)压缩:
tar -cJvf 压缩文件名 目录名
如:tar -cJvf dira.tar.xz dira
2)查看:
tar -tJvf 压缩文件名
如:tar -tJvf dira.tar.xz
3)解压:
tar -xJvf 压缩文件名
如:tar xjvf dira.tar.xz 解压到当前目录
7. 磁盘与目录的容量
序号 | 命令 | 作用 |
---|---|---|
01 | df | disk free 显示磁盘剩余空间 |
02 | du | disk usage 显示目录下的文件大小 |
7.1. 显示磁盘剩余空间:df
usage:
df [-ah] [目录或文件名]
======================================================
选项与参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
范例:
df
# 不加任何选项,默认会将系统内所有的 filesystem 列出来!
df -h
# 将容量结果以易读的容量格式显示出来
df -h /etc
# 将 /etc 下面的可用的磁盘容量以易读的容量格式显示
7.2. 显示目录下的文件大小:du
usage:
du [-ahs] 文件或目录名称
======================================================
选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
======================================================
范例:
du
# 列出目前目录下的所有文件大小
du -a
# 列出目前目录下的所有文件大小,但是将文件的容量也列出来
8. 其它命令
序号 | 命令 | 作用 |
---|---|---|
01 | date | 显示日期与时间 |
02 | cal | 显示日历 |
03 | bc | 简单好用的计算器 |
04 | history | 显示在终端中所执行过的历史命令 |
05 | man/info/help | 查阅命令帮助信息 |
06 | shutdown | 关机/重启 |
07 | file | 识别文件类型 |
08 | apt | 安装/卸载软件 |
09 | ln | 创建实体链接与符号链接 |
10 | alias | 设置命令别名 |
11 | ` | ` |
12 | > >> | 重定向 |
13 | tee | 双向重定向 |
14 | - | 减号-的用途 |
8.1. 显示日期的指令:date
date 显示目前系统的当前时间
# Fri May 29 14:32:01 CST 201
date +%Y/%m/%d 格式化输出系统时间
# 2015/05/29
date +%H:%M 格式化输出系统时间
# 14:33
8.2. 显示日历的指令:cal
cal 列出目前这个月份的月历
cal 2015 显示2015年整年的月历情况
cal 10 2015 显示2015年10月的月历
8.3. 简单好用的计算器:bc
bc 进入到bc这个软件的工作环境当中
scale=number 设置小数点位数
# bc默认仅输出整数,如果要输出小数点下位数,那么就必须要运行 scale=number ,那个number就是小数点位数
quit 离开bc回到命令提示字符界面
8.4. 显示历史命令:history
history 显示在终端中所执行过的历史命令
8.5. 查阅命令帮助信息
8.5.1. 指令的 --help 求助
通过 --help 可以很快速取得你所需要的命令的选项、参
数的说明
举列:
date --help 取得date指令的帮助信息
ls --help 取得ls指令的帮助信息
8.5.2. man查阅命令使用手册
可以通过man page查阅 command 命令的使用手册
man 是 manual 的缩写,是 Linux 提供的一个 手册,包含了绝大部分的命令、函数的详细使用
举列:
man date 查阅date指令的使用手册
man手册通常有9册内容:
man page中常用的快捷键:
8.5.3. info查阅命令使用手册
info与man的用途其实差不多, 可将一份说明文档拆成多个节点(node)显示,并具有类似超链接的功能,增加易读性,平时较少使用
举例; info ls
8.5.4. 总结help,man,info
- 如果你知道某个指令,但却忘记了相关选项与参数,请使用–help的功能来查询相关信息;
- 当有任何你不知道的指令或文件格式,但是你想要了解它,请使用man或者是info来查询!
8.6. 关机/重启
序号 | 命令 | 作用 |
---|---|---|
01 | sync | 将数据同步写入硬盘中 |
02 | shutdown | 惯用的关机命令 |
03 | reboot , halt , poweroff | 重新启动,关机 |
8.6.1. shutdown
usage:
shutdown [-krhc] [时间] [警告讯息]
=================================================
选项与参数:
-k : 不要真的关机,只是发送警告讯息出去
-r : 在将系统的服务停掉之后就重新开机(常用)
-h : 将系统的服务停掉后,立即关机(常用)
-c : 取消已经在进行的 shutdown 指令内容
=================================================
范例:
shutdown
# 单纯执行 shutdown 之后,系统默认会在 1 分钟后进行关机动作
shutdown -h now
# 立刻关机,其中 now 相当于时间为 0 的状态
shutdown -h 20:25
# 系统在今天的 20:25 分会关机,若在21:25才下达此指令,则隔天才关机
shutdown -h +10
# 系统再过十分钟后自动关机
shutdown -r now
# 系统立刻重新开机
shutdown -r +30 'The system will reboot'
# 再过三十分钟系统会重新开机,并显示后面的讯息给所有在线上的使用者
shutdown -k now 'This system will reboot'
# 仅发出警告信件的参数,系统并不会关机
8.6.2. reboot, halt, poweroff
sync; sync; sync; reboot
# 先将数据写回内存,再重启
halt
# 系统停止,屏幕可能会保留系统已经停止的讯息
poweroff
# 系统关机,所以没有提供额外的电力,屏幕空白
8.7. 识别文件类型:file
usage:
file 文件名
==================================================
范例:
file ~/.bashrc 为ASCII 编码的text类型
file ~/.vimrc 为UTF-8 Unicode 编码的text类型
file ~/Pictures/* 如图形文件JPEG/PNG/BMP格式
file ~/100ask/ 为directory表明这是一个目录
file /bin/pwd 出现 ELF 64-bit LSB executable,即为ELF格式的可执行文件
file /dev/* 出现character special(字符设备文件)、 block special(块设备文件)等
8.8. 安装/卸载软件:apt
apt 是
Advanced Packaging Tool
,是 Linux 下的一款安装包管理工具,可以在终端中方便的 安装/卸载/更新软件包
sudo apt install 软件包
# 安装软件
sudo apt remove 软件名
# 卸载软件
sudo apt upgrade
# 更新已安装的包
8.9. 创建实体链接与符号链接:ln
usage:
ln [-s] 来源文件 目标文件
=====================================================
选项与参数:
-s :如果不加任何参数就进行链接,那就是hard link,至于 -s 就是symbolic link
=======================================================
范例:
ln passwd passwd-hd
# 将 /tmp/passwd 制作 hard link 成为 passwd-hd 文件
ln -s /etc/crontab crontab2
# 创建一个符号链接文件链接到 /etc/crontab
8.9.1. Hard Link,实体链接
在使用 ln 创建链接时,如果没有 -s 选项建立的是一个硬链接文件,来源文件和目标文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
8.9.2. Symbolic Link,符号链接,亦即是快捷方式
ln -s 被链接的源文件 链接文件
建立文件的符号链接,用通俗的方式讲类似于 Windows 下的快捷方式
- 实体链接和符号链接文件读取示意图:
8.10. 命令别名设置: alias
8.10.1. 设置命令别名
alias lm='ls -al | more'
# 以后你只要输入 lm 就相当于输入了 ls -al|more这一串指令
alias rm='rm -i'
# 以后使用 rm 的时候会让我们确认是否要移除该文件,避免误删除
8.10.2. 取消命令别名
unalias lm
unalias rm
8.11. 管线命令:pipe
Pipe:一个命令的输出可以通过管道作为另一个命令的输入
管线命令『 | 』仅能处理经由前面一个命令传来的正确信息,也就是 standard output 的信息,对于 stdandard error会予以忽略
常用的管线命令有:
more :分屏显示内容
grep :在命令执行结果的基础上查询指定的文本
ls -al /etc | less
# 这样使用 ls 命令输出后的内容,就能够被 less 读取,并且利用 less 的功能,我们就能够前后翻动相关的信息
8.12. 重定向 > 和 >>
Linux允许将命令执行结果重定向到一个文件,将本应显示在终端上的内容输出或追加到指定文件中
>
表示输出,会覆盖文件原有的内容
>>
表示追加,会将内容追加到已有文件的末尾
8.13. 双向重导向:tee
tee 会同时将数据流分送到文件与屏幕,可以将输出转存一份到文件内并将同样的数据继续送到屏幕去处理
usage:
tee [-a] file
=======================================================
选项与参数:
-a :以累加 (append) 的方式,将数据加入 file 当中
=======================================================范例:
ls -l /home | tee ~/homefile | more
# 将 ls 的数据存一份到 ~/homefile ,同时屏幕也有输出信息
ls -l / | tee -a ~/homefile | more
# tee 后接的文件会被覆盖,若加上 -a 这个选项则能将信息累加
8.14. 关于减号 -
的用途
在管线命令当中,常常会使用到前一个命令的stdout 作为下一个命令的stdin , 某些命令需要用到文件名 (例如 tar) 来进行处理时,该 stdin 与 stdout 可以利用减号 “-” 来替代
tar -cvf - /home | tar -xvf -
# 将 /home 里面的文件打包,但打包的数据不是纪录到文件,而是传送到 stdout;
# 经过管线后,将 tar -cvf - /home 传送给后面的 tar -xvf - 。后面的这个 - 则是取用前一个命令的 stdout
9. 常用的几个快捷键
9.1. [Tab]按键
具有命令补全与文件补齐的功能
9.2. [Ctrl]-c 按键
中断目前程序,让当前正在执行的程序停掉
9.3. ⬆ ⬇光标键
可以在曾经使用过的命令之间来回切换
9.4. [Ctrl]-d 按键
代表着 “键盘输入束(End Of File, EOF 或 End Of Input)”的意思;可以用来取代exit的输入,直接离开命令行
9.5. [shift]+{[PageUP]|[Page Down]}按键
使用 [Shift]+[Page Up] 来往前翻页,也能够使用 [Shift]+[Page Down] 来往后翻页
9.6. [ctrl] + a/[ctrl] + e/[ctrl] + k
[ctrl]+a:让光标移动到整个指令串的最前面
[ctrl]+e:让光标移动到整个指令串的最后面
[ctrl]+k:删除从光标所在位置到行末