刘嵩的小站 神様は乗り越えられる試練しか与えない。

Linux 指令学习笔记

2017-05-23

关于Linux指令的学习笔记,480个linux命令的详细讲解。

第一单元

过滤控制字符的指令

cat file name | col

vi

vi 是类*nux系统中最通用的全屏文本编辑器,linux中的vi其实是vim是增强版的vi,他启动的时候会占用整个终端。

vi有两种模式,一个是编辑模式,一个是命令模式,默认的模式是命令模式。

从命令模式切换到编辑模式:

进入vi和模式

vi 这后面可以添加文件名称

这个时候是命令模式的,从命令模式切换到编辑模式有六种方式,大小写的i、o、a

i 表示插入,如果是大写I,表示在行首

a 表示光标后追加,如果是大写的A,表示在行尾

o 表示另起一行,other的意思,如果是大写O,表示在当前光标所在行的上边插入一行。

按esc键可以回到命令模式,如果不确定在哪种模式,可以多按几次esc。

esc


退出和保存

退出vi可以使用冒号命令q

:q 回车

如果是不保存,强制退出可以使用“!”

:q!

如果保存退出:

:w q :x

按住shift键,按两下z也可以提示保存后退出。

方向和导航

命令模式下hjkl分别表示左下上右

假如行数特别多,我们可以使用导航命令

:100 表示跳到第100行

:$ 表示最后一行 shift + g也可以移动光标到最后一行

复制和黏贴和删除

光标移动到源行,按下两次y键

在新的目标行按下p键,就能粘贴刚才复制的行

如果想选定一定的范围再进行复制可以这样,在源文字的开头按下v,在源文字结束的位置按下y,这样选中段的源文字就被复制到了缓冲区,可以使用p来粘贴了。

删除当前行,双击d键

撤销之前的操作。按一下u,表示undo,就是撤销之前的操作

vi的设置

:set number 设置行号

:set nonumber 取消行号

:set nu 设置行号

:set nonu 取消行号

:set autoindent 段落自动缩进

如果想看:set命令都能设置哪些内容,我们可以直接

set 回车,这样我们就可看到,set可以设置的参数了。

vi的配置文件

对于当前用户,可以在用户主目录下的.vimrc,可以编辑这个命令;

对于整个计算机生效的修改可以找到/etc/vimrc 这个文件。

Emacs

emacs是一个功能非常强大的文本编辑工具,对于初学者来说是比较难以掌握的。

terminal下文件的打开

emacs 文件名称

退出是ctrl+x ctrl+c

colrm 删除字符指令

用来以列为单位删除字符

colrm 20 50 < /etc/fastab 读取fastab文件,并以字符为单位,删除每列中第20个字符到50个字符的部分,并下时在屏幕上。

comm 比较指令

用于比较已排序文件的不同,以行为单位进行比较 如果要比较,必须先用sort对文本进行排序

sort 文件名

comm 文件1 文件2

csplit 切割指令

csplit 一个长文件 300

表示把一个长文件在300行的位置切一刀,变成两个文件。

ed 编辑器

按行来处理文件

ed 文件名

回显文件总字符数量

这个时候按1,就可以显示第一行的字符。

按小写的i,就可以进入编辑模式

按点. 就可以进入命令模式

按w就可以保存并返回总的字符数量

按q退出。

这样来看,ed其实不是很方便,而且效率不高,但是ed也有他的价值,当你要编辑一个超大的文本,而使用常用的文本编辑器,比如vi或者emacs,这个时候就以为着,需要把整个文件一下子装到内存中,会把机器拖的速度较慢,而ed只读区一部分文件内容,这样就规避了这个问题。

egrep 查找字符串指令

在制定的文件中查找制定的字符串,并切高亮显示

一般是:

egrep -i ‘要查找的字符串’ 文件名

-i 表示忽略大小写

如果需要在多个文件中查找,可以后面接文件名,用空格隔开。

现在egrep已经使用的比较少了,可以用:

grep -E 来代替egrep,这里面参数E是大写的。

ex 单行编辑指令

功能相当于vi的单行显示

ex=vi -E

ex /ect/fstab

回显行数和字符数

:2

显示下一行内容

:3

再下行

功能与vi绑定一致。

fgrep 查找指令

使用方法与egrep指令一致。

可以使用grep -F

fmt 格式优化指令

fmt -u 文件名称 压缩格式符号

fold 指定宽度指令

fold -w 20 文件名称

文件会以20个字符宽度为限显示。显示宽度换行显示并不表示有换行,而是仅以换行的方式显示而已。

grep 关键字无引号 文件名称

grep支持正则表达式。

‘fs$’这个正则表示以fs结尾的字符串

ispell检查拼写的指令

ispell 文件名

后面会有交互说明,按数字,很简单。

jed编辑指令

jed是一个编辑器,它可以模拟emacs等编辑器,支持语法高亮。

joe编辑指令

有点类似emacs。

用于合并给定文件的相同字段。

先进行sort排序。

joe 文件1 文件2

