Bootstrap

Linux的基础指令

目录

一、linux系统的登录与退出

1.XShell安装

2.Linux机器的链接

二、认识操作系统与文件

1.操作系统

2.文件

三、文件与目录的查看指令

1.pwd命令

2.ls 指令

3.cd 指令

4.tree命令

四、文件与目录的新建和删除

1.mkdir指令

2.touch指令

3.rmdir和rm指令

五、man指令

六、拷贝和移动指令

1.cp指令

2.mv指令

七、查看文件内容

1.cat指令

2.more指令

3.less指令

4.head指令

5.tail指令

6.管道

八、时间相关的指令

1.date指令

2.时间戳

3.Cal

九、关于查找的指令

1.find

2.which

3.alias

4.whereis

十、文本过滤指令grep

十一、压缩与解压缩

1.zip/unzip

2.tar

十一、bc指令

十二、uname指令

十三、几个重要热键

1.[Tab]

2.[ctrl]-c

3.[ctrl]-d

十四、关机


在前面声明一下,在购买云服务器后一定要先在你购买机器的网站上修改密码,你修改过后的密码对应root用户的密码。如果没有正常弹窗,注意你是不是安装了windows操作系统,或者是机器是不是处于关机状态。我下面的指令使用了两个账户,一个是root,另一个是example,我的指令演示都使用了example账号,而登录使用了root账号,大家都用root操作就行了。

一、linux系统的登录与退出

1.XShell安装

下载安装 XShellXShell 是一个远程终端软件。

下载官网:https://www.netsarang.com/products/xsh_overview.html

下载安装的时候选择 "home/school" 则为免费版本。

2.Linux机器的链接

我使用的是腾讯的云服务器,这里只演示云服务器的使用。

XShell下,复制: ctrl + insert (有些同学的 insert 需要配合 fn 来按)粘贴: shift + insert

(1)打开XShell,看到的界面是这样:

(2)输入需要输入的内容:

(3)连接成功显示:

(4)ctrl+d断开Xshell与Linux机器的链接

二、认识操作系统与文件

1.操作系统

(1)概念

操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。

我们平常在使用的最多的就是Windows操作系统,它也是我们电脑操作系统的近乎唯一的选择,我们今天学的Linux也同样是操作系统。

(2)相关概念

应用软件:要了解操作系统我们首先应该知道应用软件,应用软件是我们操作电脑使用最多的,比如QQ,WeChat,b站,visual studio等等都是应用软件。这些应用软件都是为了满足用多样的应用需求而提供的软件。我们学习编程,主要工作就是开发应用软件。

硬件:这些东西很多都是我们能触摸到的,我们电脑的CPU,内存,磁盘,键盘,显示器等都属于硬件。

驱动:驱动程序全称设备驱动程序,是添加到操作系统中的特殊程序,包含有关硬件设备的信息。驱动顾名思义,驱使硬件活动。驱动程序是硬件厂商根据操作系统编写的配置文件,没有驱动程序,计算机中的硬件就无法工作。

在我们使用鼠标,键盘,或者打印机的时候,我们都需要安装驱动。这里我们拿光盘槽举例,当我们需要插入光盘时一定需要先让电脑弹出光盘槽。如果没有弹出光盘槽的驱动,关盘也没有办法放进去。此时就需要安装弹出光盘的驱动程序,在它完成安装之后我们才能正常的使用它。

操作系统:操作系统是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

那么用简单的话来说,操作系统就是一款管理软件,控制软硬件。对下管理好软硬件资源,对上提供良好的,稳定的,安全的,高效的运行环境。这里控制硬件并不是直接控制,而是通过访问驱动,驱动设备就推动硬件来实现功能。

就好比老板,可以管理员工,也可以管理公司的电脑,饮水机等。但对使用产品的顾客,老板就需要听取意见保证给用户最好的体验。

2.文件

(1)指令

我们在使用电脑的windows操作系统时经常使用点击,双击鼠标进行操作。在Windows下我们使用图形化界面,而在Linux下只有命令行,其实两者之间是没有任何区别。图形化界面只是包裹了一层交互软件层,windows底层也是这样的命令行。但学习命令行更接近操作系统底层,所以学习命令行是学习操作系统的重要手段。

