关于Linux指令的学习笔记,480个linux命令的详细讲解。
- 第一单元
- 第二单元
- 第三单元
- 第四单元
- 第五单元
- 第六单元
- lp指令
- lpr指令
- lpq 指令
- lprm 指令
- lpc指令
- lpstat指令
- accept指令
- reject指令
- cancel指令
- cupsdisable 指令
- cupsenable指令
- lpadmin设置默认打印机指令
- man 帮助指令
- info指令
- bc算数运算指令
- cal 日历信息
- hostid指令
- date 指令
- dircolors 指令
- gpm 功能
- sleep 指令
- whatis 指令
- who指令
- whoami 指令
- wall 指令
- write 指令
- mesg 指令
- talk指令
- login 指令
- stty指令
- tee指令
- users指令
- clear指令
- consoletype指令
- sln指令
- yes指令
- 第七单元
- adduser 指令
- chfn指令
- chsh指令
- exit 指令
- finger 指令
- free 指令
- fwhois指令
- ps指令
- groupdel 删除工作组指令
- groupmod 指令
- halt指令
- id 指令
- kill指令
- last指令
- lastb指令
- logname
- logout指令
- nice 指令
- procinfo指令
- ps指令
- pstree指令
- reboot指令
- renice指令
- rlogin 指令
- shutdown 指令
- su切换用户命令
- sudo 指令
- suspend 停止上一个指令
- swatch 系统监控指令
- tload 指令
- top 指令
- uname 指令
- useradd 指令
- userdel 指令
- vlock 指令
- w 指令
- groupadd 指令
- 第八单元
- 第九单元
- 第十单元
- 第十一单元
- 第十二单元
- 第十三单元
- 第十四单元
- 第十五单元
- 第十六单元
- 第十七单元
第一单元
过滤控制字符的指令
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 指令
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
至此,这些指令算是学了一遍。