把重复的字段(类似excel重复列)删除掉。

look查找 指令

在使用look指令的时候要先对文件进行sort排序

look 要查找的字符串 sort后的文件

look指令的另外一种用法,使用look指令可以查字典

look hello

就可以查找到所有以hello开头的单词,并显示在屏幕上

mtype指令

mtype 文档名称

就可以显示文档中的数据,在图形界面后打开后,就可以看到显示的文档内容和mtype是一样的。

pico文件编辑器

pico 文本文件名称

rgrep文件内容查找命令

罗列所有该目录机子目录下的文件内容中含有目标字符串的文件:

rgrejp -r -H 查找的内容 文件路径

这里面的查找的内容用应该用单引号标注

这里面的文件路径可以是路径也可以是文件名称

这个指令可以用grep -R来代替。

sed 流式编辑器

sed -e ‘1d’ 文件名 删除文件第一行

sed -e ‘1,4d’ 文件名 删除文件1-4行

sort 排序命令

sort 文件名

这个命令是不改变原文件的内容的,如果我们需要保存到新的文件中

sort -o 新的文件名 要排序的文件名

也可以使用重定向命令,直接把输出定向到一个文件中去

spell 拼写检查指令

它与ispell指令的区别就是,它只能把错误输出,并不能帮助修改,这里面如果需要修改的话,可以使用ispell指令来对文件进行检查和修正,多了一个字母i也许就是inter的意思吧。

tr 字符处理指令

tr dev xyz < 文本文件

返回替换后的结果

tr a-z A-Z < 文本文件

删除指定字符

tr -d wang < 文本文件

这里面的对字符的操作都是以字符为单位的,不是以单词为单位的。

把字符串中的:换成换行符

echo SPATH
| tr “:” “\n”

uniq去除文件中重复的行

uniq 文本文件

这个命令指示把结果输出,如果要保存,可以使用重定向的方法把结果输出到文件

如果一个文件中,它有的行的内容是一样的,那就只显示一次,这就是这个命令的用途。

这里要求这个文件必须是sort有序的

uniq -c

可以统计重复情况

wc 统计字节数单词数指令

wc 文本文件

回显 行数,单词数,字符数

单独显示行数的命令:

wc -l

它支持管道的语法

比如:

ps aux | grep gnome |wc -l

表示,查看进程,在进程中找到带有gnome字样的,然后查一下有多少行。

第二单元

diff 指令

可以接两个文件的文件名,回显出不同的地方。经常用于bug的修复,打补丁等。

diff stat的指令

统计diff 指令的输出结果

file 文件类型指令

在Linux中文件的类型不是以后缀名在决定的,如果想知道文件的类型可以使用file命令。

file 文件名称

find 指令

按照一定的规则显示文件

find ./ -name 文件名称 -exec rm -f {} \;

git 指令

这里面老师懵逼了,没讲出来

gitview指令

这个命令和vi有点像

gitview -c 文件名称

表示以彩色的形式,显示文本

这个和git指令是在同一个软件包中的。

它的使用有点类似于vi的键绑定

如果要以单色模式来显示的话,就用gitview -b 文件名称

ln链接指令

分为硬连接和软连接两种

硬连接,我们通常称之为“连接”;

软连接,我们通常称之为“符号连接”

ln命令缺省参数的情况下创建的连接为硬连接。如果要创建软连接可以使用参数 -s,

ln 原文件 创建的连接的文件

创建的连接为硬连接,如果使用ls -i命令来查看的话,我们可以看到,实际上,创建出来的连接文件和原文件的索引节点是一样的。这就说名,他们都指向同一个硬盘位置。

改变任何一个文件的内容,另外一个文件的内容也会受到改变

ln -s 原文件 创建的符号连接的文件

这里面穿件的是软连接或者符号连接,,通过ls -i我们可以看到,这两个文件没有必然联系,修改原文件,连接文件会改变,删除原文件,连接文件就失效了。

硬连接只能在同一个硬盘分区上创建,因为索引号在各个分区试自成体系的, 软连接没有这个限制,可以跨分区的。

硬连接只能是文件,不能是目录。软连接可以的。

locate指令

locate 指令是基于数据库的,所以速度很快。但是需要及时使用指令updatedb,来更新数据库,保证数据库中的信息能够体现及时的路径结构。

与之不同的是,find是基于数据结构的,它会遍历所有的路径,所以效率低一些。但是优点在于,它不存在数据库更新不及时的问题。

每次执行updtedb指令的时候,它的时间都是挺长的。

lsattr 显示文件拓展属性指令

lsattr 文件名称

回显出文件的扩展属性

mattrib 属性查看指令

对dos文件的属性进行查看和设置

mattrib +/- r 添加/删除只读属性

mc文件管理指令

调用并打开菜单式的文件管理程序

m开头的windows指令

使用方法参考dos命令

rmdir 删除空目录指令

rmdir是不能直接删除空目录的。

如果想删除所有的带文件的目录的话,可以使用rm -r