在19世纪打字机就已经出现了,键盘也继承了当年打字机的各个键位最先诞生。图形化界面也是后来才开发出来的,在上篇Linux发展中也讲到,图形化界面是苹果公司去施乐公司取经而来,这些公司都是在发迹之前操作系统就已经被发明了。所以操作系统没有图形化界面也是正常的,后来又出现了鼠标,方便图形化界面的操作。

(2)文件的正确认识

我们创建一个空文也是占磁盘空间,虽然计算机显示大小是0kb,但是因为我们创建的空文件都是在磁盘上的,文件不光有文件内容数据,还有文件属性数据。

文件内容:比如我们建立一个文件夹,或者一个人txt文件,我们在里面写的内容是数据。

文件属性:在Windows下我们的文件有各种类型,建立文件还会有文件时间,大小等各个属性。文件属性也是数据。

准确来说,文件=文件内容数据+文件属性数据

操作文件的方式有两种:操作文件内容与操作文件属性。

从本质上来看,操作系统都是由文件构成的。

三、文件与目录的查看指令

1.pwd命令

语法: pwd

功能:显示用户当前所在的目录(在linux中的目录就相当于windows的文件夹)

对应的Windows操作:查看现在所在的位置

我现在在这个/home/example目录下

2.ls 指令

语法:ls+空格+[选项][目录或文件](例:ls -l)

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

对应的Windows操作:鼠标点击文件夹

常用选项:

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息,也可简写为ll。
  • -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
  • -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;
  • “/”表示目录;“@”表 示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
  • -R 列出所有子目录下的文件。(递归)
  • -1 一行只输出一个文件。

初期用的最多的还是ls -l(ll)指令,加上-l可以显示更多细节,蓝色字体的表示目录。

3.cd 指令

语法: cd+空格+目录名

功能:改变工作目录。将当前工作目录改变到指定的目录下。

对应的Windows操作:在输入框内输入位置跳转

使用:

  • cd .. : 返回上级目录

这个很像windows下的文件夹的后退

  • cd /home/litao/linux/ : 绝对路径

/home就相当于我们windows的此电脑,是用户可访问的根目录,从根目录出发的文件路径就是绝对路径。cd就会直接进入相应文件夹。

  • cd ../day02/ : 相对路径

我们首先在/home/example目录下,..表示上一级目录,从这个目录向下访问就是文件的相对路径。

  • cd ~:进入用户家目录

/home/用户名 就是家目录(root用户的家目录是/root)

  • cd -:返回最近访问目录

4.tree命令

Windows下,如果我们一直点返回,直到返回到此电脑之后就不能再返回了。Linux下不断输入cd..后退,pwd查看当前目录直到出现/不能再次后退,就证明到了根目录。

这里其实跟数型结构的树很像。叶子节点就是普通文件或者空目录,路上节点就只能是目录了,根节点就是根目录。所以几乎任何操作系统文件的目录组织结构都是一棵多叉树。

通过tree+空格+目录可以通过树的理解方式看到目录内的内容

在同一目录下不能建立相同名字的目录和文件,因为路径相同。但是在不同目录下可以建立相同名字的目录和文件,因为路径不同。

四、文件与目录的新建和删除

1.mkdir指令

语法:mkdir+选项+文件夹名称(dirname)

功能:在当前目录下创建一个名为 “dirname”的目录

对应的Windows操作:右键新建文件夹

常用选项:

  • -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录;

2.touch指令

语法:touch+选项+文件名+ . +后缀(test.txt)

功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

对应的Windows操作:右键新建文键,右键属性

常用选项:

  • -a 或--time=atime或--time=access或--time=use只更改存取时间。
  • -c 或--no-create 不建立任何文档。
  • -d 使用指定的日期时间,而非现在的时间。
  • -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
  • -m 或--time=mtime或--time=modify 只更改变动时间。
  • -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
  • -t 使用指定的日期时间,而非现在的时见。

