linux 基础命令

linux 基础

1、alias

alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号”将原来的命令引起来,防止特殊字符导致错误。

 

alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中。

 

语法

alias(选项)(参数)

选项

-p:打印已经设置的命令别名。

参数

命令别名设置:定义命令别名,格式为“命令别名=‘实际命令’”。

 

实例

alias 的基本使用方法为:

 

alias 新的命令=’原命令 -选项/参数’

例如:alias l=‘ls -lsh’将重新定义ls命令,现在只需输入l就可以列目录了。直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。

 

要删除一个别名,可以使用 unalias 命令,如 unalias l。

 

查看系统已经设置的别名:

 

alias -p

alias cp=’cp -i’

alias l.=’ls -d .* –color=tty’

alias ll=’ls -l –color=tty’

alias ls=’ls –color=tty’

alias mv=’mv -i’

alias rm=’rm -i’

alias which=’alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde’

 

2、unalias

unalias命令用来取消命令别名,是为shell内建命令。如果需要取消任意一个命令别名,则使用该命令别名作为指令的参数选项即可。如果使用-a选项,则表示取消所有已经存在的命令别名。

 

语法

unalias(选项)(参数)

选项

-a:取消所有命令别名。

参数

命令别名:指定要取消的命令别名。

 

实例

使用unalias命令将已经设置的命令别名”cc”取消,输入如下命令:

 

unalias cc            #取消已经设置的命令别名

上面的命令执行后,系统会将指定的命令别名取消掉。如果用户再使用该命令别名时,系统将提示如下信息:

 

cc:no input files

因此,当使用该指令将命令别名取消后,将不能够再进行使用。否则,将出现错误提示。

 

3、basename

basename命令用于打印目录或者文件的基本名称。basename和dirname命令通常用于shell脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称。

 

语法

basename(选项)(参数)

选项

–help:显示帮助;

–version:显示版本号。

参数

文件:带路径信息的文件;

后缀:可选参数,指定要去除的文件后缀字符串。

实例

1、要显示一个shell变量的基本名称,请输入:

 

basename $WORKFILE

此命令显示指定给shell变量WORKFILE的值的基本名称。如果WORKFILE变量的值是/home/jim/program.c文件,则此命令显示program.c。

 

要构造一个和另一个文件名称相同(除了后缀)的文件名称,请输入:

 

OFILE=`basename $1 .c`.o

此命令指定给 OFILE 文件第一个位置上的参数($1)的值,但它的 .c 后缀更改至 .o。如果 $1 是 /home/jim/program.c 文件,则 OFILE 成为 program.o。因为 program.o 仅是一个基本文件名称,它标识在当前目录中的文件。

 

  • bc

bc命令是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。

 

语法

bc(选项)(参数)

选项

-i:强制进入交互式模式;

-l:定义使用的标准数学库;

-w:对POSIX bc的扩展给出警告信息;

-q:不打印正常的GNU bc环境信息;

-v:显示指令版本信息;

-h:显示指令的帮助信息。

参数

文件:指定包含计算任务的文件。

 

实例

算术操作高级运算bc命令它可以执行浮点运算和一些高级函数:

 

echo “1.212*3” | bc

3.636

设定小数精度(数值范围)

 

echo “scale=2;3/8” | bc

0.37

参数scale=2是将bc输出结果的小数位设置为2位。

 

进制转换

 

#!/bin/bash

abc=192

echo “obase=2;$abc” | bc

执行结果为:11000000,这是用bc将十进制转换成二进制。

 

#!/bin/bash

abc=11000000

echo “obase=10;ibase=2;$abc” | bc

执行结果为:192,这是用bc将二进制转换为十进制。

 

计算平方和平方根:

 

echo “10^10” | bc

echo “sqrt(100)” | bc

 

6、clock

clock: 显示硬件时钟

-s, –hctosys以硬件时钟为准,校正系统时钟

-w, –systohc以系统时钟为准,校正硬件时钟

7、cal

cal命令用于显示当前日历,或者指定日期的日历。

 

语法

cal(选项)(参数)

选项

-l:显示单月输出;

-3:显示临近三个月的日历;

-s:将星期日作为月的第一天;

-m:将星期一作为月的第一天;

-j:显示“julian”日期;

-y:显示当前年的日历。

参数

月:指定月份;

年:指定年份。

实例

单独执行cal命令会打印出日历:

 

8、cd

cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录。

 

语法

cd (选项) (参数)

选项

-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录

-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。

– 当仅实用”-“一个选项时,当前工作目录将被切换到环境变量”OLDPWD”所表示的目录。

实例

cd    进入用户主目录;

cd ~  进入用户主目录;

cd –  返回进入此目录之前所在的目录;

cd ..  返回上级目录(若当前目录为“/“,则执行完后还在“/”;”..”为上级目录的意思);

cd ../..  返回上两级目录;

cd !$  把上个命令的参数作为cd参数使用。

 

9、cp

 

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

 

语法

cp(选项)(参数)

选项

-a:此参数的效果和同时指定”-dpR”参数相同;

-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;

-f:强行复制文件或目录,不论目标文件或目录是否已存在;

-i:覆盖既有文件之前先询问用户;

-l:对源文件建立硬连接,而非复制文件;

-p:保留源文件或目录的属性;

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;

-s:对源文件建立符号连接,而非复制文件;

-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;

-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;

-b:覆盖已存在的文件目标前将目标文件备份;

-v:详细显示命令执行的操作。

参数

源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;

目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

实例

如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:

 

cp ../mary/homework/assign .

所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。

 

将文件file复制到目录/usr/men/tmp下,并改名为file1

 

cp file /usr/men /tmp/file1

将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中

 

cp -r /usr/men /usr/zh

交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中

 

cp -i /usr/men m*.c /usr/zh

我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:

 