rmdir -p 可以删除类似这种a/b/c/d/e/f/g

他是先删除最深的目录,然后依次,当出现的目录不为空的时候,就停止删除了。这一点是rm -r不具备的功能。

mshowfat

查看fat文件的属性

有点类似于ls -l

mtools

查看支持的dos指令 ,语法与dos指令相同。

rev指令

对文件中的文字反序输出

rev 文件名称

paste 指令

paste 第一个文件 第二个文件 > 新的合并的文件

通过输出重定向,就可以以列为单位把两个表单合并

有点类似于joe指令,但是它不删除重复项,而且也不需要对文件进行sort排序,事实上不可以进行sort排序,因为这样,原来的顺序就乱掉了。

joe命令之所以可以排序是因为joe的数据都对应有列头的,这样的文件类似excel中的vlookup,是不会乱掉了的,因为可以用列头⬅做匹配。

patch 指令

patch文件通常是通过diff命令输出的文本

使用patch命令的时候通常需要讲patch文件拷贝的要打补丁的文件目录中

patch -pl < patch文件

通过打补丁的方式可以实现文件的升级。

rcp 远程拷贝指令

这个有点复杂需要配置。

mv指令

rm指令

slocate 查找命令

我们只需给到关键词,就可以比较方便的查找到目录或者文件名中包含字符串的文件

回显出文件的路径的列表

它的使用方法和locate是一致的。

split文件分割指令

将一个大的日志文件分割成一个个比较下的日志文件。

tee 指令

将输出的内容保存到多个文件中

cat /etc/fstab | tee file1 file2 file3 file4

这样就把所有的文件都拷贝进了同样的cat回显出的内容了。

touch指令

两个功能,创建新文件,还有一个功能就是改变文件的时间属性。

touch 可以批量创建文件名有逻辑联系的文件

touch file{1,2,3,4,5,6,7,8,9}

whereis 指令

定位二进制程序的位置

whereis ls

另一个有类似的功能的是

which ls

他们是基于PATH路径来查询的。

cat 指令

cat -s 文件名称

如果文件有多个连续空行,则压缩为一个空行。

cmp比较指令

cmp 文件1 文件2

可以比较任何文件,可以告诉你是否有不同,但是究竟怎么不同,不会显示。

diff命令可以比较出究竟哪里不同。

cp复制命令

这个命令比较简单,就是cp 原文件 目标文件 就好了

这里特别说明的是cp 是可以复制目录的,需要添加一个参数 -r,才可以。

cp还有创建硬连接和符号连接的功能

cp -l 原文件 连接文件 这个是硬连接

cp -s 原文件 连接文件 这个是符号连接

cut 删去文本确定列的指令

cut -f 1 -d “ “ 文件名称

-f 1 表示第一个字段,f表示field, -d “ ” 表示用空格隔开。

cut还可以基于字符数为一列

cut -c -15 文件名

这里面-c表示count -15表示15个字符

第三单元

ftp指令

内置很多指令

ftp ftp.redhat.com

使用匿名登录红帽子系统的官方ftp服务器

quit

退出

ncftp指令

ncftp是ftp的增强版,增加了许多额外的功能。

tftp指令

tftp也是ftp的工具之一

只要的功能就是put和get指令,主要的功能就是上传和下载。

第四单元

ar压缩解压指令

ar -v-r ‘目标文件’ 文件1 文件2 文件3 这个是压缩文件的命令

ar -p 压缩的文件包 罗列压缩包里的文件内容

gzip压缩指令

gzip 文件名称

这样的话,原来的文件就没有了,取而代之的是压缩后的文件。

gzip -z 压缩包的名称

对压缩包进行解压操作。

gunzip指令

对已经压缩的文件进行解压缩

gunzip 压缩文件名称

bzip2 指令

对.bz2格式的压缩包进行管理

bzip2 待压缩的文件

后缀是.bz2,原来的待压缩的文件被新生成的待压缩的文件取代了。

bzip2 -d 压缩文件

就可以对已经压缩的文件进行解压缩。

cpio指令

有三种操作模式

  • copyout 把指定文件拷贝到归档包中
  • copyin 读取和显示归档包中文件的内容
  • copybus 在目录树中复制文件

经常用于文件的备份操作

find /bin -print cpio -o >bin.bak

dump指令

假如要备份bin目录

dump -f bin.bak /bin

回车之后会显示整个备份的过程。

restore 指令

这个指令相当于dump的反命令

restore bin.bak

compress 指令

compress 文件

得到文件的后缀名为.Z

uncompress 指令

对文件进行解压

zip指令

zip 生成压缩包的名称 被压缩的文件

会生成.zip的压缩吧

unzip

解压zip压缩包

unzip 压缩包

arj指令

arj a 生成的压缩包 待压缩的文件1 文件2等等

arj l 压缩包

显示压缩包中的文件清单。

unarj 解压指令

bzcat指令

在不解压的情况下,查看.bz2文件内容

bzcat 压缩文件

bzcomp压缩包比较指令