进入/home/example/a目录下 ,建立普通文件test.c

3.rmdir和rm指令

(1)rmdir指令

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。

语法:rmdir+空格+选项+空格+目录

功能:删除空目录(具有当前目录操作权限的所有使用者才可使用)

对应的Windows操作:右键新建文键,右键属性

常用选项:

  • -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

用mkdir建立空目录c,再用rmdir删除

rmdir不能删除内部内部有子目录或者子文件的目录

(2)rmdir指令

rm文件或目录都可以删除

语法:rm [-f-i-r-v][dirName/dir]

功能:删除文件或目录(所有使用者都可用)

对应的Windows操作:右键删除(但是linux没有回收站,删了就是删了)

常用选项:

  • -f 即使文件属性为只读(即写保护),亦直接删除
  • -i 删除前逐一询问确认
  • -r 删除目录及其下所有文件(类似树状结构中删除根节点,后面的子节点也需要删除,也就是递归删除)

这里我们使用rm -i,我们删除同时操作系统会告诉是否确定删除,y表示确定,n表示取消

因为在日常中会经常会出现误删,如果你将公司的重要数据误删了,虽然你可能不用承担主要责任,但是也许就只能删库跑路了。

几乎所有的指令都可以复合,使用rm -rf (递归强制删除指令的目录),就直接删除所有的文件和目录了,谨慎使用;指令rm -ri,这个指令还有回旋的余地。

五、man指令

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。

语法: man+数字num+需要搜索的内容

功能:在手册中查找搜索的内容(手册都是英文的)

num的数字表示手册分为8章

  • 普通的命令
  • 系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文 件)
  • 库函数,如printf,fread
  • 特殊文件,也就是/dev下的各种设备文件
  • 指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
  • 给游戏留的,由各个游戏自己定义
  • 附件还有一些变量,比如向environ这种全局变量在这里就有说明
  • 系统管理用的命令,这些命令只能由root使用,如ifconfig

搜索一下printf函数,C语言库函数对应3,回车查找,在进入界面后点击a然后再点击q就可以退出了

六、拷贝和移动指令

1.cp指令

语法:cp+选项+源文件或目录 目标文件或目录

功能: 复制文件或目录

对应的Windows操作:复制粘贴

cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存 在的目录,则会出现错误信息

常用选项:

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链 接,则一律视为普通文件处理
  • -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

用mv -r(递归)将a目录复制b目录中

根目录是不能复制的。

2.mv指令

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

语法:mv+选项+源文件或目录 目标文件或目录

功能:mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

对应的Windows操作:剪切粘贴、重命名、把一个目录中的所有文件移动到另一个文件夹内

视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的 目录中。

当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它 将所给的源文件或目录重命名为给定的目标文件名。

当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

常用选项:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
  • -r :递归处理,将指定目录下的文件与子目录一并处理。
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

(1)剪切粘贴:将a目录移动到b目录

也可以移动多个文件和目录

(2)重命名:重命名一个文件或目录,将a目录的名字改成c

直接将一个目录中的文件移动到一个新的文件中

七、查看文件内容

1.cat指令

语法:cat+选项+文件

功能: 查看目标文件的内容

常用选项:

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空

我们目前还不需要关注怎么写文件

优先输入下面的代码:

cnt=0; while [ $cnt -le 10000 ] ; do echo "hello world [$cnt]"; let cnt++; done > test.txt

你会发现文件夹内新建了一个有一万行hello world的文本文件,cat可以直接在屏幕上打印文件中的所有内容。

后面还有9982行……

2.more指令

语法:more+选项+文件

功能:more命令,功能类似 cat

常用选项:-n对输出的所有行编号q退出more,显示test.c文件显示第100行的内容,只能按Enter键一行一行下翻

但是也不是很方便,所以一般情况使用less

3.less指令

less 工具也是对文件或其它输出进行分页显示的工具,应该说是它才是linux正统查看文件内容的工具,功能极其强大。

