Linux shell command学习笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux shell command学习笔记相关的知识,希望对你有一定的参考价值。
Key points: Shell种类,echo,$,基本语法,ls,man,su,sudo,grep,ps,clear,cp,rm,cat,more
参考:http://www.jb51.net/LINUXjishu/45329.html
Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell。在现在的大多数Linux发行版中,默认的Shell一般都是Bourne again shell(bash)。
<echo>
echo $SHELL
在Linux中,$符号代表一个shell变量。所有的shell都用这种方式使用变量。有一些shell变量在你的系统启动的时候就有了默认值。例如,$SHELL;$LOGNAME是你的登录名,而$PATH变量指明了你的shell命令的搜索范围。
echo命令的作用就是打印出你的输入。如果你的输入具有shell的特殊意义,例如shell变量,他就输出变量的值。
[[email protected] setup]$ echo 123
123
[[email protected] setup]$ echo $LOGNAME
d4csqa
[[email protected] setup]$ echo $SHELL
/bin/bash
Linux shell命令中一个重要的地方是,你可以将命令串起来。这是Unix/Linux从第一天开始就有的巧妙的特点。最简单的将命令连起来的办法就是使用“|”,我们称之为“pipe”。第一个命令的输出就是下一个命令的输入。
Linux命令有自己的语法规则:
基本的语法就像这样:
command -option file
ls
-la
这行命令的意义是输出当前目录的所有文件的文件名,l代表“long”,a代表“all”,有了l选项,你会发现,输出的内容比较丰富,不只包括文件名,还有文件的访问权限,所有者,所属组等。
ls -l a* (相当于 ls –l | grep a*,但后者只能grep当以a开头文件仅有一个的情形)
这个命令会列出在当前工作目录下所有的以小写a开头的文件,比如说abc.txt,alpha.jpg等等。
ls a?cd
这条命令会列出所有以小写a开头隔一个未知字符以小写cd结尾的所有文件。例如adcd,axcd,但是不会列出adfdcd,也不会列出axcd.txt。
ls –l session* *info*
这条命令会列出所有含有info字符串和以session字符串开头的文件,但仅仅是简单的加总,即对于两个条件同时满足的情况,不会识别出来只列举一次,而是列举两次。其过程是依次遍历ls列出的文件,对于每个文件先判别是否满足*info*,是则输出;然后判别是否满足session*,是则输出。等所有条件判别问,则跳到下一个文件,依此类推。
但ls –l | grep session | grep info却实现了条件的交集,即输出为同时满足含有session字符串的条件和含有info字符串的条件。
小结:
对单一filter,ls –l *str*等价于ls –l | grep str。
对多个filter,ls –l *str1* *str2*为简单叠加(比并集更简单),ls –l |grep str1 | grep str2为交集。
<man>
man:如果你想了解每一个命令代表什么含义以及他的用法,你就可以使用man(意义为manual)命令,例如:man ls。man输出的内容是为系统管理员和开发者编写的,如果你想了解更多命令的用法,你可以去找网络上的Linux命令文档,有一个非常方便的就是丹尼尔·巴雷特的Linux的袖珍指南。
<su><sudo>
su和sudo:su命令的作用是切换用户,这也被称为超级用户,因为在有些系统中su命令可以使你以系统的所有权限用户root登录。除非你是系统管理员,否则我绝不推荐你使用su切换到root,因为这可能给你带来很多麻烦。一个相对安全的多的办法是使用sudo命令,这个命令可以上你以root权限运行一个命令。
<grep>
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。例如:
grep foo /etc/passwd
返回在password文件中所有的含有foo的行
grep -i “foo” /etc/passwd
-i选项是忽略大小写,这就意味着若某一行含有FOO或FOo也会被搜索到。
grep还支持递归搜索:
grep -r “foo” /home/sjvn
这条命令将会搜索/home/sjvn目录及其子目录下所有的包含“foo”的行。
grep也通常与其他命令串连起来使用,例如:
ls -la | grep foo
<ps>
报告进程的状态。此命令将显示哪些程序正在运行。
<clear>
清屏。
<cp>
cp file1 file2
把file1中的内容复制到当前文件夹中file2。如果file2不存在,新建。如果file2存在,覆写。
<rm>
rm –i fileName
会有确认提示信息。
<cat>
可以显示你的Linux电脑中的文本信息。与vi或vim的区别是前者只读,后者可编辑。
cat /proc/cpuinfo
展示你的CPU的重要的统计。
cat /proc/version
展示你的当前运行的Linux发行版的详细信息。
cat /etc/printcap
展示你当前安装的打印机。
<more>
内容多时,分页显示,space键切换页面。
-num 指示单页行数。Space键一次滚动num行。
以上是关于Linux shell command学习笔记的主要内容,如果未能解决你的问题,请参考以下文章