bzcomp 压缩包1 压缩包2

就可以回显出这两个文件不同的地方

bzdiff压缩包比较指令

bzdiff 压缩包1 压缩包2

bzgrep 行匹配搜索

bzgrep 搜索字段 压缩文件

bzip2recover恢复指令

尝试恢复bzip压缩包

bzmore

与more使用命令相同,显示压缩包内的内容,回车显示下一行,空格显示下一屏。

bzless

与bzmore很相似,功能更加强大。退出使用q退出

zipinfo指令

显示zip压缩包的详细信息。

zipsplit指令

可以将一个大的压缩包分割成若干个小的压缩包。

zipsplit -n 600000 待分割的压缩文件

znew压缩转换指令

将compress压缩的文件装换成gzip压缩的文件。 也就是说将.Z文件转换成.zip文件。

znew 待转换文件.z

zcat指令

在不打开zip文件的情况下,查看zip文件内容

gzexe指令

压缩二进制文件,可以自解压的

gzexe 文件名称

生成的压缩文件会替换掉原来的待压缩文件,待压缩文件会被通过改名为加~,备份起来。

tar指令

原来最早是用在*nix系统的磁带机备份的,经过这这么多年的发展,tar指令已经功能很强大了。

创建打包文件:

tar -cvf 生成文件名tar 要打包的文件或目录

v是现实打包过程;f指明生成的打包文件

释放归档文件:

tar -xvf 待解压文件.tar

会解压释放压缩文件

tar命令还只是对压缩文件进行操作

tar -czvf 压缩文件.tar.gz 待压缩文件或目录

tar -xzvf 压缩文件.tar.gz

这些是比较基本的方法。

第五单元

echo 指令

打印值

打印环境变量的值:

echo $PATH

也可以直接打印字符串

echo “hello $HOME”

alias 命令别名指令

alias newcommand=’command combination’

这是定义命令别名,如果想让他每次启动中端都有效,就可以写入配置文件。

unalias 取消指令

这个指令可以取消系统中的命令别名

jobs 指令

返回当前的任务列表

额外学习,如果一个命令执行的时间较长,可以把它放在后台来执行,只需要在执行命令后面连接一个&,表示把改任务转到后台来执行,通过jobs命令可以查看任务的执行情况。

bg 任务号 可以把任务放到后台去运行,注意这里的任务一定是与用户没有交互的任务,否则不成功。

fg 转前台指令

fg 任务号 把一个问题提到前台来进行。

如果仅有一个后台任务,就不需要任务号。

set 指令

set指令用于显示shell中已经定义的变量和对应的值,也可以修改已经存在的shell 变量。

set

查看已经存在的变量

unset 删除已经村子啊的变量

声明变量

declare -x varl=‘linux’

echo $varl

就可以显示linux

unset varl

就取消了这个变量

env 指令

在指定的环境执行指定的指令

env -i /sbin/fidsk -l

或者

env -i PATH=/sbin fdisk -l

type 指令

用来确定一个指令是内部命令还是外部命令

type 1. ls fdisk ps

可以返回这个四个命令的类型

wait等待指令

wait 8230 表示等待这个8230号进程执行结束,返回前台,也可以使用任务号:“%3”,这种表示3号任务。

history 指令

显示历史命令列表,后面可以直接接数字,表示最近执行过的几条命令。

read 指令

键盘读取变量的值

read varl

或者

read varl1 varl2 varl3

该命令会读取键盘的敲击的内容,给后面的变量赋值,敲击回车键表示一个变量赋值的结束,read指令可以同时给几个变量依次赋值,不同的变量和赋值可以用空格隔开。

exec指令

调用其他脚本的命令

比如有一个脚本t.sh内容为

exec -c ls

我们可以在终端执行:

sh ./t.sh

就可以得到ls的结果。

umask指令

取得新创建文件的权限掩码。

shopt指令

显示和设置shell特性的选项

shopt -s 选项变量名称 改变的目标值

shopt -s cdspell on

help指令

显示shell内部命令的帮助信息

builtin 指令

调用shell内部的指令

declare 声明指令

declare a=“b” 声明一般变量

declare -r a=“b” 声明只读变量

注意,在已经有变量的情况的,可以通过给变量赋值来改变变量的值:

a=b

pushd和popd指令

压入和弹出目录堆栈。

readonly 指令

用于定义只读变量或函数

readonly varl1-123

这个时候再赋值是不起作用的

readonly -p

显示所有只读变量的清单

fc调用历史命令指令

。用history可以查看历史命令,历史命令是有编号的,

fc 编号 可以显示vi窗口对对应编号的命令进行编辑,:wq 退出。

编辑的命令即被执行。

第六单元

lp指令

向指定的打印机发送打印指令

lp -d printer100 某个待打印的文件

-d 选项用来指定特定的打印机。

lpr指令

用于将指定的文件发送给打印机打印

lpr 待打印文件

lpq 指令

用于查看系统目前的打印队列

lprm 指令

用于删除指定的打印任务

lprm 打印作业编号