less的用法比起more更加的有弹性。使用less就可以使用键盘右下侧的上下键等按键前往后翻看文件,更方便查看。除此之外,less拥有更多的搜索功能,可以向上向下搜索。

语法: less+参数+文件

功能: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前 不会加载整个文件。

选项:

  • -i 忽略搜索时的大小写
  • -N 显示每行的行号 /字符串:向下搜索“字符串”的功能 ?字符串:向上搜索“字符串”的功能 n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • q:quit(用于退出)

less打开test.txt文件的内容,可以上下查看

4.head指令

head用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而tail想当然尔就是看档案的结尾。

语法: head+ - +参数+文件

功能: head 用来显示档案的开头至标准输出中,如果没有输入参数,默认head命令打印其相应文件的开头10行。

选项:

  • -n行数> 显示的行数

显示test.txt默认显示前十行与控制显示前15行

5.tail指令

tail命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail - f filename会把filename里最尾部的内容显示在屏幕上,并且也会不断刷新,使你看到最新的文件内容.

语法: tail+必要参数+选择参数+文件

功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

选项:

  • -f 循环读取
  • -n行数> 显示行数

显示test.txt默认显示后十行与控制显示后15行

6.管道

在我们的理解中,管道都是用于传输资源的,它可以传送水、天然气等资源,也都要有一个入口,一个出口。而我们这里传输的是数据,它与流有些许相似,用到的通道指令用的是 " | ",这里主要将各个指令联合起来用。

head -25 test.txt

首先,我们首先打印整个文件的前25行

head -25 test.txt | tail -15

然后,我们可以把 | 看作一个临时文件,把head -25 test.txt显示的内容输入到这个临时文件内,再在这个文件中找这个文件的后十五行

head -25 test.txt | tail -15 | head -5

最后,我们依旧把 | 看作一个临时文件,把head -25 test.txt | tail -15显示的内容重新输入到这个临时文件内,再在这个文件中找这个文件的头五行

八、时间相关的指令

1.date指令

date指定格式显示时间: date +%Y:%m:%d date

用法:date+“格式”(或者直接date)

在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下

  • %H : 小时(00..23)
  • %M : 分钟(00..59)
  • %S : 秒(00..61)
  • %X : 相当于
  • %H:%M:%S
  • %d : 日 (01..31)
  • %m : 月份 (01..12)
  • %Y : 完整年份 (0000..9999)
  • %F : 相当于 %Y-%m-%d

date可以直接显示现在的时间,date也可以以控制格式的方式输出时间

在设定时间方面

  • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
  • date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
  • date -s 01:01:01 //设置具体时间,不会对日期做更改
  • date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
  • date -s “01:01:01 20080523″ //这样可以设置全部时间
  • date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
  • date -s “20080523 01:01:01″ //这样可以设置全部时间

在这里不演示了

2.时间戳

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

时间转化为时间戳:date +%s

时间戳转化为时间:date -d@1508749502 Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的 午夜)开始所经过的秒数,不考虑闰秒。

时间与时间戳的相互转换

3.Cal

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

命令格式: cal+月份+年份/cal+年份

功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份

常用选项:

  • -3 显示系统前一个月,当前月,下一个月的月历
  • -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y 显示当前年份的日历

查看2018年的日历

查看2022年的7月

九、关于查找的指令

1.find

Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大,其中大部分选项都值得我们花时间来了解一下。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间。(这里是指30G字节以上的文件系统)

语法: find pathname -options

功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

常用选项:

  • -name 按照文件名查找文件

【注意】

当我们进行find搜索的时候,可能需要访问磁盘进而导致效率下降

通过find查找c语言库函数,这里需要访问磁盘会有等待。

2.which

我们知道,操作系统也是底层由编程语言写成的各种程序实现的。所以我们使用的每一个指令都对应一个程序文件。这个指令就是帮我们找到实现这些指令的文件储存在哪里。

语法: which+空格+指令

功能: 用于在磁盘中查找对应的指令的程序储存位置

3.alias

对指令起别名,下面的就表示对ls -l取别名为fcb,color用来标识颜色

4.whereis

whereis指令也能查找文件,但该指令只能用于查找二进制文件、源代码文件和man手册页

