Linux shell指令运行的原理:
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过 kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
ls指令
-a 列出目录下的所有文件,包括以.开头的隐含文件。
cd命令
1.名称:cd
2.使用对象:所有使用者
3.命令格式:cd [dirName](cd和目录之间使用空格隔开)
4.作用:切换当前目录至dirName。
cd ~:进入用户目录
cd -:返回最近访问目录(类比pushd 和 popd)
cd .. : 返回上级目录
cd !$: 把上个命令的参数作为cd命令的目标参数使用(不常用)
date显示:
date 指定格式显示时间:date +%Y_%m_%d,date +%Y:%m:%d
date命令本身提供了日期的加减运算非常方便。
例如:得到昨天的时间
date +%Y%m%d --date="-1 day"
时间戳
时间->时间戳:date +%s
时间戳->时间: date +%Y:%m:%d -d @1425384141
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
Cal指令
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
命令格式:
cal [参数][月份][年份]
命令功能:
用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则示月份和年份
命令参数:
-1 显示一个月的月历
-3 显示系统前一个月,当前月,下一个月的月历
-s 显示星期天为一个星期的第一天,默认的格式
-m 显示星期一为一个星期的第一天
touch指令:
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。
mkdir指令(重要):
linux mkdir命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
1.命令格式:
mkdir [选项] 目录...
2.命令功能:
通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。
rmdir指令 && rm 指令(重要)
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。rm命令可以同时删除文件或目录
1.名称:rmdir
2.适用对象:具有当前目录操作权限的所有使用者
3.命令格式:rmdir [-p -v] [dirName]
4.作用:删除空目录
5.参数详解:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
1.名称:rm
2.适用对象:所有使用者
3.命令格式:rm [-f-i-r-v] [dirName/dir]
4.作用:删除文件或目录
5.参数详解:
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
cp指令(重要):
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录而最后的目的地并非一个已存在的目录,则会出现错误信息
mv指令(重要):
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
basename指令:(重要)
返回一个字符串参数的基本文件名称。
语法
basename String [ Suffix(后缀) ]
描述
basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任何指定的Suffix参数,并将剩余的基本文件名称写至标准输出。basename 命令应用以下创建基本文件名称的规则:如果 String 参数是 //(双斜杠) 或如果 String 参数包含的都是斜杠字符,则将字符串更改为单个/(斜杠)。(basename
从指定字符串除去任何拖尾的 / 字符。如果在 String 参数中剩余任何 / 字符,则除去字符串的前缀直到(包含)最后一个/字符。
dirname指令:(重要)
dirname命令的作用是处理路径,以获取路径的父目录,而且dirname不会检查路径是否合法。
用法:dirname [path |options]
作用:输出已经去除了尾部的"/"字符部分的名称;如果名称中不包含"/",则显示"."(表示当前目录)。
more指令:(重要)
功能简述:more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b键就会往回(back)一页显示,而且还有搜寻字串的功能。more命令从前向后读取文件,因此在启动时就加载整个文件。[也是内容显示命令]
命令参数:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
less指令:(重要)
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向
前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,
更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
head指令:(重要)
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而tail想当然尔就是看档案的结尾。
1.命令格式:
head [参数]... [文件]...
2.命令功能:
head 用来显示档案的开头至标准输出中,默认head命令打
印其相应文件的开头10行。
3.命令参数:
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n<行数> 显示的行数
tail指令:(重要)
tail 命令从指定点开始将文件写到标准输出.使用tail命令
的-f选项可以方便的查阅正在改变的日志文件,tail -
f filename会把filename里最尾部的内容显示在屏幕上,并且不
但刷新,使你看到最新的文件内容.
1.命令格式;
tail[必要参数][选择参数][文件]
2.命令功能:
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
gzip指令:
命令: gzip
语法:gzip [选项] 压缩(解压缩)的文件名
gunzip
tar指令(重要):
tar [-cxtzjvfpPN] 文件与目录 ....
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看tarfile 里面的文件!
特别注意,在参数的下达中,c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
pwd指令:
Linux中用 pwd 命令来查看”当前工作目录“的完整路径。简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。
1.命令格式:
pwd [选项]
2.命令功能:
查看”当前工作目录“的完整路径
who指令:
who 命令
功能说明:显示目前登入系统的用户信息。
语法:who [-Himqsw][--help][--version][am
i][记录文件]
补充说明:执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的 终端机,登入时间以及从何处登入或正在使用哪个X显示器。
diff
命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff在命令行中打印每一个行的改动。最新版本的diff还支持二进制文件。diff程序的输出被称为补丁 (patch),因为Linux系统中还有一个patch程序,可以根据diff的输出将a.c的文件内容更新为b.c。diff是svn、cvs、git等版本控制工具不可或缺的一部分。
Linux下的命令十分丰富,只有在学习中不断使用才能掌握。