lpc指令

对打印机的控制指令,对远程的打印机进行控制。 有五个指令

lpc 后面的五个指令分别是:exit help quit status ?

lpstat指令

查看打印任务和相关的状态信息

accept指令

用于接收特定打印机的任务。

accept printer100

reject指令

拒绝发往指定打印机的任务

reject printer00

如果希望可以给出拒绝的原因,可以接一个-r选项,接上拒绝的与原因。

cancel指令

用于取消某个打印任务队列中的打印任务

lpq 查看打印任务

cancel 打印作业的编号(在上一步查看到的)

cupsdisable 指令

cupsdisable printer100 关闭指定打印机

cupsenable指令

cupsenable printer100 启动指定打印机

lpadmin设置默认打印机指令

lpadmin -d printer100

将printer100设置为默认打印机

man 帮助指令

man passwd

可以看到passwd 的输出帮助页。

man 5 passwd

更加详细的手册,第五本手册。

info指令

info emacs buffers -o out.txt

将emacs的信息中的buffers节点的内容保存到out.txt文件中去

bc算数运算指令

bc 直接回车

在下面的空间可以输入算式,可以给出计算结果

输入quit可以退出

cal 日历信息

cal 显示当前月的信息

cal 2020 显示2020年的全年的日历

cal -3 显示最近三个月的日历信息

hostid指令

用于打印当前主机id的16进制标识

date 指令

显示当前系统的时间,或者设置系统的日期和时间

date

date “+%y-%m-%d %T”

格式符号的表示,date帮助手册里有更详细的显示。

设置时间

date -s “2010-10-15 12:12:12”

查看文件的最后修改时间

date -r 文件名称

dircolors 指令

dircolors -d

可以查看终端的颜色配置文件

gpm 功能

ps aux grep gpm

我们可以看到有关gpm的任务信息,可以看到他的启动的命令是 gpm -m。。。

sleep 指令

sleep 2s 表示shell 睡眠两秒钟

可以支持s、m、h,d

通常应用在shell的脚本中,值等待其他的脚本指令

whatis 指令

在whatis 数据库中记录了命令的简短描述信息。

who指令

打印当前登陆的用户的信息,有一些参数:

who -H 可以增强显示

whoami 指令

打印当前用户的身份

wall 指令

广播信息,可以给所有的登陆用户发信息。

wall “hello linux” 这个时候所有的登陆的用户都可以收到信息

write 指令

write 目标用户 “hello linux”

就可以定向的给目标用户发送消息,目标用户可以用who来看,谁登陆的,用什么用户名。

这个命令也可以这么用,直接输入 write 目标用户名 回车

在下边空的区域写入要发送的信息,然后按clt+d,结束写入,发送信息。

mesg 指令

mesg n 这个命令可以拒绝别的普通用户给给他发信息。

但是root用户是可以信息的,因为root用户是有特权的。

talk指令

在使用这个指令之前需要先启动tald.d 这个进程。

编辑/etc/xinetd.d/ntalk 这个文件,把disable的字段赋值改成no

service xinetd restart

注意这个利用的是centos系统,如果是非红帽子系的系统,启动服务,可能用的就不是这个service命令了。

talk 目标用户的用户名@localhost tty2

这样就可以发出聊天请求了。

另一个用户需要按提示输入类似talk root@localhost.localdomain

这样聊天的用户过程就开始了。

login 指令

就是登陆指令,平时我们等的过程就是用login指令

如果已经登陆再次使用login指令就是立即退出当前的登陆,开始新的登陆

stty指令

用于修改命令行的相关设置

比如clt+c等快捷组合件的设置

tee指令

是一个输出分流的信息,在屏幕下显示输出信息的同时,输出到其他文件中。

users指令

显示登陆的用户的指令

clear指令

清屏指令

consoletype指令

consoletype

返回 pty,表示已连接的终端类型,pty其实是指伪终端。

它的返回值还有一个数字,如果是0,则表示虚拟终端;如果是1,则表示串行终端;如果是2,则表示伪终端。

echo $? 这个命令可以查看返回的数值。

sln指令

sln是ln指令的静态连接版本,不需要动态链接库。

ln要比sln占用空间少很多。

经常用在为动态链接库创建链接。

它与ln还有一个不用的地方是,ln默认创建hardlink,但是sln默认创建softlink。

yes指令

表示直执行某个命令,直到yes被杀死。一般用clt+c

第七单元

adduser 指令

添加用户指令

adduser 用户名

他会要求你输入新添加用户的密码。

然后他会要求输入其他的信息,可以为空的。

然后确认一下。

chfn指令

改变用户的基本信息

就是像创建用户是的填写的信息。

chsh指令

用于修改用户的登陆的shell

chsh -l 看一下目前用户可以使用哪些shell

chsh 用户名

后面写入新的shell的路径即可。

exit 指令

退出命令

finger 指令

finger 用户名

free 指令

显示内存的使用情况

一部分是物理内存,另一部分是交换分区的使用

free -m 以兆为单位显示