cp aaa/* /bbb

复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。

 

cp -r aaa/* /bbb

这次依然需要按Y来确认操作,但是没有忽略子目录。

 

cp -r -a aaa/* /bbb

依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。

 

\cp -r -a aaa/* /bbb

成功,没有提示按Y、传递了目录属性、没有略过目录。

 

10、cat

cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令。

 

注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。

 

语法

cat(选项)(参数)

选项

-n或-number:有1开始对所有输出的行数编号;

-b或–number-nonblank:和-n相似,只不过对于空白行不编号;

-s或–squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;

-A:显示不可打印字符,行尾显示“$”;

-e:等价于”-vE”选项;

-t:等价于”-vT”选项;

参数

文件列表:指定要连接的文件列表。

 

实例

设ml和m2是当前目录下的两个文件

 

cat m1 (在屏幕上显示文件ml的内容)

cat m1 m2 (同时显示文件ml和m2的内容)

cat m1 m2 > file (将文件ml和m2合并后放入文件file中)

 

11、clear

clear命令用于清除当前屏幕终端上的任何信息。相当于ctrl+l

 

语法

clear

实例

直接输入clear命令当前终端上的任何信息就可被清除。

 

12、date

date命令是显示或设置系统时间与日期。

 

很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。

 

语法

date(选项)(参数)

选项

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;

-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;

-u:显示GMT;

–help:在线帮助;

–version:显示版本信息。

参数

<+时间日期格式>:指定显示时使用的日期时间格式。

 

日期格式字符串列表

%H 小时,24小时制(00~23)

%I 小时,12小时制(01~12)

%k 小时,24小时制(0~23)

%l 小时,12小时制(1~12)

%M 分钟(00~59)

%p 显示出AM或PM

%r 显示时间,12小时制(hh:mm:ss %p)

%s 从1970年1月1日00:00:00到目前经历的秒数

%S 显示秒(00~59)

%T 显示时间,24小时制(hh:mm:ss)

%X 显示时间的格式(%H:%M:%S)

%Z 显示时区,日期域(CST)

%a 星期的简称(Sun~Sat)

%A 星期的全称(Sunday~Saturday)

%h,%b 月的简称(Jan~Dec)

%B 月的全称(January~December)

%c 日期和时间(Tue Nov 20 14:12:58 2012)

%d 一个月的第几天(01~31)

%x,%D 日期(mm/dd/yy)

%j 一年的第几天(001~366)

%m 月份(01~12)

%w 一个星期的第几天(0代表星期天)

%W 一年的第几个星期(00~53,星期一为第一天)

%y 年的最后两个数字(1999则是99)

 

13、dd

dd命令用于复制文件并对原文件的内容进行转换和格式化处理。dd命令功能很强大的,对于一些比较底层的问题,使用dd命令往往可以得到出人意料的效果。用的比较多的还是用dd来备份裸设备。但是不推荐,如果需要备份oracle裸设备,可以使用rman备份,或使用第三方软件备份,使用dd的话,管理起来不太方便。

 

建议在有需要的时候使用dd 对物理磁盘操作,如果是文件系统的话还是使用tar backup cpio等其他命令更加方便。另外,使用dd对磁盘操作时,最好使用块设备文件。

 

语法

dd(选项)

选项

bs=<字节数>:将ibs(输入)与欧巴桑(输出)设成指定的字节数;

cbs=<字节数>:转换时,每次只转换指定的字节数;

conv=<关键字>:指定文件转换的方式;

count=<区块数>:仅读取指定的区块数;

ibs=<字节数>:每次读取的字节数;

obs=<字节数>:每次输出的字节数;

of=<文件>:输出到文件;

seek=<区块数>:一开始输出时,跳过指定的区块数;

skip=<区块数>:一开始读取时,跳过指定的区块数;

–help:帮助;

–version:显示版本信息。

实例

[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

 

[root@localhost text]# du -sh sun.txt

1.1M    sun.txt

该命令创建了一个1M大小的文件sun.txt,其中参数解释:

 

if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。

of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。

bs 代表字节为单位的块大小。

count 代表被复制的块数。

/dev/zero 是一个字符设备,会不断返回0值字节(\0)。

 

14、df

df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

 

语法

df(选项)(参数)

选项

-a或–all:包含全部的文件系统;

–block-size=<区块大小>:以指定的区块大小来显示区块数目;

-h或–human-readable:以可读性较高的方式来显示信息;

-H或–si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;

-i或–inodes:显示inode的信息;

-k或–kilobytes:指定区块大小为1024字节;

-l或–local:仅显示本地端的文件系统;

-m或–megabytes:指定区块大小为1048576字节;

–no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;

-P或–portability:使用POSIX的输出格式;

–sync:在取得磁盘使用信息前,先执行sync指令;

-t<文件系统类型>或–type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;

-T或–print-type:显示文件系统的类型;

-x<文件系统类型>或–exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;

–help:显示帮助;

–version:显示版本信息。

参数

文件:指定文件系统上的文件。

 

15、dirname

dirname命令去除文件名中的非目录部分,仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个/后无字符,dirname 命令使用倒数第二个/,并忽略其后的所有字符。dirname 和 basename 通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名。

 

语法

dirname(选项)(参数)

选项

–help:显示帮助;

–version:显示版本号。

 

16、du

u命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。

 

语法

du [选项][文件]

选项

-a或-all 显示目录中个别文件的大小。

-b或-bytes 显示目录或文件大小时,以byte为单位。

-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。

-k或–kilobytes 以KB(1024bytes)为单位输出。

-m或–megabytes 以MB为单位输出。

-s或–summarize 仅显示总计,只列出最后加总的值。

-h或–human-readable 以K,M,G为单位,提高信息的可读性。

-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-L<符号链接>或–dereference<符号链接> 显示选项中所指定符号链接的源文件大小。

-S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。

-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。

–exclude=<目录或文件> 略过指定的目录或文件。

-D或–dereference-args 显示指定符号链接的源文件大小。

-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。

-l或–count-links 重复计算硬件链接的文件。

 

17、echo

echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

 

语法

echo(选项)(参数)

选项

-e:激活转义字符。

使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

 

\a 发出警告声;

\b 删除前一个字符;

\c 最后不加上换行符号;

\f 换行但光标仍旧停留在原来的位置;

\n 换行且光标移至行首;

\r 光标移至行首,但不换行;

\t 插入tab;

\v 与\f相同;

\\ 插入\字符;

\nnn 插入nnn(八进制)所代表的ASCII字符;

参数

变量:指定要打印的变量。

 

18、enable

enable命令用于临时关闭或者激活指定的shell内部命令。若要执行的文件名称与shell内建命令相同,可用enable -n来关闭shell内建命令。若不加-n选项,enable可重新启动关闭的命令。

 

linux shell命令执行时,shell总是先在自己的shell builtin中查找该命令,如果找到则执行该命令;如果找不到该命令,则会从环境变量$PATH指定的路径中依次去查找待执行的命令。因为了解了这一点,所以看起来好像没有办法编写用户自己的命令来替代shell builtin命令。幸运的是,有了enable命令我们就能做到了。

 

语法

enable(选项)(参数)

选项

-n:关闭指定的内部命令;

-a:显示所有激活的内部命令;

-f:从指定文件中读取内部命令。

参数

内部命令:指定要关闭或激活的内部命令。

 

实例

使用enable命令显示所有激活的内部命令:

 

[root@localhost ~]# enable -a

enable .

enable :

enable [

enable alias

enable bg

enable bind

enable break

enable builtin

enable caller

enable cd

enable command

enable compgen

enable complete

enable continue

enable declare

enable dirs

enable disown

enable echo

enable enable

enable eval

enable exec

enable exit

enable export

enable false

enable fc

enable fg

enable getopts

enable hash

enable help

enable history

enable jobs

enable kill

enable let

enable local

enable logout

enable popd

enable printf

enable pushd

enable pwd

enable read

enable readonly

enable return

enable set

enable shift

enable shopt

enable source

enable suspend

enable test

enable times

enable trap

enable true

enable type

enable typeset

enable ulimit

enable umask

enable unalias

enable unset

enable wait

 

19、file

file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。

 

语法

file(选项)(参数)

选项

-b:列出辨识结果时,不显示文件名称;

-c:详细显示指令执行过程,便于排错或分析程序执行的情形;

-f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;

-L:直接显示符号连接所指向的文件类别;

-m<魔法数字文件>:指定魔法数字文件;

-v:显示版本信息;

-z:尝试去解读压缩文件的内容。

参数

文件:要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

 

20、fdisk

fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。

 

语法

fdisk(选项)(参数)

选项

-b<分区大小>:指定每个分区的大小;

-l:列出指定的外围设备的分区表状况;

-s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块;

-u:搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;

-v:显示版本信息。

参数

设备文件:指定要进行分区或者显示分区的硬盘设备文件。

 

21、free

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

 

语法

free(选项)

选项

-b:以Byte为单位显示内存使用情况;

-k:以KB为单位显示内存使用情况;

-m:以MB为单位显示内存使用情况;

-o:不显示缓冲区调节列;

-s<间隔秒数>:持续观察内存使用状况;

-t:显示内存总和列;

-V:显示版本信息。

 

22、gedit

gedit 图形终端下打开文件编辑器

相关命令:vim,nano

用法:

gedit [选项…] [文件…] – 编辑文本文件

 

帮助选项:

-?, –help                     显示帮助选项

–help-all                     显示全部帮助选项

–help-gtk                     显示 GTK+ 选项

–help-bonobo-activation       显示 Bonobo 激活选项

–help-gnome                   显示 GNOME 选项

–help-gnome-session           显示会话管理选项

–help-gnome-ui                显示 GNOME GUI 选项

 

应用程序选项:

–encoding=ENCODING            设置打开在命令行中列出的文件时所用的字符编码

–new-window                   在已存在的 gedit 实例中创建一个最上层窗口

–new-document                 在已存在的 gedit 实例中创建一个新文档

–display=显示               要使用的 X 显示

 

23、history

history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。

 

该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。

 

历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。

 

语法

history(选项)(参数)

选项

-c:清空当前历史命令;

-a:将历史命令缓冲区中命令写入历史命令文件中;

-r:将历史命令文件中的命令读入当前历史命令缓冲区;

-w:将当前历史命令缓冲区命令写入历史命令文件中。

参数

n:打印最近的n条历史命令。

 

24、hash

查询缓存hash命令,可以查看最近使用的命令

 

[root@localhost ~]# hash

命中    命令

1    /usr/bin/printenv

2    /usr/bin/ls

  • /usr/bin/clear

 

25、hostname

hostname命令用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。

 

语法

hostname(选项)(参数)

选项

-v:详细信息模式;

-a:显示主机别名;

-d:显示DNS域名;

-f:显示FQDN名称;

-i:显示主机的ip地址;

-s:显示短主机名称,在第一个点处截断;

-y:显示NIS域名。

参数

主机名:指定要设置的主机名。

 

26、hexdump

hexdump命令一般用来查看“二进制”文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件。

 

语法

hexdump [选项] [文件]…

选项

-n length 只格式化输入文件的前length个字节。

-C 输出规范的十六进制和ASCII码。

-b 单字节八进制显示。

-c 单字节字符显示。

-d 双字节十进制显示。

-o 双字节八进制显示。

-x 双字节十六进制显示。

-s 从偏移量开始输出。

-e 指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:’a/b “format1” “format2″‘。

每个格式字符串由三部分组成,每个由空格分隔,第一个形如a/b,b表示对每b个输入字节应用format1格式,a表示对每a个输入字节应用format2格式,一般a>b,且b只能为1,2,4,另外a可以省略,省略则a=1。format1和format2中可以使用类似printf的格式字符串,如:

 

%02d:两位十进制

%03x:三位十六进制

%02o:两位八进制

%c:单个字符等

还有一些特殊的用法:

 

%_ad:标记下一个输出字节的序号,用十进制表示。

%_ax:标记下一个输出字节的序号,用十六进制表示。

%_ao:标记下一个输出字节的序号,用八进制表示。

%_p:对不能以常规字符显示的用 . 代替。

同一行如果要显示多个格式字符串,则可以跟多个-e选项。

 

27、help

help命令用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。

 

语法

help(选项)(参数)

选项

-s:输出短格式的帮助信息。仅包括命令格式。

参数

内部命令:指定需要显示帮助信息的shell内部命令。

 

28、id

id命令可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。id命令已经默认预装在大多数Linux系统中。要使用它,只需要在你的控制台输入id。不带选项输入id会显示如下。结果会使用活跃用户。

 

当我们想知道某个用户的UID和GID时id命令是非常有用的。一些程序可能需要UID/GID来运行。id使我们更加容易地找出用户的UID以GID而不必在/etc/group文件中搜寻。如往常一样,你可以在控制台输入man id进入id的手册页来获取更多的详情。

 

语法

id [-gGnru][–help][–version][用户名称]

选项

-g或–group   显示用户所属群组的ID。

-G或–groups   显示用户所属附加群组的ID。

-n或–name    显示用户,所属群组或附加群组的名称。

-r或–real    显示实际ID。

-u或–user    显示用户ID。

-help         显示帮助。

-version      显示版本信息。

 

29、info

info命令是Linux下info格式的帮助指令。

 

就内容来说,info页面比man page编写得要更好、更容易理解,也更友好,但man page使用起来确实要更容易得多。一个man page只有一页,而info页面几乎总是将它们的内容组织成多个区段(称为节点),每个区段也可能包含子区段(称为子节点)。理解这个命令的窍门就是不仅要学习如何在单独的Info页面中浏览导航,还要学习如何在节点和子节点之间切换。可能刚开始会一时很难在info页面的节点之间移动和找到你要的东西,真是具有讽刺意味:原本以为对于新手来说,某个东西比man命令会更好些,但实际上学习和使用起来更困难。

 

语法

info(选项)(参数)

选项

-d:添加包含info格式帮助文档的目录;

-f:指定要读取的info格式的帮助文档;

-n:指定首先访问的info帮助文件的节点;

-o:输出被选择的节点内容到指定文件。

参数

帮助主题:指定需要获得帮助的主题,可以是指令、函数以及配置文件。

 

实例

在info后面输入命令的名称就可以查看该命令的info帮助文档了:

 

info info

面介绍一下它的几个常用快捷键。

 

?键:它就会显示info的常用快捷键。

N键:显示(相对于本节点的)下一节点的文档内容。

P键:显示(相对于本节点的)前一节点的文档内容。

U键:进入当前命令所在的主题。

M键:敲M键后输入命令的名称就可以查看该命令的帮助文档了。

G键:敲G键后输入主题名称,进入该主题。

L键:回到上一个访问的页面。

SPACE键:向前滚动一页。

BACKUP或DEL键:向后滚动一页。

Q:退出info。

命令

 

?     显示帮助窗口

 

在帮助窗口中:

Ctrl-x 0          关闭帮助窗口

Ctrl-x Ctrl-c    关闭整个 Info

 

q      退出 info

n      打开与本 Node 关联的下一个 Node

p      打开与本 Node 关联的前一个 Node

u      打开与本 Node 关联的上一个 Node

l      回到上一次访问的 Node

m或g   选择一个菜单项(Node 的名字)

输入指定菜单的名字后按回车,打开指定菜单项关联的 Node

空格键 下一页(PageDown 也可以,下一页从当前页的最后两行开始算起)

下一个 Node (若当前页在 Node 文档的末尾)

Del 键 上一页(PageUp 也可以,上一页从当前页的开始两行开始算起)

上一个 Node (若当前页 Node 文档的开始)

 

b 或 t 或 Home   文档的开始(b 是 begining 的意思)

e 或 End         文档的末尾(b 是 ending 的意思)

Ctrl-l    刷新当前页,若当前文档显示情况有问题时

Ctrl-g    取消所键入的指令

 

30、ifconfig

ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

 

语法

ifconfig(参数)

参数

add<地址>:设置网络设备IPv6的ip地址;

del<地址>:删除网络设备IPv6的IP地址;

down:关闭指定的网络设备;

<hw<网络设备类型><硬件地址>:设置网络设备的类型与硬件地址;

io_addr<I/O地址>:设置网络设备的I/O地址;

irq<IRQ地址>:设置网络设备的IRQ;

media<网络媒介类型>:设置网络设备的媒介类型;

mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;

metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;

mtu<字节>:设置网络设备的MTU;

netmask<子网掩码>:设置网络设备的子网掩码;

tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;

up:启动指定的网络设备;

-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;

-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;

-promisc:关闭或启动指定网络设备的promiscuous模式;

IP地址:指定网络设备的IP地址;

网络设备:指定网络设备的名称。

 

31、init

init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。

 

语法

init(选项)(参数)

选项

-b:不执行相关脚本而直接进入单用户模式;

-s:切换到单用户模式。

参数

运行等级:指定Linux系统要切换到的运行等级。

 

实例

几个常用的命令

 

查看系统进程命令:ps -ef | head

查看init的配置文件:more /etc/inittab

查看系统当前运行的级别:runlevel

 

运行级别

 

到底什么是运行级呢?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。你也可以在/etc/inittab中查看它的英文介绍。

 

#0  停机(千万不能把initdefault 设置为0)

#1  单用户模式

#2  多用户,没有 NFS(和级别3相似,会停止部分服务)

#3  完全多用户模式

#4  没有用到

#5  x11(Xwindow)

#6  重新启动(千万不要把initdefault 设置为6)

 

32、ls

ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。

 

语法

ls(选项)(参数)

选项

-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);

-A:显示除影藏文件“.”和“..”以外的所有文件列表;

-C:多列显示输出结果。这是默认选项;

-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;

-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;

-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;

-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;

-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;

-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;

-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;

–file-type:与“-F”选项的功能相同,但是不显示“*”;

-k:以KB(千字节)为单位显示文件大小;

-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;

-m:用“,”号区隔每个文件和目录的名称;

-n:以用户识别码和群组识别码替代其名称;

-r:以文件名反序排列并输出目录内容列表;

-s:显示文件和目录的大小,以区块为单位;

-t:用文件和目录的更改时间排序;

-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;

-R:递归处理,将指定目录下的所有文件及子目录一并处理;

–full-time:列出完整的日期与时间;

–color[=WHEN]:使用不同的颜色高亮显示不同类型的。

参数

目录:指定要显示列表的目录,也可以是具体的文件。

 

33、ln

ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用”-s”选项。

 

注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的。

 

语法

ln(选项)(参数)

选项

-b或–backup:删除,覆盖目标文件之前的备份;

-d或-F或——directory:建立目录的硬连接;

-f或——force:强行建立文件或目录的连接,不论文件或目录是否存在;

-i或——interactive:覆盖既有文件之前先询问用户;

-n或–no-dereference:把符号连接的目的目录视为一般文件;

-s或——symbolic:对源文件建立符号连接,而非硬连接;

-S<字尾备份字符串>或–suffix=<字尾备份字符串>:用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;

-v或——verbose:显示指令执行过程;

-V<备份方式>或–version-control=<备份方式>:用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串;

–help:在线帮助;

–version:显示版本信息。

参数

源文件:指定连接的源文件。如果使用-s选项创建符号连接,则“源文件”可以是文件或者目录。创建硬连接时,则“源文件”参数只能是文件;

目标文件:指定源文件的目标连接文件。

实例

将目录/usr/mengqc/mub1下的文件m2.c链接到目录/usr/liu下的文件a2.c

 

cd /usr/mengqc

ln /mub1/m2.c /usr/liu/a2.c

在执行ln命令之前,目录/usr/liu中不存在a2.c文件。执行ln之后,在/usr/liu目录中才有a2.c这一项,表明m2.c和a2.c链接起来(注意,二者在物理上是同一文件),利用ls -l命令可以看到链接数的变化。

 

在目录/usr/liu下建立一个符号链接文件abc,使它指向目录/usr/mengqc/mub1

 

ln -s /usr/mengqc/mub1 /usr/liu/abc

执行该命令后,/usr/mengqc/mub1代表的路径将存放在名为/usr/liu/abc的文件中。

 

扩展知识

Linux具有为一个文件起多个名字的功能,称为链接。被链接的文件可以存放在相同的目录下,但是必须有不同的文件名,而不用在硬盘上为同样的数据重复备份。另外,被链接的文件也可以有相同的文件名,但是存放在不同的目录下,这样只要对一个目录下的该文件进行修改,就可以完成对所有目录下同名链接文件的修改。对于某个文件的各链接文件,我们可以给它们指定不同的存取权限,以控制对信息的共享和增强安全性。

 

文件链接有两种形式,即硬链接和符号链接。

 

硬链接

建立硬链接时,在另外的目录或本目录中增加目标文件的一个目录项,这样,一个文件就登记在多个目录中。如图所示的m2.c文件就在目录mub1和liu中都建立了目录项。

 

创建硬链接后,己经存在的文件的I节点号(Inode)会被多个目录文件项使用。一个文件的硬链接数可以在目录的长列表格式的第二列中看到,无额外链接的文件的链接数为l。

 

在默认情况下,ln命令创建硬链接。ln命令会增加链接数,rm命令会减少链接数。一个文件除非链接数为0,否则不会从文件系统中被物理地删除。

 

对硬链接有如下限制:

 

不能对目录文件做硬链接。

不能在不同的文件系统之间做硬链接。就是说,链接文件和被链接文件必须位于同一个文件系统中。

符号链接

符号链接也称为软链接,是将一个路径名链接到一个文件。这些文件是一种特别类型的文件。事实上,它只是一个文本文件(如图中的abc文件),其中包含它提供链接的另一个文件的路径名,如图中虚线箭头所示。另一个文件是实际包含所有数据的文件。所有读、写文件内容的命令被用于符号链接时,将沿着链接方向前进来访问实际的文件。

 

符号连接

与硬链接不同的是,符号链接确实是一个新文件,当然它具有不同的I节点号;而硬链接并没有建立新文件。

 

符号链接没有硬链接的限制,可以对目录文件做符号链接,也可以在不同文件系统之间做符号链接。

 

用ln -s命令建立符号链接时,源文件最好用绝对路径名。这样可以在任何工作目录下进行符号链接。而当源文件用相对路径时,如果当前的工作路径与要创建的符号链接文件所在路径不同,就不能进行链接。

 

符号链接保持了链接与源文件或目录之间的区别:

 

删除源文件或目录,只删除了数据,不会删除链接。一旦以同样文件名创建了源文件,链接将继续指向该文件的新数据。

在目录长列表中,符号链接作为一种特殊的文件类型显示出来,其第一个字母是l。

符号链接的大小是其链接文件的路径名中的字节数。

当用ln -s命令列出文件时,可以看到符号链接名后有一个箭头指向源文件或目录,例如lrwxrwxrwx … 14 jun 20 10:20 /etc/motd->/original_file其中,表示“文件大小”的数字“14”恰好说明源文件名original_file由14个字符构成。

 

34、lsblk

lsblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等。lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。这个包带了几个其它工具,如dmesg。要安装lsblk,请在此处下载util-linux包。Fedora用户可以通过命令sudo yum install util-linux-ng来安装该包。

 

选项

-a, –all            显示所有设备。

-b, –bytes          以bytes方式显示设备大小。

-d, –nodeps         不显示 slaves 或 holders。

-D, –discard        print discard capabilities。

-e, –exclude <list> 排除设备 (default: RAM disks)。

-f, –fs             显示文件系统信息。

-h, –help           显示帮助信息。

-i, –ascii          use ascii characters only。

-m, –perms          显示权限信息。

-l, –list           使用列表格式显示。

-n, –noheadings     不显示标题。

-o, –output <list>  输出列。

-P, –pairs          使用key=”value”格式显示。

-r, –raw            使用原始格式显示。

-t, –topology       显示拓扑结构信息。

 

35、ltrace

ltrace命令是用来跟踪进程调用库函数的情况。

 

语法

ltrace [option …] [command [arg …]]

选项

-a 对齐具体某个列的返回值。

-c 计算时间和调用,并在程序退出时打印摘要。

-C 解码低级别名称(内核级)为用户级名称。

-d 打印调试信息。

-e 改变跟踪的事件。

-f 跟踪子进程。

-h 打印帮助信息。

-i 打印指令指针,当库调用时。

-l 只打印某个库中的调用。

-L 不打印库调用。

-n, –indent=NR 对每个调用级别嵌套以NR个空格进行缩进输出。

-o, –output=file 把输出定向到文件。

-p PID 附着在值为PID的进程号上进行ltrace。

-r 打印相对时间戳。

-s STRLEN 设置打印的字符串最大长度。

-S 显示系统调用。

-t, -tt, -ttt 打印绝对时间戳。

-T 输出每个调用过程的时间开销。

-u USERNAME 使用某个用户id或组ID来运行命令。

-V, –version 打印版本信息,然后退出。

-x NAME treat the global NAME like a library subroutine.

 

36、ldd

ldd命令用于打印程序或者库文件所依赖的共享库列表。

 

语法

ldd(选项)(参数)

选项

–version:打印指令版本号;

-v:详细信息模式,打印所有相关信息;

-u:打印未使用的直接依赖;

-d:执行重定位和报告任何丢失的对象;

-r:执行数据对象和函数的重定位,并且报告任何丢失的对象和函数;

–help:显示帮助信息。

参数

文件:指定可执行程序或者文库。

 

其他介绍

首先ldd不是一个可执行程序,而只是一个shell脚本

 

37、mv

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

 

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

 

如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。

如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

 

语法

mv(选项)(参数)

选项

–backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;

-b:当文件存在时,覆盖前,为其创建一个备份;

-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;

-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。

–strip-trailing-slashes:删除源文件中的斜杠“/”;

-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;

–target-directory=<目录>:指定源文件要移动到目标目录;

-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

参数

源文件:源文件列表。

目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。

 

38、mkdir

mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。

 

注意:在创建文件时,不要把所有的文件都存放在主目录中,可以创建子目录,通过它们来更有效地组织文件。最好采用前后一致的命名方式来区分文件和目录。例如,目录名可以以大写字母开头,这样,在目录列表中目录名就出现在前面。

 

在一个子目录中应包含类型相似或用途相近的文件。例如,应建立一个子目录,它包含所有的数据库文件,另有一个子目录应包含电子表格文件,还有一个子目录应包含文字处理文档,等等。目录也是文件,它们和普通文件一样遵循相同的命名规则,并且利用全路径可以唯一地指定一个目录。

 

语法

mkdir (选项)(参数)

选项

-Z:设置安全上下文,当使用SELinux时有效;

-m<目标属性>或–mode<目标属性>建立目录的同时设置目录的权限;

-p或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

–version 显示版本信息。

参数

目录:指定要创建的目录列表,多个目录之间用空格隔开。

 

39、man

man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。

 

语法

man(选项)(参数)

选项

-a:在所有的man帮助手册中搜索;

-f:等价于whatis指令,显示给定关键字的简短描述信息;

-P:指定内容时使用分页程序;

-M:指定man手册搜索的路径。

参数

数字:指定从哪本man手册中搜索帮助;

关键字:指定要搜索帮助的关键字。

 

40、nano

nano是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nano。

 

nano命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行中输入过长的内容时自动拆分成几行,但用这种方式来处理某些文件可能会带来问题,比如Linux系统的配置文件,自动断行就会使本来只能写在一行上的内容折断成多行了,有可能造成系统不灵了。因此,如果你想避免这种情况出现,就加上-w选项吧。

 

语法

nano [选项] [[+行,列] 文件名]…

选项

-h, -?         –help                  显示此信息

+行,列                                 从所指列数与行数开始

-A             –smarthome             启用智能 HOME 键

-B             –backup                储存既有文件的备份

-C <目录>      –backupdir=<目录>      用以储存独一备份文件的目录

-D             –boldtext              用粗体替代颜色反转

-E             –tabstospaces          将已输入的制表符转换为空白

-F             –multibuffer           启用多重文件缓冲区功能

-H             –historylog            记录与读取搜索/替换的历史字符串

-I             –ignorercfiles         不要参考nanorc 文件

-K             –rebindkeypad          修正数字键区按键混淆问题

-L             –nonewlines            不要将换行加到文件末端

-N             –noconvert             不要从 DOS/Mac 格式转换

-O             –morespace             编辑时多使用一行

-Q <字符串>    –quotestr=<字符串>     引用代表字符串

-R             –restricted            限制模式

-S             –smooth                按行滚动而不是半屏

-T <#列数>     –tabsize=<#列数>       设定制表符宽度为 #列数

-U             –quickblank            状态行快速闪动

-V             –version               显示版本资讯并离开

-W             –wordbounds            更正确地侦测单字边界

-Y <字符串>    –syntax=<字符串>       用于加亮的语法定义

-c             –const                 持续显示游标位置

-d             –rebinddelete          修正退格键/删除键混淆问题

-i             –autoindent            自动缩进新行

-k             –cut                   从游标剪切至行尾

-l             –nofollow              不要依照符号连结,而是覆盖

-m             –mouse                 启用鼠标功能

-o <目录>      –operatingdir=<目录>   设定操作目录

-p             –preserve              保留XON (^Q) 和XOFF (^S) 按键

-q             –quiet                 沉默忽略启动问题, 比如rc 文件错误

-r <#列数>     –fill=<#列数>          设定折行宽度为 #列数

-s <程序>      –speller=<程序>        启用替代的拼写检查程序

-t             –tempfile              离开时自动储存,不要提示

-u             –undo                  允许通用撤销[试验性特性]

-v             –view                  查看(只读)模式

-w             –nowrap                不要自动换行

-x             –nohelp                不要显示辅助区

-z             –suspend               启用暂停功能

-$             –softwrap              启用软换行

-a, -b, -e,

-f, -g, -j                             (忽略,为与pico 相容)

用法

光标控制

 

移动光标:使用用方向键移动。

选择文字:按住鼠标左键拖到。

复制、剪贴和粘贴

 

复制一整行:Alt+6

剪贴一整行:Ctrl+K

粘贴:Ctrl+U

 

如果需要复制/剪贴多行或者一行中的一部分,先将光标移动到需要复制/剪贴的文本的开头,按Ctrl+6(或者Alt+A)做标记,然后移动光标到 待复制/剪贴的文本末尾。这时选定的文本会反白,用Alt+6来复制,Ctrl+K来剪贴。若在选择文本过程中要取消,只需要再按一次Ctrl+6。

 

搜索

 

按Ctrl+W,然后输入你要搜索的关键字,回车确定。这将会定位到第一个匹配的文本,接着可以用Alt+W来定位到下一个匹配的文本。

 

翻页

 

Ctrl+Y到上一页

Ctrl+V到下一页

保存

 

使用Ctrl+O来保存所做的修改

 

退出

 

按Ctrl+X

 

如果你修改了文件,下面会询问你是否需要保存修改。输入Y确认保存,输入N不保存,按Ctrl+C取消返回。如果输入了Y,下一步会让你输入想要保存的文件名。如果不需要修改文件名直接回车就行;若想要保存成别的名字(也就是另存为)则输入新名称然后确 定。这个时候也可用Ctrl+C来取消返回。

 

41、ntpdate

ntpdate命令是用来设置本地日期和时间。它从指定的每个服务器获得了一些样本,并应用标准 NTP 时钟过滤器和选择算法来选择最好的样本。

 

此 ntpdate 命令使用以下方法进行时间调整:

 

如果它确定时钟偏差超过 0.5 秒,它通过调用 settimeofday 子例程设置时钟时间。在引导时间,这是一个首选的方法。

如 果它确定时钟偏差小于 0.5 秒,它通过调用 adjtime 子例程和偏移量来调整时钟时间。此方法倾向于用牺牲一些稳定性来保持漂移时钟更加准确。 当不是通过运行一个守护程序而是从 cron 命令有规则的运行ntpdate 命令时,每一小时或两小时执行一次可以保证足够的走时精度,从而避免调整时钟。

使用很多服务器可以大幅度改善 ntpdate 命令的可靠性与精度。尽管能使用单一服务器,但您能通过提供至少三个或四个服务器以获得更好的性能。

 

如果一个类似 xntpd 守护程序的 NTP 服务器守护程序正在同一主机上运行,命令将拒绝ntpdate 设置日期。

 

你必须有 root 权限才能在主机上运行这个命令。

 

语法

ntpdate [ -b] [ -d] [ -s] [ -u] [ -aKeyid] [ -eAuthenticationDelay] [ -kKeyFile] [ -oVersion] [ -pSamples] [ -tTimeOut] Server…

选项

-aKeyid  使用 Keyid 来认证全部数据包。

-b   通过调用 settimeofday 子例程来增加时钟的时间。

-d   指定调试方式。判断 ntpdate 命令会产生什么结果(不产生实际的结果)。结果再现在屏幕上。这个标志使用无特权的端口。

-eAuthenticationDelay 指定延迟认证处理的时间秒数。

-kKeyFile 当不使用缺省值 /etc/ntp.keys 文件时,为包含密钥的文件指定一个不同的名称。 请参阅文件KeyFile的描述。

-oVersion      当轮询它的发出数据包时,指定使用的 NTP 版本实现。 Version 的值可以是 1,2,3。缺省值是 3。

-pSamples    指定从每个服务器获取的样本的数目。 Samples 的值在 1 和 8 之间,并包括 1 和 8。它的缺省值是 4。

-s    指定日志操作 syslog 设施的使用,而不是使用标准输出。 当运行 ntpdate 命令和 cron命令时,它是很有用的。

-tTimeOut     指定等待响应的时间。给定 TimeOut 的值四舍五入为 0.2 秒的倍数。缺省值是 1 秒。

-u   指定使用无特权的端口发送数据包。 当在一个对特权端口的输入流量进行阻拦的防火墙后是很有益的, 并希望在防火墙之外和主机同步。防火墙是一个系统或者计算机,它控制从外网对专用网的访问。

 

42、poweroff

poweroff命令用来关闭计算机操作系统并且切断系统电源。

 

语法

poweroff(选项)

选项

-n:关闭操作系统时不执行sync操作;

-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;

-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;

-f:强制关闭操作系统;

-i:关闭操作系统之前关闭所有的网络接口;

-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。

 

43、passwd

passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

 

语法

passwd(选项)(参数)

选项

-d:删除密码,仅有系统管理者才能使用;

-f:强制执行;

-k:设置只有在密码过期失效后,方能更新;

-l:锁住密码;

-s:列出密码的相关信息,仅有系统管理者才能使用;

-u:解开已上锁的帐号。

参数

用户名:需要设置密码的用户名。

 

知识扩展

与用户、组账户信息相关的文件

 

存放用户信息:

 

/etc/passwd

/etc/shadow

存放组信息:

 

/etc/group

/etc/gshadow

用户信息文件分析(每项用:隔开)

 

例如:jack:X:503:504:::/home/jack/:/bin/bash

jack  //用户名

X  //口令、密码

503  //用户id(0代表root、普通新建用户从500开始)

504  //所在组

:  //描述

/home/jack/  //用户主目录

/bin/bash  //用户缺省Shell

组信息文件分析

 

例如:jack:$!$:???:13801:0:99999:7:*:*:

jack  //组名

$!$  //被加密的口令

13801  //创建日期与今天相隔的天数

0  //口令最短位数

99999  //用户口令

7  //到7天时提醒

*  //禁用天数

*  //过期天数

 

44、pwd

pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称。

 

语法

pwd(选项)

选项

–help:显示帮助信息;

–version:显示版本信息。

 

45、rename

rename命令用字符串替换的方式批量改变文件名。

 

语法

rename(参数)

参数

原字符串:将文件名需要替换的字符串;

目标字符串:将文件名中含有的原字符替换成目标字符串;

文件:指定要改变文件名的文件列表。

 

46、rm

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

 

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

 

语法

rm (选项)(参数)

选项

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;

-f:强制删除文件或目录;

-i:删除已有文件或目录之前先询问用户;

-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;

–preserve-root:不对根目录进行递归操作;

-v:显示指令的详细执行过程。

参数

文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

 

47、rmdir

rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname佬表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。

 

注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。

 

虽然还可以用带有-r选项的rm命令递归删除一个目录中的所有文件和该目录本身,但是这样做存在很大的危险性。

 

语法

rmdir(选项)(参数)

选项

-p或–parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;

–ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;

-v或-verboes:显示命令的详细执行过程;

–help:显示命令的帮助信息;

–version:显示命令的版本信息。

参数

目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。

 

48、runlevel

runlevel命令用于打印当前Linux系统的运行等级。

 

语法

runlevel

知识扩展

linux操作系统自从开始启动至启动完毕需要经历几个不同的阶段,这几个阶段就叫做runlevel,同样,当linux操作系统关闭时也要经历另外几个不同的runlevel,下面我们就准备详细介绍一下runlevel,并向您展示一些小技巧来让您的linux系统避免不必要的重启动。

 

runlevel可以认为是系统状态,形象一点,您可以认为runlevel有点象微软的windows操作系统中的Normal,safemode,和command prompt only。进入每个runlevel都需要启动或关闭相应的一系列服务(services),这些服务(services)以初始化脚本的方式放置于目录/etc/rc.d/rc?.d/或者/etc/rc?.d下面(?代表runlevel的对应序号)。

 

在大多数的linux发行版本中,通常有8个runlevel:

 

0 停机

1 单用户模式

2 多用户,没有 NFS

3 完全多用户模式

4 没有用到

5 图形界面

6 重新启动

S s Single user mode

多数的桌面的linux系统缺省的runlevel是5,用户登陆时是图形界面,而多数的服务器版本的linux系统缺省的runlevel是3,用户登陆时是字符界面,runlevel 1和2除了调试之外很少使用,runlevel s和S并不是直接给用户使用,而是用来为Single user mode作准备。

 

linux的运行模式比起windows的启动模式的优势在于:你可以在系统空闲时使用init命令切换你现在使用的runlevel,另外,当你关闭或者启动linux系统时你已经不知不觉中切换你的runlevel,系统关机进程需要调用runlevel(0或6)来关闭所有正在运行中的进程。

 

49、reboot

reboot命令用来重新启动正在运行的Linux操作系统。

 

语法

reboot(选项)

选项

-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;

-f:强制重新开机,不调用shutdown指令的功能;

-i:在重开机之前,先关闭所有网络界面;

-n:重开机之前不检查是否有未结束的程序;

-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。

 

50、touch

touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。

 

语法

touch(选项)(参数)

选项

-a:或–time=atime或–time=access或–time=use  只更改存取时间;

-c:或–no-create  不建立任何文件;

-d:<时间日期> 使用指定的日期时间,而非现在的时间;

-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;

-m:或–time=mtime或–time=modify  只更该变动时间;

-r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;

-t:<日期时间>  使用指定的日期时间,而非现在的时间;

–help:在线帮助;

–version:显示版本信息。

参数

文件:指定要设置时间属性的文件列表。

 

51、tty

用来查看当前终端设备

52、type

type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。

 

命令类型:

 

alias:别名。

keyword:关键字,Shell保留字。

function:函数,Shell函数。

builtin:内建命令,Shell内建命令。

file:文件,磁盘文件,外部命令。

unfound:没有找到。

语法

type(选项)(参数)

选项

-t:输出“file”、“alias”或者“builtin”,分别表示给定的指令为“外部指令”、“命令别名”或者“内部指令”;

-p:如果给出的指令为外部指令,则显示其绝对路径;

-a:在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名。

参数

指令:要显示类型的指令。

 

53、tree

tree命令以树状图列出目录的内容。

 

语法

tree(选项)(参数)

选项

-a:显示所有文件和目录;

-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合;

-C:在文件和目录清单加上色彩,便于区分各种类型;

-d:先是目录名称而非内容;

-D:列出文件或目录的更改时间;

-f:在每个文件或目录之前,显示完整的相对路径名称;

-F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上”*”,”/”,”@”,”|”号;

-g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码;

-i:不以阶梯状列出文件和目录名称;

-l:<范本样式> 不显示符号范本样式的文件或目录名称;

-l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录;

-n:不在文件和目录清单加上色彩;

-N:直接列出文件和目录名称,包括控制字符;

-p:列出权限标示;

-P:<范本样式> 只显示符合范本样式的文件和目录名称;

-q:用“?”号取代控制字符,列出文件和目录名称;

-s:列出文件和目录大小;

-t:用文件和目录的更改时间排序;

-u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码;

-x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。

参数

目录:执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。

 

54、stat

stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。

 

语法

stat(选项)(参数)

选项

-L:支持符号连接;

-f:显示文件系统状态而非文件状态;

-t:以简洁方式输出信息;

–help:显示指令的帮助信息;

–version:显示指令的版本信息。

参数

文件:指定要显示信息的普通文件或者文件系统对应的设备文件名。

 

55、shred

shred是一条终端命令,功能是重复覆盖文件,使得即使是昂贵的硬件探测仪器也难以将数据复原,(参见”shred –help”)。这条命令的功能足够适合实现文件粉碎的功效。

 

shred –help

 

用法:shred [选项]… 文件…

 

多次覆盖文件,使得即使是昂贵的硬件探测仪器也难以将数据复原。

 

 

 

长选项必须使用的参数对于短选项时也是必需使用的。

 

-f, –force 必要时修改权限以使目标可写

 

-n, –iterations=N 覆盖N 次,而非使用默认的3 次

 

–random-source=文件 从指定文件中取出随机字节

 

-s, –size=N 粉碎数据为指定字节的碎片(可使用K、M 和G 作为单位)

 

-u, –remove 覆盖后截断并删除文件

 

-v, –verbose 显示详细信息

 

-x, –exact 不将文件大小增加至最接近的块大小

 

-z, –zero 最后一次使用0 进行覆盖以隐藏覆盖动作

 

–help 显示此帮助信息并退出

 

–version 显示版本信息并退出

 

 

 

如果指定文件为”-“,粉碎标准输出的数据。

 

 

 

如果加上–remove (-u)选项表示删除文件。默认的方式是不删除文件,因为

 

覆盖像/dev/hda 等的设备文件是很普遍的,而这些文件通常不应删除。当覆盖

 

一般文件时,绝大多数人都会使用–remove 选项。

 

 

 

警告:请注意使用shred 时有一个很重要的条件:

 

文件系统会在原来的位置覆盖指定的数据。传统的文件系统符合此条件,但许多现代

 

的文件系统都不符合条件。以下是会令shred 无效或不担保一定有效的文件系统的

 

例子:

 

* 有纪录结构或是日志式文件系统,如AIX 及Solaris 使用的文件系统 (以及

 

JFS、ReiserFS、XFS、Ext3 等)

 

* 会重复写入数据,及即使一部份写入动作失败后仍可继续的文件系统,如使用

 

RAID 的文件系统

 

* 会不时进行快照记录的文件系统,像Network Applicance 的NFS 服务器

 

* 文件系统是存放于缓存位置,比如NFS 第三版用户端

 

* 压缩文件系统

 

在Ext3 文件系统中,以上免责声明仅适用于启用了data=journal 模式的情况,

此时文件日志记录了附加的元数据 shred 的作用将受到影响。在data=ordered(默认)

或data=writeback 模式下shred 仍然有效。

Ext3 日志模式可通过向/etc/fstab 的挂载选项中添加data=something 进行设置,

您可以查看mount 的man 页面以获得详细信息。

另外,文件系统备份和远程镜像可能会

包含不能被删除的文件副本,这将会

允许碎片文件被恢复。

 

使用方法举例如下:

粉碎一个名为test.txt的文件命令是:

$shred test.txt

 

粉碎多个文件的命令是:

$shred test1.txt test2.txt

 

这两条命令的效果是文件依旧存在,但不再是原来的文件了,对比测试可以通过先编辑一个文本文件后保存,然后使用shred命令覆盖此文件,再打开该文本文件即可看出内容不再是原有内容了。如果想要覆盖的同时删除文件(这才是粉碎的表现么),加上参数 -u,命令变为:

$shred –u test.txt

 

覆盖一个挂载分区的文件命令是:

$shred /dev/hda0        //覆盖IDE接口的第一个磁盘设备的第一分区

$shred /dev/sda2        //覆盖SCSI或SATA接口的第一个磁盘设备的第三分区

 

在终端下使用shred命令来进行文件粉碎操作实在不方便,得益于Nautilus的可扩展性,我们可以给Ubuntu的Nautilus添加右键菜单来执行shred操作:

 

在终端下输入命令安装Nautilus-actions(中文名被汉化为“Nautilus动作配置”):

$sudo apt-get install nautilus-actions

 

然后单击“系统” –> “首选项” –> “Nautilus动作配置” ->单击“Define a new action”按钮

 

然后在“添加新动作”窗口中输入以下信息:

 

Context Label: Shred粉碎                             //你可以随便想一个名字,这里是显示在右键菜单的名字

Tool tip: Shred粉碎机                     //一样可以随便想一个描述,这是停留在右键菜单的提示

Icon: gtk-dialog-warning                   //可以单击Browse或者下拉菜单中选择一个图标

路径: shred

参数: -f -u -v -z %M

 

然后单击“Record all the modified”标签卡,如果只需要这个粉碎右键菜单出现在仅处理文件的时候,那么就单击“仅文件”单选框,同理如果需要出现在仅处理文件夹的时候就单击“仅文件夹”单选框,如果需要文件和文件夹上右键都能出现该粉碎菜单,那么单击“Both”单选框。另外勾选“Appears if selection has multiple files or folders”复选框

 

在单击“确定”按钮之后返回“Nautilus动作”窗口,单击“关闭”按钮之后再在终端中输入命令:

$nautilus –q     //关闭Nautilus进程

$nautilus         //启动Nautilus进程

 

这时候再进入主文件夹对一个文件右击,菜单中将出现“Shred粉碎”

 

56、startx

startx命令用来启动X Window,实际上启动X Window的程序为xinit。

 

语法

startx(参数)

参数

客户端及选项:X客户端及选项;

服务器及选项:X服务器及选项。

 

57、source

source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

 

58、shutdown

shutdown命令用来系统关机命令。shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。

 

语法

shutdown(选项)(参数)

选项

-c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;

-f:重新启动时不执行fsck;

-F:重新启动时执行fsck;

-h:将系统关机;

-k:只是送出信息给所有用户,但不会实际关机;

-n:不调用init程序进行关机,而由shutdown自己进行;

-r:shutdown之后重新启动;

-t<秒数>:送出警告信息和删除信息之间要延迟多少秒。

参数

[时间]:设置多久时间后执行shutdown指令;

[警告信息]:要传送给所有登入用户的信息。

 

59、strace

strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。当然strace与专业的调试工具比如说gdb之类的是没法相比的,因为它不是一个专业的调试器。

 

strace的最简单的用法就是执行一个指定的命令,在指定的命令结束之后它也就退出了。在命令执行的过程中,strace会记录和解析命令进程的所有系统调用以及这个进程所接收到的所有的信号值。

 

语法

strace  [  -dffhiqrtttTvxx  ] [ -acolumn ] [ -eexpr ] …

[ -ofile ] [-ppid ] …  [ -sstrsize ] [ -uusername ]

[ -Evar=val ] …  [ -Evar  ]…

[ command [ arg …  ] ]

 

strace  -c  [ -eexpr ] …  [ -Ooverhead ] [ -Ssortby ]

[ command [ arg…  ] ]

选项

-c 统计每一系统调用的所执行的时间,次数和出错的次数等.

-d 输出strace关于标准错误的调试信息.

-f 跟踪由fork调用所产生的子进程.

-ff 如果提供-o filename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号.

-F 尝试跟踪vfork调用.在-f时,vfork不被跟踪.

-h 输出简要的帮助信息.

-i 输出系统调用的入口指针.

-q 禁止输出关于脱离的消息.

-r 打印出相对时间关于,,每一个系统调用.

-t 在输出中的每一行前加上时间信息.

-tt 在输出中的每一行前加上时间信息,微秒级.

-ttt 微秒级输出,以秒了表示时间.

-T 显示每一调用所耗的时间.

-v 输出所有的系统调用.一些调用关于环境变量,状态,输入输出等调用由于使用频繁,默认不输出.

-V 输出strace的版本信息.

-x 以十六进制形式输出非标准字符串

-xx 所有字符串以十六进制形式输出.

-a column 设置返回值的输出位置.默认 为40.

-e expr 指定一个表达式,用来控制如何跟踪.格式:[qualifier=][!]value1[,value2]…

qualifier只能是 trace,abbrev,verbose,raw,signal,read,write其中之一.value是用来限定的符号或数字.默认的 qualifier是 trace.感叹号是否定符号.例如:-eopen等价于 -e trace=open,表示只跟踪open调用.而-etrace!=open 表示跟踪除了open以外的其他调用.有两个特殊的符号 all 和 none. 注意有些shell使用!来执行历史记录里的命令,所以要使用\\.

-e trace=set 只跟踪指定的系统 调用.例如:-e trace=open,close,rean,write表示只跟踪这四个系统调用.默认的为set=all.

-e trace=file 只跟踪有关文件操作的系统调用.

-e trace=process 只跟踪有关进程控制的系统调用.

-e trace=network 跟踪与网络有关的所有系统调用.

-e strace=signal 跟踪所有与系统信号有关的 系统调用

-e trace=ipc 跟踪所有与进程通讯有关的系统调用

-e abbrev=set 设定strace输出的系统调用的结果集.-v 等与 abbrev=none.默认为abbrev=all.

-e raw=set 将指定的系统调用的参数以十六进制显示.

-e signal=set 指定跟踪的系统信号.默认为all.如 signal=!SIGIO(或者signal=!io),表示不跟踪SIGIO信号.

-e read=set 输出从指定文件中读出 的数据.例如: -e read=3,5

-e write=set 输出写入到指定文件中的数据.

-o filename 将strace的输出写入文件filename

-p pid 跟踪指定的进程pid.

-s strsize 指定输出的字符串的最大长度.默认为32.文件名一直全部输出.

-u username 以username的UID和GID执行被跟踪的命令

 

60、screen

Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

 

会话恢复

 

只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。

 

多窗口

 

在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。 会话共享 Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。

 

GNU’s Screen 官方站点:http://www.gnu.org/software/screen/

 

语法

# screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

选项

-A  将所有的视窗都调整为目前终端机的大小。

-d <作业名称>  将指定的screen作业离线。

-h <行数>  指定视窗的缓冲区行数。

-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。

-r <作业名称>  恢复离线的screen作业。

-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。

-s  指定建立新视窗时,所要执行的shell。

-S <作业名称>  指定screen作业的名称。

-v  显示版本信息。

-x  恢复之前离线的screen作业。

-ls或–list  显示目前所有的screen作业。

-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

常用screen参数

screen -S yourname -> 新建一个叫yourname的session

screen -ls -> 列出当前所有的session

screen -r yourname -> 回到yourname这个session

screen -d yourname -> 远程detach某个session

screen -d -r yourname -> 结束当前session并回到yourname这个session

在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。

 

C-a ? -> 显示所有键绑定信息

C-a c -> 创建一个新的运行shell的窗口并切换到该窗口

C-a n -> Next,切换到下一个 window

C-a p -> Previous,切换到前一个 window

C-a 0..9 -> 切换到第 0..9 个 window

Ctrl+a [Space] -> 由视窗0循序切换到视窗9

C-a C-a -> 在两个最近使用的 window 间切换

C-a x -> 锁住当前的 window,需用用户密码解锁

C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。

C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。

C-a w -> 显示所有窗口列表

C-a t -> time,显示当前时间,和系统的 load

C-a k -> kill window,强行关闭当前的 window

C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样

C-b Backward,PageUp

C-f Forward,PageDown

H(大写) High,将光标移至左上角

L Low,将光标移至左下角

0 移到行首

$ 行末

w forward one word,以字为单位往前移

b backward one word,以字为单位往后移

Space 第一次按为标记区起点,第二次按为终点

Esc 结束 copy mode

C-a ] -> paste,把刚刚在 copy mode 选定的内容贴上

 

61、uname

uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

 

语法

uname(选项)

选项

-a或–all:显示全部的信息;

-m或–machine:显示电脑类型;

-n或-nodename:显示在网络上的主机名称;

-r或–release:显示操作系统的发行编号;

-s或–sysname:显示操作系统名称;

-v:显示操作系统的版本;

-p或–processor:输出处理器类型或”unknown”;

-i或–hardware-platform:输出硬件平台或”unknown”;

-o或–operating-system:输出操作系统名称;

–help:显示帮助;

–version:显示版本信息。

 

62、w

w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

 

语法

w(选项)(参数)

选项

-h:不打印头信息;

-u:当显示当前进程和cpu时间时忽略用户名;

-s:使用短输出格式;

-f:显示用户从哪登录;

-V:显示版本信息。

参数

用户:仅显示指定用户。

63、wall

wall命令用于向系统当前所有打开的终端上输出信息。通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。

 

语法

wall(参数)

参数

消息:指定广播消息。

 

64、whatis

whatis命令是用于查询一个命令执行什么功能,并将查询结果打印到终端上。

 

whatis命令在用catman -w命令创建的数据库中查找command参数指定的命令、系统调用、库函数或特殊文件名。whatis命令显示手册部分的页眉行。然后可以发出man命令以获取附加的信息。whatis命令等同于使用man -f命令。

 

65、whereis

whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。

 

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

 

和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

 

语法

whereis(选项)(参数)

选项

-b:只查找二进制文件;

-B<目录>:只在设置的目录下查找二进制文件;

-f:不显示文件名前的路径名称;

-m:只查找说明文件;

-M<目录>:只在设置的目录下查找说明文件;

-s:只查找原始代码文件;

-S<目录>只在设置的目录下查找原始代码文件;

-u:查找不包含指定类型的文件。

参数

指令名:要查找的二进制程序、源文件和man手册页的指令名。

 

66、which

which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

 

语法

which(选项)(参数)

选项

-n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;

-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;

-w:指定输出时栏位的宽度;

-V:显示版本信息。

参数

指令名:指令名列表。

 

67、whoami

whoami命令用于打印当前有效的用户名称,相当于执行id -un命令。

 

语法

whoami(选项)

选项

–help:在线帮助;

–version:显示版本信息。

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94439

(0)
上一篇 2018-04-01 19:42
下一篇 2018-04-01 20:23

相关推荐

  • Linux中的文本查看和处理练习题

    linux中的文本查看和处理练习题
    linux用户和组管理类命令的使用方法及练习

    Linux笔记 2018-07-08
  • Docker容器三

    Docker file镜像的制作的各种指令 ;dockerData Volume存储卷

    2018-08-03
  • linux文件管理命令和bash展开式

    文件管理 展开式

    Linux笔记 2018-05-21
  • redis

    分布式存储一定是每个节点只存储一部分数据。

    2018-07-20
  • 计算机原理与Linux基础

    计算机的组成及功能 1、其实计算机的组织分为内部设备和外部设备, 内部设备:         CPU:运算器、寄存器、缓存         存储器:内存,RAM(Random Access Memory)         控制器:控制器是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。 外部…

    Linux笔记 2018-05-13
  • rsyslog、nsswitch、pam

    rsyslog: 日志:历史事件日志 历史事件: 时间,事件 事件级别(日志级别):事件的关键性程度; 事件:系统引导启动、应用程序启动、应用程序尤其是服务类应用程序运行过程中的一些事件; 系统日志服务: syslog: syslogd: system klogd:kernel 事件格式较为简单时,可统一由syslog进行记录: 事件产生的日期时间 主机 进…

    Linux笔记 2018-06-07