这是我对2021年春季学期学习的Linux课程记录的笔记.内容较多,都是自己亲自整理的.Linux的内容多而且杂,主要都是指令,在不去充分运用的情况下会很容易遗忘,所以在应聘,考试或使用前应该回来浏览一遍Linux的笔记.注意,本笔记是从word文档中移植过来的,可能会存在纰漏,如有发现欢迎指正交流.
第一章 基本的系统操作
Passwd:修改密码
可以后面添加用户名:
1 | passwd aaron |
Date:展示当前时间
%m:用数字表示月份
%d:用数字表示按月记的时间
%y:输出年份的后两个数字
%D:输出日期,格式为mm/’dd/yy
%H:输出24小时数
%M:输出分钟数
%S:输出秒数
%T:输出日期格式为HH:MM:SS
%a:输出星期几
%h:输出月份名
%r:输出12小时的时间
修改屏幕:
Clear:清屏
Tput clear:清屏
Tput cup: 将光标放置在特定位置,例如 tput cup 3 5将光标放置在第三行第五列
Tput smso:将操作的行颜色反转
Tpud rmso:恢复屏幕颜色
Tput blink:让屏幕闪烁
Tput reset:恢复屏幕设置
辨别用户:
Who:列出所有的 用户名 终端种类 上次登录时间 ip
Who am I:列出当前用户的信息
Who -m:等同于who am i
Who -q:列出用户名和用户的数量
列出菜单页面:
Man:用来了解某些信息,比如man ls可以列出有关ls的信息
Info:其中的信息比man更详细更新,用同样的方式可以展示命令的用途
–apropos—string在所有菜单中查找string
-o,–output—filename创建一个filename文件并将Info的信息放置到里面
-h,–help列出帮助菜单并退出
–version:列出info的版本信息并退出
第二章 对文件的基础操作
查看当前操作目录:pwd
修改当前目录:cd
Cd ..代表回到上一层,随后可以添加其它操作
Cd ~代表跳到主目录
创建文件夹:
Mkdir用来创建一个文件
Mkdir dir:在当前目录创建一个dir文件
Mkdir /tmp/dir在tmp文件夹中建立一个dir文件
移除文件
Rmdir用来移除文件,与mkdir一样可以加文件名或者地址
只有文件不为空,当前文件夹不是该文件时可以移除该文件
列出文件
ls列出文件夹中的文件,默认当前文件夹,可以指定地址
ls+ -l:详细展示文件,包括访问权限,链接数,文件拥有者,小组拥有者,文件大小,修改时间,文件名
-a:列出所有文件,包括隐藏文件
-F:展示文件类型和文件名(‘/’代表文件,’*’代表可执行文件)
-R:展示当前文件夹的所有内容和下级所有文件夹的内容
-r:用相反的顺序列举出文件
-S:通过文件大小排序文件
以下为一些文件类型的表示
-: Ordinary file
d: Directory
b: Block special file
c: Character special file
l: Symbolic link
s: Socket
打开文件
cat:打开文件,例如:
打开data1
1 | cat data1 |
也可以一次打开多个文件:例如打开data1和data2
1 | cat data1 data2 |
复制文件
cp+ -r:如果data2存在,将data1中的所有文件和子文件放置到data2,否则在当前操作目录创建一个data2来完成操作
1 | cp -r data1 data2 |
-i: 在覆写目标文件之前提示用户是否覆盖,回答y则覆盖
-l:不复制文件,只生成链接文件
-s:建立一个symbolic link
移除文件
rm:用来移除文件,用法主要有:
删除文件data
1 | rm data |
删除data1和data2
1 | rm data1 data2 |
删除目录中的文件
1 | rm /home/aaron/data |
移动和重命名文件
mv:
1.用来移动文件
1 | mv source destination |
如果省略一个参量,默认将该文件从当前文件夹移动到目标文件夹
2.同样也可以用来重命名文件
mv+ -f:操作前不提示
-i:操作前提示
分页查看内容
more:分页更方便地看文件,支持空格向前和b向后,翻完后不能退回
less:与more相似,更加自由,可以翻回
通配符字符
文件访问权限:
展示格式:
在ls -l展示的文件信息中,最左侧就是文件的访问权限
[ ][r][w][x][r][w][x][r][w][x]
共有10个位置
第一个是-或者d,-代表普通文件,d代表文件夹
第2-4位是owner的权限
第5-7位是group的权限
第8-10位是other users的权限
**修改访问权限:**
修改对象符号:
u: user
g: group
o: other users
chmod 修改对象+/-权限 文件名 完成对权限的修改
Absolute Mode:
通过一串数字来代表这个文件的访问权限
read=4 也就是二进制100
write=2 也就是二进制010
execute=1 也就是二进制001
进而:一个文件的访问权限可以由三个数字组成
第三章 vi编辑器
1.打开vi编辑器:
1 | vi filename |
如果filename不存在,会在左下角显示”filename.txt”[New File]
如果文件存在,会读取文件内容并且展示在屏幕上
2.vi editor有三种模式:
Command mode:用来执行指令,通过按esc进入该模式
Input mode:用来编辑文本内容,在command mode中按a ,i 或o等来进入该模式
Escape mode:用来执行一些指令指令,在command mode中点击 : 来进入这个模式
常规指令:
h光标移动到前一个字符
l光标移动到下一个字符
k光标上移一行
j光标下移一行
x删除一个字符
dd删除一行
:wq+Enter保存文件并退出编辑器
:w+Enter保存文件
:q!+Enter退出文件并不保存编辑
:e
:w
:w!
Ctrl +d or D移动到屏幕的最后一行
Ctrl +u or U向上移动半屏
Ctrl +F向前移动一页
Ctrl +B向后移动一页
nG去第n页
0(zero) 去这一行的开头
$去这一行的末尾
H去屏幕的开头行
M去屏幕的中间行
L去屏幕的最后一行
高级阅读和保存指令
插入和替代指令 ???
文字移动指令
删除修改指令
复制行指令
查询指令
字符查询指令
Vi配置
Ab command:
用string1来代替string2
1 | :ab <string1><string2> |
取消这个代替关系
1 | :unab <string1> |
Map:映射
:map: 用前者键位来映射后者
:map!:可以在编辑模式映射
第四章 重定向与管道
重定向输入输出
输入重定向:
1 | cat<test1 |
指定标准输入来自磁盘文件而不是键盘,相当于cat 后面手打test1的内容
1 | cat 0<test1 |
0表示输入重定向
输出重定向:
1 | cat test1>out_test |
将test1的内容传递到out.test,如果文件out.test不存在会创建,如果存在就会覆写(删除原数据)
1 | cat test1>>out_test |
将test1附加到out_test后面
1 | cat test1 1>out_test |
可以在前面写1来代表输出重定向,不是必须的,但可以说明操作,容易理解
错误重定向:
1 | cat test_2 2>error-mesg |
假如test_2不存在,会产生一个错误信息,这个信息原本应该显示在屏幕上,这样可以显示在error_mesg文件中
使用过滤器
grep过滤器:
****搜索具有特定样式的字符并显示包含那个样式的所有行,在文件中搜索的样式被称为正则表达式,不指定正则表达式无法使用
语法是
1 | grep [option] pattern [filename] |
例如 在java.txt文件中搜索含有正则表达式为”gdddd[d]”的字符串
1 | grep 'gdddd[d]' java.txt; |
正则表达式:
grep中的option:有
-n:打印与样式匹配的每行及行号,行号打印在行首
-c:打印与模式匹配的行数
-v:打印与正则表达式不匹配的所有行
wc过滤器:
****用于计算磁盘文件或标准输入文件中的行数,字数和字符数
1 | wc [option] [filename] |
option:
-l:显示行数
-w:显示词数
-c:显示字符数
如果没有提供文件名,wc使用标准输入
cut过滤器:
****在特定命令的输出抽取特定列时使用cut过滤器
1 | cut [option] {fileame} |
option:
-f:显示指定列
-c:显示指定字符
-d:指定判定界符,Tab是默认的
例如,显示文件每行的前5个字符
1 | cut -c1-5 filename |
tr过滤器
****用于将一组字符翻译成另一组字符,或者可以用于删除重复的字符
-s用于出现的几个字符压缩成一个
例如,压缩文件空格并打印
1 | tr -s ' ' <filename> |
将小写字符转化成大写
1 | tr “[a-z]” “[A-Z]” |
把所有:换成空格
1 | tr ‘:’ ‘ ’<filename> |
sort过滤器
****sort的操作有:
-r 反序排序输出
-f以字符ascii码顺序排序
-n 以非ascii码的顺序排序
sort+一堆数字的时候,会先比较第一位数字,第一位数字大,数字整体就大。比如2>19
+ops1 -pos2按特定列的顺序排序文件pos1是前面忽略的列数,pos2是排序终止的列。例如第三列是+2 -3.可以指定多列,例如3 4列就是 +2 -3 +3 -4
-t基于特定列分隔符排序文件,例如
在用_分割的列中选中第三列
1 | sort -t”-” +2 -3 new_namelist |
-o将sort过滤器输出的内容保存在磁盘上,而不是显示在标准输出上
将sort的内容保存在name_list中
1 | sort -t”-” +2 -3 -o new_namelist name_list |
使用管道:
竖线|是管道字符,可以将两个步骤合并为一个步骤并且不需要创建临时文件
tee命令:
tee读取标准输入并将其写到标准输出和文件,如果要写入的文件不存在,则将创建该文件,如果文件已存在,就重写该文件
展示文件temp内容,并且写入temp1和temp2
1 | cat temp | temp1 temp2 |
第五章 Linux Shell
了解shell:
alias:创建别名
1 | alias dir=’ls -l’ |
执行此命令后,可以使用关键字dir来代替ls -l
还可以用一个别名表示几个命令的组合
1 | alias check=’who;uptime’ |
这样执行check会依次执行who 和uptime
bg fg:作业控制
在前台控制程序时,可以在后台运行多个进程,还可以按Ctrl+z暂挂一个作业,并在前台启动另一个作业,需要使用bg命令将作业发到后台
1 | bg %commandname |
其中commandname是暂挂的作业名称,也可以指定一个命令编号
1 | fg %commandname |
fg 用来将命令推回前台,除了name也可以用number
jobs列出活动的作业
文件名完成:
****使用tab键完成没写全的文件名
按两次tab可以列出所有可能的文件名
命令完成:
使用tab完成没写全的指令
按两次tab列出可能的所有命令
ps:
展示当前的shell版本
修改shell:
chsh:修改shell
在new shell后面要输入新shell的全路径
同时还需要输入密码
这样在下次登录用户时就会使用新的shell
在linux中创建shell脚本
echo命令:
****echo命令用来在屏幕上显示括起来的内容,最好使用双引号
1 | echo “Hello” |
上面将会展示hello,默认状态下会换行
1 | echo -n “Hello” |
可以使光标保持在同一行
执行shell脚本:
****使用sh命令创建新的子shell并将要执行的shell脚本名称传递到此shell
执行Shell脚本必须具有读权限,如果没有可以提供
1 | chmod u+x magic.sh |
上面操作可以给用户添加x权限并且执行magic,sh 这是在新shell中执行脚本
.magic.sh在当前shell中执行脚本
创建变量:
1 | name=”John Lennon” |
****如果名字带空格,就用引号
1 | name=Paul |
没有空格,引号可选
1 | ctr=1 |
ctr不是整型变量,而是字符串
echo “$变量名”可以查看变量的名字
引用变量:
****$用于引用变量的内容
1 | x=${today}th |
使得x的值是字符串today+th
在不涉及连接操作时,大括号可选
1 | x=${today} |
以上两个是相同的
将值读取到变量:
read+名可以用键盘给变量赋值
本地和全局shell变量:
****在一个shell中创建的变量不能再其它shell中直接调用
使用export指令使得变量可以让后续子shell调用
export+变量名
环境变量:
HOME:
****存储用户的主目录的位置
PATH:
可以用它来定位用户调用的命令
例如,以下命令指定在任何可执行文件或命令中依次搜索目录/user/bin和/bin:
1 | $PATH=/user/bin:/bin |
:/代表当前目录
PS1:
通过此变量的值来设置期望的提示符来代替目前的shell提示符
PS1=”HELLO>”通过运行这行代码,提示符变成了HELLO>
\w提示符字符串用于显示当前用户所在的目录
PS1=’\w >’可以反映当前的目录
PS2:
用于设置次提示符的值的环境变量,默认状态下是>
修改方法同上
LOGNAME:
****用来保存用户的登录名
SHLVL:
****用于显示当前工作的shell层
SHELL:
****用户存储用户的默认shell
env命令用于查看所有导出的环境变量及其各自的值
第六章 Shell指令的基本操作
使用替换命令:
执行以下语句:
1 | echo “The date is `date`” |
系统会将反向单引号``中的命令执行,然后执行整个命令
命令替换还可以用于在变量中存储命令输出
1 | ctr=`ls *.c| wc -l` |
以上命令使得ctr存储当前目录中以.c结尾的文件计数
可以使用以下命令在变量中存储命令输出:
expr:
****大部分shell不支持数字变量,expr可以用来评估算数表达式
1 | expr 4 + 5 |
以上代码可以得到9,但注意加号左右必须有空格
1 | a=4 |
可以得到9
expr支持的运算有+ - * / %,但是*运算必须使用*,否则会被理解为通配符,同时除法不支持小数,expr不支持小数
test:
****test评估一个表达式,并返回真或假,test关键字还可以用[]替换,即
test 表达式 = [表达式]
1 | test $user = “Aaron” |
等价于
1 | [ $user = “Aaron” ] |
注意中括号和等号必须有空格隔开
一个test命令还可以测试多个条件 -a -o分别表示and 和 or
在shell脚本中使用编程构造
if:
****if语句通常与test命令一起使用如以下代码段所示:
1 | echo “Input a number ” |
其中fi指示构造的结尾
同时语句支持elif关键字,代表else if
case…esac:
****相当于switch case
1 | echo -n "Enter a string" |
为任何一个变量执行的最后一个命令必须接分号
while:
****支持迭代循环
1 | >while true |
当读入n时停止循环
until:
****当until中的条件为真时结束循环
for:
for循环将一列值作为输入,并为循环中的每个值执行该循环,在for循环中执行do…done之间的命令
1 | >for name in Ruby Samul |
name将作为Ruby 与Samul输出两次并结束
exit:
****从shell脚本中退出,可以用在if…else中
再次谈到test命令:
****test命令也可以用来检查文件的状态
test也可以实现一些算术式的判定
算数测试:
****test可以实现一些算数式的判定
字符串测试:
break和continue语句:
****break用于终止循环
continue用于终止本次循环
创建函数:
****例子:
这是一个可以判断文件类型的函数
1 | function ftype |
为fname赋值,并运行ftype就可以得到结果
处理Shell脚本中的参数
参数用于将自变量从命令行传递到Shell脚本,参数可以是任何值
shell在处理命令行的词时,会依次将命令行的每个词放入特殊变量:
第一个词,也就是命令名,放入$0
剩下的词会依次放入$1 $2 $3…
除了$0以外,Linux Shell最多可以创建9个变量,变量$1-$9也称为命令行的位置参数,根据命令中指定的参数的数量,shell将赋值给这些变量中的一些或者全部
除了以上这些以外,还有一些特殊的变量:
$*:包含整串参数 也就是把参数全部列出来
$#:包含命令中制定数量的参数 也就是输入的参数的数量(不包括操作名)
以下操作展示了上述参数的使用:
创建一个shell脚本:
1 | vi pos-para |
使用这个脚本:
1 | sh pos-para one two three |
通过对应关系可以了解参数的用法
shift命令:
shell最多只能创建9个位置参数,即$1-$9,面对多于9个参数的情况,或者允许用户输入可变数量的参数,shift命令可以用于此类情况
例子:
shell脚本check带有3个参数a,b,c,位置参数的值为:
$0:check
$1:a
$2:b
$3:c
$#:3
$*:a b c
执行shift命令:将丢失的$1的值,即a,后续的值依次递补,参数总数-1,即目前的参数为:
$0:check
$1:b
$2:c
$3:
$#:2
$*:b c
1 | vi shiftfile |
上述操作利用了shift实现文件的删除与拷贝功能
sh shiftfile c finename finename
sh d filename filename …
.bash_profile
是系统中自带的一个特殊的shell脚本,用户登录时统一执行这个文件,此文件包含用户的标准设置,例如使用的终端类型和路径。该文件的存在是可选的,如果需要执行该文件,它必须存在于用户的home目录下
here文档
****command<<pattern
content
pattern
其中command是一个指令,pattern是开始/结束标志。中间可以写多行内容,直到结束符结束内容,执行中间的内容
例如想要构建一个菜单:
1 | >$ cat<<MM |
上述的方式比使用echo要快捷很多
调试shell脚本
可以使用Set命令调试Shell脚本,可以在Set命令中使用-v和-x选项
sh -v:
会在执行语句前在终端显示Shell脚本中编写的语句,这样可以验证执行的命令是您想要执行的命令
例如:
1 | sh -v empinfo |
可以看到每个语句执行前都被输出了一遍
sh -x:
与-v类似,都可以在语句执行前展示与举报
不同点在于-x会在每一个被执行语句前面补一个+
并且会把语句中的参数自动替换为输入的数值
例如:
1 | sh -x squarevalues |
其中的num被4替换掉了
sh -vx
将两个指令结合,可以更清晰地观察代码运行过程,方便调试
第七章 管理文件和进程
查找Linux系统上的文件,可以使用一些命令快速搜索或者定位用户所需的文件
用户可以使用以下命令在Linux中查找文件:
find
locate
另外,可以使用xargs命令从标准输入构建和执行命令行,它可以与find和locate的命令一起使用,输出文件的长列表
find命令
find命令用于定位特定目录及其所有子目录中的文件,它是用来定位文件最常用的命令,有多个选项用于高级搜索
find命令的语法:
1 | find [path] [expression] |
可以与find命令一起使用的选项有:
-name
-type
-mtime
-exec
-ok
-name和-print选项:
-name用于搜索指定名称的文件,-print用于输出文件的地址
例子:
1 | find /home/steve -name ”jan” -print |
在/home/steve地址中搜索名字为jan的文件,并将其完整路径名输出
可以在命令中使用通配符,不过必须添加引号
如果在find命令中不指定name,那么会将指定目录及其子目录下的所有文件路径名输出
-type选项
-type选项定位特定文件类型的文件,比如f与-type一起使用将用于搜索所有普通文件:
1 | find /home/steve -type f -print |
搜索目录文件:
1 | find /home/steve -type d-print |
下面列出了-type选项的参数
b:特殊块
c:特殊字符
d:目录
f:普通文件
l:符号链接
-mtime选项:
****-mtime选项用于显示在当前日期前的特定天数内修改过的所有文件名称,下面列出了可用于-mtime选项的参数
-mtime n:指定就在n天以前的那一天修改过的文件
-mtime +n:指定早于n天前修改过的文件
-mtime -n:指定当前日期之前的n天之内修改过的文件
-exec选项:
****-exec用于指定对文件执行的操作,这些文件通过find定位,例如可以通过以下命令从特定目录下的目录删除名为temp的所有文件
1 | find -name temp -type f -exec rm {} \; |
其中{}是必须的,find命令将{}替换为它定位的文件的路径名
\代表exec命令的结束
-ok选项:
****-exec命令选项始终对通过find命令定位的每个文件执行命令,-ok允许用户对找到的文件进行操作,但是会在每个文件执行命令前要求用户进行确认
-ok与-exec的格式相同
1 | find . name temp -type f -ok rm {} \; |
locate命令:
locate命令是定位文件的最快和最简单的方法
locate命令的语法是
1 | locate [option] <string> |
例如:
1 | locate echo |
提供了文件名中包含字符串echo的所有文件的路径名的列表
xargs命令:
当您想要对多个文件执行一个命令时,使用xargs命令。当您想要使用一种通配符样式,但这种样式太长而不能在一行输入时,此命令很有用。例如,如果命令echo *在一个有很多文件的目录中,会显示命令行太长
xargs语法:
1 | xargs [options] [commands [initial arguments]] |
例子:
1 | find -type l -print | xargs rm |
得到文件类型为链接的文件,通过print传递给xargs,并将其删除
例子:
1 | find -type f -name “*.txt” | xargs grep “searchtext” | wc –l |
找到以.txt结尾的文件,并将其内容传递到xargs,并查找其中的searchtext
xargs命令的常用选项:
-n
-P
-p以交互模式运行,当响应以y/Y开头才会运行命令
-s
-t在执行前,在标准错误文件中打印命令行
-r如果标准输入不包含任何行,它不应当执行命令,通常,即使没有输入也会运行一次命令
操作多个文件
在linux的多用户环境中,多个用户可以同时操作一组文件。
1.可以选择创建文件的多个副本,但这并不推荐,因为会造成数据的冗余问题
2.可以为文件设置组权限,这样可以让组中的任何用户访问文件。但可能会发生另一个问题:不是组中所有用户都被允许访问文件,此问题可以使用ln命令解决
3.还有一种情况,就是用户可能需要并排显示两个文件的内容。这种情况下可以使用paste命令
ln命令:
使用ln命令在目录中创建一个链接,允许一些用户访问文件
ln命令的语法:
1 | ln [options] <source file> <destination path> |
例子:
1 | ln myfile temp/mylink |
上述命令创建了文件Myfile的链接,链接的名称是mylink,位置在temp目录下
在ls -l命令中,第二列输出数据就是链接的数量
paste命令:
paste命令并排显示文件的内容,即水平合并(相对于将文件垂直合并的cat命令)
1 | paste 文件1 文件2 |
将文件 1 2的内容并排显示
在Linux中比较文件
Linux提供了一些命令,用于比较不同文件的内容
以下命令用于比较文件:
cmp命令
comm命令
uniq命令
另外linux还提供了type和exec命令来显示有关命令执行的信息
cmp命令:
cmp命令允许用户比较两个文件,并显示两个文件首个不同之处的行号和字符位数,它按字节比较两个文件
1 | cmp t1 t2 |
输出
1 | t1 t2 differ:byte 50,line2 |
输出指示两个文件在第二行,第50个字节处开始不同
如果两个文件是相同的,cmp不提供任何输出
comm命令:
不像cmp命令按字节比较文件,comm命令按行比较两个排序的文件
不带任何选项的comm命令提供三列输出
第一列包含只存在于第一个文件中的行,第二列包含只存在于第二个文件中的行,第三列包含两个文件都有的行
以下为comm所带的选项:
uniq命令:
用来比较存储文件中的相邻行,通过不同选项来显示文件中唯一的或者重复的内容。它是一个过滤器
例子:
1 | sort mov_titles | uniq |
输出对文件mov_titles的排序并没有重复行
以下为uniq指令的选项:
type命令:
type命令将一个命令作为一个参数,并指定如何解释它。对于命令名参数,type命令提供命令的绝对路径,如果两个参数是内置命令,则会相应地指定它
例子:
1 | type cat |
通过上面操作指定了cat命令,输出cat命令的位置
exec命令:
exec命令将一个命令作为参数,用命令代码代替当前shell并执行命令,因此它不创建新的进程来执行命令
1 | exec 操作名 |
第八章 Linux实用程序
了解文件压缩实用程序
Gzip实用程序:
Gzip命令用于压缩文件,解压文件对应的实用程序是gunzip,gzip-d 或zcat。
它能创建带.gz扩展名的文件
1 | Gzip [options] [filename] |
下面提供了gzip和gunzip提供的选项
GZIP环境变量:
GZIP环境变量可以用于为gzip和gunzip指定默认选项
比如
1 | GZIP=”-9vr” |
意思是在执行gzip和gunzip命令时,压缩/解压将在第九层以详细和递归模式进行,这是最佳压缩
重定向:
还可以通过gzip实用程序重定向输出以方便执行
以下示例演示了重定向的用法
1 | Gzip -c file1 >files.gz //将file1压缩为files |
了解格式化磁盘实用程序
Fdisk被认为是一个菜单驱动程序,用于创建和操作分区。分区是一个后跟分区号的设备名称。
要启动fdisk,需要作为root用户输入fdisk命令。可以使用fdisk使用以下任何一种设备格式化
/dev/hda
/dev/hdb
/dev/sda
/dev/sdb
基本fdisk选项是:
P:创建打印分区
N:创建新分区
D:删除一个分区
Q:不保存退出
W:写入新分区并退出
了解聊天实用程序
可以用于聊天的一些重要命令是mesg,who -T 和talk命令
另外,还有诸如write的实用程序,用于将文本写入另一个用户的终端,以及wall实用程序,用于将信息写入所有的用户终端
Mesg命令:
为您提供选项,允许或不允许其他用户写入您的终端。
不带任何参数的mesg命令显示您的终端当前的访问状态
例如:
1 | Mesg |
Who -T命令:
您可以使用带有-T或-w参数的who命令查找当前登录用户的消息状态
Talk命令:
Talk实用程序允许您通过网络与另一个用户聊天,它是一个交互式可视通信程序,将您的终端上显示的各行的内容复制到另一个用户的终端上
Talk实用程序的语法是:
1 | Talk person_name [terminal name] |
比如talk angela
Write
Write实用程序用于将文本写入另一个用户的终端,write实用程序的语法与talk相同
Wall实用程序
Wall命令用于向所有用户终端发送信息
Wall实用程序的语法是
1 | Wall mesg |
调度任务:
对于您的shell脚本,您可能想在特定时间让它自动运行
Cron守护进程
Cron守护进程以您调度的时间间隔执行任务,当系统启动时,它会自动启动。
Crontab实用程序用于将您的任务提交到cron守护进程,您想要自动执行的任务必须放在名为crontab的文件夹中
Crontab文件:
用于列出您想在linux系统上自动执行的任务,对于您想要自动执行的每个任务,它都包含一行信息
Crontab实用程序
指示cron以特定日期和时间执行命令,它将crontab文件提供给cron守护进程,crontab命令的语法是:
1 | Crontab [-u user] file |
At实用程序
用于调度任务的另一个实用程序是at,它可以调度任务只运行一次,而cron守护进程用于以一定时间间隔执行任务,如果必须重复执行任务,应当使用crontab实用程序。
以下列出了at实用程序的重要文件
了解其他实用程序
Bc实用程序
Bc实用程序可以用作计算器,它可以计算很大的小数值
Bc实用程序使用的语法是:
1 | Bc [option] [file …] |
以下实例展示了bc的用法‘
1 | Bc <<<5*6 |
如果您有一个文件calc,其中包含运算式,您可以使用以下bc命令计算该表达式
1 | Bc <calc |
Finger实用程序:
用于显示当前登录到Linux系统的所有用户的状态,不带任何参数的finger实用程序为当前登陆的每一个用户显示一行输出
Finger实用程序的语法是
1 | Finger [option] [user name] |
Aspell实用程序
用于对文章内容进行拼写检查,它最终取代了ispell实用程序
1 | Aspell [options] command |
Chfn实用程序
用于更改用户的finger信息,它从/etc/passwd文件检查用户的信息,并允许用户更改信息
Chfn实用程序的语法是:
1 | Chfn [options] [user name] |
Head和tail实用程序
Head用于从文件开头显示指定的行数,tail,命令从文件末尾显示指定的行数,如果未指定,10行是默认值,两个命令的语法是
1 | Head [options] [filename] |
Head和tail命令用于从终端显示指定的行数