fwhois指令

用来查看fwhois的信息

fwhois 用户名

finger与fwhois有相同的功能,并且finger信息还比较全面。

ps指令

ps 运行的程序的状态

ps aux 就会有比较详细的进程的信息。

groupdel 删除工作组指令

groupdel 要删除的工作组

这里面的工作组必须是空的,不能有用户,否者不能删除

groupmod 指令

用于设置工作组信息

groupadd 新的工作组

groupmod -n 新的工作组 新的工作组2

这个命令是把新建的“新的工作组”改名成“新的工作组2”,-n 表示改名。

groupmod -g 8888 新的工作组2

这个命令把新的工作组2这是组的id号码为8888

halt指令

关闭计算机的指令,默认不会世界关闭计算机,如果需要关闭计算机,就需要使用halt -p的选项。 计算机就会完成关闭,切断电源的操作。

id 指令

查看对应用户的ID信息。

kill指令

通过向程序发送关闭信息,来杀死程序

kill %1 表示杀死1号程序,这里的1号是用jobs命令查看的。

kill 进程号码 进程号码表示进程号

last指令

显示所有用户的登录和退出的信息

last

lastb指令

显示异常登录信息

lastb 用户名称

如果太多了可以使用管道命令。

logname

在编写脚本的时候,可以获得当前登陆用户的用户名。

在shell使用的时候,使用频率并不高。

logout指令

直接退出当前登陆的shell

clt+d也可以实现

nice 指令

指定优先级,运行某个指令

nice -n 6 find / -name passwd >out.txt

这里面用的nice是正6,正的数字使用cpu的几率要比负数更小。数字越小,优先级越高,程序越优先被执行。

procinfo指令

它的用途就是显示系统的状态信息,一般这样用

procinfo -a

它的功能和free类似。

ps指令

用于显示进程的状态信息

ps 是简要显示,内容十分有限

ps aux 这样的命令可以比价详细的显示系统的进程状态信息。

pstree指令

可以以树形的结构显示进程信息和状态关系

reboot指令

如果我们要重新启动计算机,我们可以使用reboot信息。

renice指令

可以对程序的优先级进行调整

renice +7 进程号 这个命令其实是降低了进程的优先级。

rlogin 指令

远程登陆的指令。

首先要在服务器端来启动rlogin的服务。/etc/xinet.d/rlogin 把有效性激活,enable

service xinetd restart

等等。

shutdown 指令

shutdown -r now 立即重启计算机

shutdown -h now 立即关闭计算机

如果是想延续时间可以把now换成+10,表示十分钟后。命令的最后面还可以接上双引号“”,里面写上通知,因为关机会影响到其他登陆用户的使用,所以需要告诉它们一声,这样的信息可以写在双引号里。

这时候在命令行中按clt+c就可以取消关机。

su切换用户命令

如果以root用户身份切换到普通用户,系统不提示输入密码。

其他用户之间切换,需要提权。

su 用户名

su - 用户名 这个是切换用户的同时,也切换用户的目录,避免命令找不到路径

sudo 指令

这是个提权指令。

suspend 停止上一个指令

su 普通用户名

会显示已切换

suspend -f

这个命令输入后,上边的切换用户的命令就失效了。

swatch 系统监控指令

这是一个系统监控的指令,可以在指定的时间启动系统的监控程序。

swatch -r 20:00 在晚上的8点钟启动swatch 程序。

tload 指令

tload /dev/pts/1 -d 3

top 指令

它是一个综合了多方面性能的实时的系统信息的工具

默认每隔3秒钟刷新一次。按空格刷新一次,按q,退出,按k,可以杀死对应进程号的进程。

uname 指令

显示当前系统的内核版本号

uname -a

useradd 指令

useradd -s 设定shell的路径(实际上就是定了) -d 设定默认的路径(就是环境变量) 最后接上添加的用户名称

userdel 指令

用于删除系统的用户

userdel 用户名称

这样就可以了,但是宿主目录还在的。 如果使用

userdel -r 用户名称

这样就可以连带用户的宿主目录一起删掉。

vlock 指令

锁住终端机的窗口,是他们进出休眠状态

vlock -a 锁住所有终端

vlock -h 帮助

vlock -v 版本

w 指令

w

就可以查看当前登陆的用户,和状态

groupadd 指令

groupadd 新的用户组

如不指定,系统会默认指定一个组的id号,一般是500以后的。

如果要指定id,可以使用-g选项

groupadd -g 888 新的用户组

第八单元

alias 命令别名指令

By this command, can improve the safty degree and convinience

alias

To see what are the alias commands existing in this computer.

alias mycommand=’the troditional command’

unalias to cancel the alias command you just set.

apmd command

command on the business of the power.

aumix command

command on the audio config.

aumix by typing this command directly we can adjust the config with GUI easily.

bind 键盘绑定指令

bind -l

显示目前支持的功能列表。

chkconfig command

chkconfig –list we can the different service in different running level.

chkconfig –list anyservicename we can see the specific service in different running level.

