1. 日期时间
(1) date命令可以查看或设置当前系统时间,date [+] -s [+] 时间可以用于修改时间,
格式化显示时间为:date +%Y--%m--%--d
(2) 命令hwclock/clock用于显示硬件时钟时间。
(3) cal命令用于查看日历
(4) uptime命令用于查看系统运行时间
2. 输出、查看命令
(1) echo命令用于显示输入的内容
(2) cat命令用于显示文件内容
(3) head命令用于显示文件的头10行,参数:-n + 指定显示的行数
tail命令用于显示文件的末尾10行,参数:-n + 指定显示的行数,-f 指定显示文件更新
tail -f /var/log/messages-----tail命令会继续监测该文件,当新的内容添加到文件后,它们会立即出现在屏幕上。直到你输入Ctrl+c。
(4) more命令翻页显示文件内容,但只能向下翻
less命令翻页显示文件内容,可以上下翻页
3. 查看硬件信息
(1) lscpi命令用于查看PCI设备,参数:-v 可以显示详细信息
(2) lsusb命令用于查看USB设备,参数:-v 可以显示详细信息
(3) lsmod命令用于加载模块,即驱动
4. 关机、重启
(1) 关闭计算机:shutdown -h重新启动:shutdown -r
立即关机:shutdown -h now10分钟后启动:shutdown -h +10
10:00关机:shutdown -h 10:00立即重启:shutdown -r now
(2) 立即关机:poweroff立即重启:reboot
5. 归档和压缩
(1) zip命令用于压缩文件,如:zip temp.zip myfile
(2) unzip命令用于解压缩zip文件,如:unzip temp.zip
(3) gzip命令用于压缩文件,如gzip myfile
(4) tar命令用于归档文件,如:tar -cvf out.tar temp tar -cvf etcbackup.tar /etc
tar -xvf out.tar用于打开/释放一个归档
tar -cvzf backup.tar.gz /etc 用于将etc文件夹压缩并归档,参数-z将归档后的归档文件进行gzip压缩
6. 查找
(1) locate命令用于快速查找文件/文件夹,格式为:locate keyboard。系统默认一天更新一次建立的数据库,因此新建立的文件不能查找出来,因为locate命令时数据库并未更新记录该文件,可以使用updatedb手工建立更新数据库。
(2) find命令用于高级查找文件/文件夹,格式为:find 查找位置 查找参数
如:find -name *linux*find / -type dfind / -name *.conf
find -name "a*" -exec ls -l {} \; 该命令是将查找出来a开头的文件或文件夹的详细信息显示出来。
-user指代用户-ctime指代更新时间-size指代大小
7. 通过组合不同功能的命令使用,以达到完成某个复杂功能,多命令协作就是通过管道和重定向完成的,通过管道和重定向,我们可以控制CLI的数据流,及STDIN,STDOUT,STDREE。
重定向用于保存某命令的输出信息或错误信息,可以用来记录执行结果或保存错误信息到一个指定文件。
管道用于组合不同命令,以实现一个复杂的功能。
8. 重定向:
(1) 符号:> 表示将STDOUT重定向到文件(更新时会覆盖),
如:echo "linuxtest" > outfile,将linuxtest保存在文件outfile中;ls -l > outfile ,将会覆盖之前的linux
小技巧:如果我们需要删除一个文件内容(或创建一个新的空文件),可以采用命令'> file'
(2) 符号:>> 表示将STDOUT重定向到文件(更新时会追加),如:echo "linuxtest" >> outfile;
ls -l >> outfile,将会将当前目录的显示信息追加到linuxtest的下一行
注意:对于以上两种情况,两种标准错误STDERR不能写入文件,错误信息仍会显示在终端上
(3) 符号:2> 表示将STDERR重定向到文件,可用于日志中只保存错误信息,如:ls nothere 2> outfile
(4) 符号:2>&1 表示将STDERR与STDOUT结合起来,ls nothere 2>&1 alloutput
注意:"2>&1 file"和 "> file 2>&1"区别
1)cat food 2>&1 >file :错误输出到终端,标准输出被重定向到文件file。
2)cat food >file 2>&1 :标准输出被重定向到文件file,然后错误输出也重定向到和标准输出一样,所以也错误输出到文件file。如果我们不想要一个命令的输出结果,只想把它们扔掉,系统为我们提供了解决问题的方法,通过重定向输出结果到一个特殊的叫做"/dev/null"的文件。这个文件是系统设备,叫做位存储桶,它可以接受输入,并且对输入不做任何处理。为了隐瞒命令错误信息,我们这样做:
ls -l /bin/usr 2> /dev/null
(5) 符号:<表示重定向STDIN,如grep linuxtest < /etcpasswd,表示将passwd的内容作为标 注输入到linuxtest
9. 管道:
符号:|将一个命令的STDOUT作为另一个命令的STDIN,如find / -user linux | grep video;
find / -user linux 2> /dev/null | grep video
10.type命令用于显示命令的类型。
一般的命令分为四种类型:
(1) 是一个可执行程序,就像我们所看到的位于目录/usr/bin中的文件一样
(2) 是一个内建于shell自身的命令(builtins)。
(3) 是一个shell函数
(4) 是一个命令别名
11. which命令显示一个可执行程序的位置
该命令只对可执行程序有效,不包括内部命令和命令别名,当我们试着使用 shell 内部命令时,例如,cd 命令,我们或者得不到回应,或者是个错误信息
12. apropos命令用于显示适当的命令,基于某个关键字的匹配项搜索参考手册列表。
输出结果每行的第一个字段是手册页的名字,第二个字段展示章节。
13. whatis命令显示匹配特定关键字的手册页的名字和一行命令说明。
14. 用别名(alias)创建自己的命令
alias foo='cd /usr; ls ; cd -',执行foo命令即可执行所指代的命令。注意写别名之前,确认别名指代的命令是否已存在系统中。
删除别名时,使用unalias命令。
15. tee命令将从stdin读取数据,并同时输出到stdout和文件
tee 程序从标准输入读入数据,并且同时复制数据到标准输出(允许数据继续随着管道线流动)和一个或多个文件。当在某个中间处理阶段来捕捉一个管道线的内容时,这很有帮助。
在grep过滤管道线的内容之前,来捕捉整个目录列表到文件ls.txt
16.shell允许算数运算符通过展开来执行,算数表达式展开使用该格式:$((expression)),算数表达式只支持整数,表达式也可以嵌套。
17.花括号展开模式中可以创建多个文本字符串,开头的部分叫报头,结尾部分叫附言。
如:
花括号展开也可以嵌套:
好处:最普遍的应用是创建一系列的文件或目录列表
18.参数展开:
echo $USER,USER变量包含你的用户名
printenv | less,查看有效的变量列表
19. 命令替换
命令替换允许我们把一个命令的输出最为一个展开模式来使用:
管道线的输出结果成为 file 命令的参数列表
20. shell提供了一种叫做引用的机制,来有选择地禁止不需要的展开。
(1) 双引号:如果你把文本放在双引号中,shell使用的特殊字符,除了$,\(反斜杠),和 ' (倒引号)之外,则失去它们的特殊含义,被当作普通字符来看待。这意味着单词分割、路径名展开、波浪线展开和花括号展开都被禁止,然而参数展开、算数展开和命令替换仍然执行。
单词分割机导致这个文件名被看作两个独自的参数,而不是所期望的单个参数。以下是使用双引号得出的结果:
在双引号中,参数展开,算术表达式展开,和命令替换仍然有效:
事实上,单词分割机制把换行符看作界定符,如下例所示:
(2) 单引号:如果需要禁止所有的展开,我们使用单引号。
21. 转义字符‘\’
使用转义字符来消除文件名中一个字符的特殊含义,是很普遍的。注意在单引号中,反斜杠失去它的特殊含义,将被看作普通字符。
echo 命令带上 ‘-e’ 选项,能够解释转义序列。你可以把转义序列放在 $' ' 里面。以下例子,使用 sleep 命令,一个简单的程序,它会等待指定的秒数,然后退出。我们可以创建一个简单的倒数计数器:
Linux学习笔记(十)常用命令及管道和重定向
最新推荐文章于 2022-10-12 15:40:53 发布