linux操作系统的文件种类还有很多,大概知道这个指令的搜索范围更小就可以了。

语法: whereis+空格+文件

功能: 查找二进制文件、源代码文件和man手册页

查找范围:

which<whereis<find

十、文本过滤指令grep

grep是文本内容的行过滤工具,默认会匹配文本中的关键字,匹配上的进行显示

语法: grep+选项+’需要搜寻的字符串‘+空格+文件

功能: 在文件中搜索字符串,将找到的行打印出来

常用选项:

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

查找文件中999出现的行并显示出来

grep可以和其他命令,结合管道,来进行某些匹配工作,了解即可。

十一、压缩与解压缩

1.zip/unzip

可以直接输入zip,看看zip指令安装了没有,安装了会展示下面的一长串东西

如果没有下面的一长串,就说明没有安装

对于普通账号安装输入指令:yum install -y zip / unzip

如果用的不是root账号输入指令:sudo yum install -y zip / unzip

语法: zip+空格+选项+空格+将会生成的压缩文件+空格+需要压缩的文件或目录

功能: 在当前目录下生成一个压缩文件

将b目录压缩为b.zip

zip默认只对一个目录进行打包压缩的时候,只会对目录文件

语法: unzip+空格+压缩包文件+选项+空格+需要解压到的文件夹路径

功能: 在一个目录内解压一个压缩文件,一般为.zip后缀

解压b.zip到a目录下

互联网中,我们需要传输很多大小的文件,当我们压缩了之后文件可以将很多文件变成一个文件而且内存还会变得更小,这样就便于传输和保存。

2.tar

语法: tar+空格+选项[-cxtzjvf]+文件与目录

功能: 在当前目录下生成一个压缩文件,一般为.tgz后缀

  • -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! - t :查看 tarfile 里面的文件! -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  • -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
  • -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
  • -C : 解压到指定目录

我们只需要知道下面两个就好

tar -czf my.tgz dir--打包并压缩

tar -xzf my.tgz dir--解包并解压

案例:

范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar [root@linux ~]# tar -cvf /tmp/etc.tar /etc仅打包,不压缩!

[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc 打包后,以 gzip 压缩

[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc 打包后,以 bzip2 压缩 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~ 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~ 上述指令在执行的时候,会显示一个警告讯息: 『tar: Removing leading /" from member names`』那是关於绝对路径的特殊设定。

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?

[root@linux ~]# tar -ztvf /tmp/etc.tar.gz

由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z 这个参数了!这很重要的!

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

[root@linux ~]# cd /usr/local/src [root@linux src]# tar -zxvf /tmp/etc.tar.gz

在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说, 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz , 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc

则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已[root@linux ~]# cd /tmp [root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件, 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!

[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc

这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在 /home 当中,比 2005/06/01 新的文件才备份

[root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home

范例七:我要备份 /home, /etc ,但不要 /home/dmtsai [root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!

[root@linux ~]# cd /tmp [root@linux tmp]# tar -cvf - /etc | tar -xvf -

这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的! 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~ 这分别代表 standard output, standard input 与管线命令

十一、bc指令

bc命令可以很方便的进行浮点运算,相当于一个小型计算器。

:quit退出

十二、uname指令

uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

语法:uname+空格+选项

功能: uname用来获取电脑和操作系统的相关信息。

常用选项:

  • -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称

十三、几个重要热键

1.[Tab]

[Tab]按键---具有『命令补全』和『档案补齐』的功能

tab-按一下不行按两下

2.[ctrl]-c

[Ctrl]-c按键---让当前的程序『停掉』

3.[ctrl]-d

[Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可 以用来取代exit

我们需要断开XShell和linux机器的链接就可以按ctrl+d,再按一次就关闭XShell了

十四、关机

语法:shutdown+选项

  • -h : 将系统的服务停掉后,立即关机。
  • -r : 在将系统的服务停掉之后就重新启动
  • -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思

以下命令作为扩展:

  • 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
  • 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
  • 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
  • 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
  • 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
  • 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

;