chkconfig –level 3 xinetd off shut down the service of xinetd on the 3rd running level.

chroot command

This command is used to switch the root directory of the system.

suppose that we have two different operating system,we wanna switch from one to another, in this situation we need to mount the new device by:

mount -t ext3 /dev/sdb1 /mnt

after that, we can use the chroot command to switch the root directory by:

chroot /mnt

what needs to be noticed is that in the new directory at /mnt, we gotta have all the necessary system files to support the running of the system, like /bin /etc.

crontab 指令

crontab只是一个前台的工具,在后台有一个crond的守护进程。

正是由于crond的存在,才能定时执行命令

我们需要创建一个mycron 文件

分钟 小时 天 月份 星期 简单的指令

创建之后保存退出即可。

下面使用crontab的命令,将文件传递给crond:

crontab mycron

通过:

crontab -l 我们可以看到,刚才编辑的定时命令已经被识别病放到了队列中。

declare 声明指令

declare varl1=“hello”

这个时候直接输入$varl1.就可以显示hello,也就是varl1的值。

如果声明只读变量,则用-r 选项:

declare -r varl2=345 即可

dircolors 指令

dircolors -b 查看现有的配置

也可以直接显示环境变量:

echo $LS_COLORS 查看现有的配置

enable 指令

用于激活或关闭内部指令(buildin)

enable -n alias 暂时停用alias

enable alias 激活恢复使用alias

export 指令

环境变量指令

export -p 显示所有的环境变量

export -x XXX=”XXX” 设置环境变量

exprot 某个变量 把刚刚赋值过的shell变量变成环境变量

fbset 指令

调整显示分辩率,显示窗口的大小等设置。

fbset -s 设置

fbset –test 只是测试设置,不会真正的改变配置文件

hwclock显示设置系统时间指令

insmod指令

向内核中加入模块

lsmod 指令

显示内容中已经加载的模块的信息

mousecofig指令

设置鼠标的参数

这个指令是互动模式的,有图形界面,只能在redhat中才能使用,其他发行版本中没有此功能。

ntsysv指令

这个指令的功能与chkconfig相同,但是ntsysv会启动一个文本的操作页面,更加方便的设置。

ntsysv –level 1 查看和修改在指定运行级中启动的服务,如果是当前运行级,则–level 1的选项可以省略。

passwd指令

用于设置用户密码,创建用户之后,是不能登陆的,需要添加密码。

passwd -s 用户名 显示用户密码概要信息

passwd 用户名 设置密码

echo ** passwd –stdin 用户名 通过管道将密码传送个passwd指令,实现非人为干预的设置密码。

resize 指令

显示和调整linux命令窗口的大小。 如果什么参数都不带的话:

resize 就会显示当前窗口的参数

resize -s 行数和列数(两个数字) 调整出窗口参数大小。

ulimit 指令

限制用户对shell资源的访问

ulimit -a 显示限制项,里面能有显示参数的说明,如果需要设置,跟着用就好了。

第九单元

arch指令

arch 打印当前主机的架构类型

这个arch指令已经不太推荐使用,一般比较推荐使用uname指令,配合参数可以实现类似的功能。

lsusb 指令

显示系统中的usb设备的列表。

如果想以树形的结构来显示usb设备的话,可以使用-t选项

lsusb -t 以树形结构显示usb设备的列表

lspci 指令

显示系统中的pci设备的列表

如果想以树形的结构 来显示pci设备的话,可以使用-t选项

lspci -t 以树形结构显示pci设备的列表

setpci 指令

可以用来配置pci设备的信息,需要root权限。

setpci -v 显示信息

setpci -vD -d : latency_timer=40 -D表示是测试;-v表示详细信息;-d表示指定设备

systool 指令

显示系统信息

systool -b usb 显示系统的usb设备的信息

第十单元

df指令

其实全称是diskfree,可以查看磁盘使用情况的命令

df 以块为单位显示

df -h 以可读的方式显示

cd指令

ls指令

mkfs 命令

mkfs -t ext3 /dev/sdb1 格式化sdb1为ext3

mountpoint 指令

mountpoint /bin 判断指定的目录是否为挂载点

swapoff 指令

我们可以通过free来查看内存和交换空间的使用情况,通过fdisk 可以看到哪个分区是交换分区,假如我们想关闭交换分区的功能,就可以使用:

swapoff 对应的分区目录

swapon 指令

设置好swap格式的分区或者文件后,就可以使用swapon,激活swap分区

sync 指令

通常系统会自动执行的,但是为了确保缓冲区的内容及时写到硬盘,我们可以使用sync指令,手动将缓冲区的内容写入磁盘。

该命令没有任何回显。

第十一单元

badblocks 指令

badblocks -vs /dev/sda 这里面-v显示过程,-s显示进度

dd 指令

这个指令可以在复制文件等的过程中进行文件内容的转换,比如把所有的字符都换成大写等。

dd if=test.sh of=newtest.sh 如果这里不添加任何参数,就只是单纯的拷贝文件,if是inputfile,of是outputfile的意思。

