LPI

3.3 编写脚本

admin 提交于 周三, 06/27/2018 - 16:59

1. 一个例子

#!/bin/bash

# 第一行表示解释本脚本的命令路径,如果文件带有可执行属性,那么文件可以直接运行。

# 第一行的路径如果填写#!/usr/bin/python,那么就表示这是一个Python脚本文件,会用Python解释器解释。

# 井号开头的行是注释

 

echo "echo命令用来打印信息在屏幕上"

 

# 脚本退出的时候可以用exit 0;来返回退出状态,0表示正常返回,如果非0,表示异常返回。$?特殊变量可以返回上一条命令的退出状态。

ls '一个不存在的文件'

echo $?

# 屏幕会显示2,这是ls命令遇到文件不存在时返回的错误码。

 

# &&表示逻辑与,||表示逻辑或。在一般的计算机语言解释器中,如果&&左边的条件成立才会执行检查&&右边的语句是否成立;同样地,如果||左边的条件不成立才会执行检查右边的语句是否成立。这就起到了条件语句的作用。

3.2 在文件中搜索提取内容

admin 提交于 周五, 05/18/2018 - 09:13

1. 查看文件内容(cat、less、head、tail)

cat <filename>

如果文件很长,可以使用分页浏览命令less。在浏览过程可以使用CTRL+F往前翻页,CTRL+B往回翻页,F是forward的首字母,B是backward的首字母。按Q键退出less浏览模式。

less <filename>

进入less浏览模式之后,按“/”然后输入关键词可以搜索字符串,按小写的n搜索下一个,按大写的N搜索上一个。

也会有人习惯把less和cat用管道操作串起来来用,效果是一样的:

cat <filename> | less

在过去有个more命令(Windows命令行也有这个命令),和less类似,但过去的more命令不能往回翻页,而现在一些系统直接就把more使用less的版本。

有时候,我们只希望查看文件的前几行或者最后几行,那么可以用head或tail命令,其中参数-n指定行数,不指定的话默认显示10行。例如:

3.1 文件打包归档

admin 提交于 周三, 12/13/2017 - 17:27

在日常工作中,把文件打包是常见的操作。在Linux服务器管理中,把文件打包备份也是必要的维护步骤。

 

1. tar

tar是最常见的打包命令,下面命令可以把foo目录打包后以gzip格式压缩:

tar -czvf foo.tar.gz foo

如果想以高一点的压缩率压缩成bzip2文件,可以用下面命令:

tar -cjvf foo.tar.bz2 foo

如果希望压缩率再高一些,可以用下面命令压缩成xz格式(注意J参数是大些的):

tar -cJvf foo.tar.xz foo

2.4 文件操作(创建、移动、改名、删除)

admin 提交于 周三, 12/06/2017 - 13:56

1. 常用文件操作

复制文件:

cp file1 file2 # 把file1复制到名为file2下
cp -r dir1 dir2 # 参数-r表示复制的是目录
cp f* dir1/ # 把当前目录以f开头的文件复制到dir1目录下

移动文件或改名:

mv oldpath newpath

删除文件或目录:

rm file1 file2 file3
rm -rf dir1 # 参数-rf表示删除的是目录,删除的时候不做确认提示,直接删除

创建目录:

mkdir dirname

以上命令更多参数说明可以通过man命令查看(例如`man cp`)。

关于目录,补充说明一下在之前介绍cd命令时没有说明的一个问题,'.'代表当前目录,'..'代表上一级目录。`cd ..`表示返回到上一级目录。cd后面必须带空格,这一点和Windows命令行是不同的。

2.3 目录与文件

admin 提交于 周三, 11/29/2017 - 17:26

1. 文件系统

安装Linux的时候需要对系统进行分区,并选择分区的文件系统。对于Windows来说,我们可能会分出C、D、E几个盘。对于Linux来说,也是有分区的,不过分区体可以挂载在任何一个目录,整个系统都在根目录/下得一棵树,而不会分C、D、E几棵树。

选择好分区方案之后需要为分区选在文件系统。Windows的文件系统有Fat32、NTFS等。Linux则有ext2、ext3、ext4、Reiser,交换分区用的是swap文件系统。

下面解释一下Linux目录树的主要用途:

2.2 通过命令行获取帮助信息

admin 提交于 周三, 11/22/2017 - 09:13

1. man手册

这个man单词不是代表男人,而是manual手册的缩写。Linux有众多的命令,每个命令有很多参数,我们不大可能把所有细节都记得很清楚。这个时候man就很有用了,比如说,我们想知道ls有什么参数可以输入:

man ls

这个时候屏幕就会进入关于ls的手册页,在这个状态下按q退出,按CTRL+F向下翻页(f代表Forward),按CTRL+B翻页(B代表Backward),h查看更多的操作说明。

单独说一下比较复杂的搜索快捷键除号/,先按除号,然后输入要搜索的关键字回车,就可以搜索到手册页里出现该关键字的地方,并标注高亮。如果有多处出现,按n可以搜索下一个,n代表Next,按SHIFT+n(即大写的n)可以搜索上一个。

man手册一共有9个分类,同一个关键字可能是命令,也可能是库函数,如果出现这种冲突,我们就需要在man后面增加一个分类号,1表示命令,3表示库函数。这里不列举所有分类号了。

man除了查命令用法还能查函数?是的,输入man printf就能查到C语言printf函数的用法,是不是很方便呢?

2.1 命令行基础

admin 提交于 周三, 11/22/2017 - 08:27

1. Shell

如果我们的Linux没有图形界面(服务器版本一般默认不启动图形界面),那么一开始就已经处于一个控制台(Console)的环境中,也就是命令行的环境。在这个环境中,我们可以输入命令。可以按ALT+F1到F7去切换到不同的控制台,同时进行多任务操作。

如果我们用的是桌面Linux,例如Gnome或KDE环境,那么可以用CTRL+ALT+T启用一个终端(Terminal),这也是一个命令行的环境。也可以按CTRL+ALT+F1切换到纯字符界面的控制台,按ALT+F7切换回图形界面(不同Linux发行版可能不同,不一定是F7)。

当我们进入命令行环境的时候,我们就处在一个shell当中,shell内置一些基本的命令,例如cd、echo等。shell有很多种,有最原始的sh,有csh,也有当前最流行的bash。不同shell的语法和功能是有小区别的。一个shell里面可以运行另外一个shell,例如当我们在sh环境里有些功能使用不习惯,可以运行bash命令进入bash shell。

1.4 Linux使用技巧

admin 提交于 周三, 11/15/2017 - 18:05

1. 一些有用的技巧

  1. CTRL+ALT+T可快速打开命令行终端

  2. poweroff可关机,reboot可重启

  3. 按鼠标中间可粘贴最近一次被选择的内容

  4. CTRL+SHIFT+C复制被选择内容,CTRL+SHIFT+V粘贴

  5. 输入文件路径时,波浪符号“~”表示用户home目录,例如以下命令可去到用户的下载目录下:cd ~/Downloads

  6. 在命令行输入命令时按TAB键可自动补全,即可自动补全命令,也可自动补全路径。如果有多个选择,可按两次TAB列出所有选择。

  7. wget -c可实现断点续传下载网络文件

  8. rsync可实现远程目录差异化同步(仅更新不同的部分)

  9. ssh -D连接到境外服务器可以实现信息无障碍

  10. vnc服务可实现远程桌面控制

  11. VirtualBox是一个免费的虚拟机