dd if=text.sh conv=ucase of=newtest.sh 把原文件转换成大写,输出一份。

假如我们想把光驱里的光盘制作成iso映像文件,可以使用:

dd if=/dev/cdrom of=mycd.iso

mkswap 指令

创建新的交换空间

先创建新的swap分区

partprobe

mkswap 对应的分区

第十二单元

at 指令

在指定的时间点执行指定的任务。

at 23:00

之后输入要运行的命令

然后clt+d结束

atq

查看还没有执行的任务列表

atrm 指令

用于删除由at指令提交的待执行任务

atrm 1

batch 指令

在指定的时间执行指定的任务,与at不同的是,只有当到达时间,并且系统不繁忙,才会执行命令。

使用方法和at一样

也可使用文件传的的方式:

batch -f 文件 4:30

killall指令

按照进程的名称杀死进程。

nohup 指令

nohup find / -name shadow > out.txt

这样,就算退出shell,find命令从根目录查找shadow并把结果输出到out.txt这个动作仍然会被执行。

qkill指令

可以按照进程的名称杀死进程。

pstree指令

以树形结构的方式显示进程树。

skill 指令

通过进程的号码结束掉进程。

watch 指令

watch -d ls -l

实时的监控某个指令结果的变化。

runlevel指令

显示系统当前运行等级。

pgrep指令

根据名称查找进程对应的进程号

###pidof指令

根据名称查找进程对应的进程号

第十三单元

内核的相关操作

内核相关的指令

lsmod、insmod、rmmod,modprobe、等等

modinfo指定

用于显示进程相关的信息

depmod指令

看看内核的映射关系

uname 指令

用于显示当前版本信息,主机名称,架构类型等信息

uname -a 这个是最全面的信息

kexec 指令

切换linux内核

kexec -l /boot/vmlinuz-2.6.18-194.e15 –append=root=LABEL=/ 加载内核

kexec -e 启动预加载的内核

第十四单元

test指令

对于文件的测试:

test -r /etc/passwd 测试passwd文件是否可读,0表示可读,1表示不可。

echo $? 显示上一个函数的输出变量

test -w /etc/passwd 测试passwd文件是否可写,

echo $?

对于整数的测试:

var1=123

var2=456

test $var1 -eq $var2 测试var1和var2是否相等,这里面-eq表示数值相等的判断。

echo $?

对字符串的测试:

str1=”abc”

str2=”def”

test $str1 = $str2 对于字符串的判断,是否一样可以表示为“=”。

echo $?

其实test指令也有另一种表述方式,用方括号:

[ $str1 = $str2 ] 这里面各个主体之间都有空格

expr指令

expr 5 + 5 求算式的数值,这里数字和计算符号间都有空格

expr ( 1 + 5 ) * ( 4 + 3 ) 转义符号与被转义的符号之间不能有空格

ldd 指令

用于打印程序所需要的共享库,比如

ldd /bin/ls

回显出ls指令所需要的系统的共享库文件。

make 指令

下载一个源码软件包,先解压

tar -zxf 源码包.tar.gz

切换到源码目录

./configure —prefix /usr/local/软件名

make

make install

一般的安装源码软件的过程,一般应该仔细阅读readme文件。

第十五单元

telnet 指令

要想使用telnet指令,必须在指定的服务器上启动telnet服务,才能在客户端主机上使用,由于telnet是明文传送信息,所以现在使用的比较少了。

默认情况下telnet是不允许telnet直接登陆的,如果要root登陆,则需要更改/etc/securetty文件

nc指令

nc指令或者netcat指令,可以实现网络网络扫描等各种功能,功能强大。

netcat -l -p 6666 简单的例子,实现监听,这是服务器端。

netcat 服务器的网址 666 回车时候输入文字就一可以在客户端看见内容。

ping指令

是我们进行网络测试的时候最常用的指令之一

traceroute指令

查看数据包经过了那些节点:

traceroute www.baidu.com

就可以查看,整个访问过程通过的节点。

smbclient 指令

smbclient -U liusong //192.168.31.179/liusong

Password:*****

第十六单元

elm 指令

邮件指令

elm 即可全屏显示

mail指令

mail text@test.com

subject:texting body.body 正文 Cc.ddddd

mailq 指令

查看邮件传输队列的指令

第十七单元

elinks www.baidu.com

退出使用q键,确认使用y

还可以作为本地查看器

elinks file///root

wget 指令

wget www.google.com

下载整个网址的内容。

它可以下载镜像网站的整个内容。这个需要再查资料。

smbpasswd指令

smbpasswd -a 用户名

输入密码

这样就添加了一个samba用户,注意在添加这个用户名的时候,系统一定要已经存在一个这样的用户,smb服务才能添加成功。

sendmail指令

邮件服务指令,有点代理服务

sendmail -bd 可以这么用,但是通常不这么用,通常用系统的服务

service sendmail stop/start/restart

至此,这些指令算是学了一遍。


相似文章

内容导航