常用的命令使用方法:
1.echo
echo - display a line of text
经过man手册帮助后获得更精准的命令操作方法
将字符串输出到显示设备上
常用选项:
-n:不换行 ,如图;
-e:使用“\”所引导的转义序列生效
\n: 换行
\t:水平制表符
\v:垂直制表符
与echo命令相似的是printf,不受-e的限制(下图中,只有-e命令生效后,下面的\\、\a等命令 才可以生效 ),可以直接\n执行换行命令,在echo下的其他命令与之相似,可以直接使用,不受
-e限制
PS: 要区别字符与变量名的区别,一般加{}来区分字符和变量名
2.cd
内部命令,使用help获取更详细的帮助
Change the shell working directory.
切换工作目录
cd: cd [-L|[-P [-e]]] [dir] 中括号内表示可以省略的部分;
cd /PATH/TO/SOMEDIR(最后参数为目录,否则会报错,因为我们切换的是目录而不是文件)
: 将工作目录切换至参数所代表的目录;
直接使用cd :将工作目录切换至当前登录用户的家目录,相当于cd ~;
cd- :将工作目录切换至此前最后一次的工作目录;
shell提供了两个变量:
PWD
OLDPWD
注意:在shell中获取变量值的方法;变量名严格区分大小写;
echo ${VAR_NAME}
{变量:赋值的内存空间}
cd~:将工作目录切换到指定用户的家目录当中
从而回到家目录。
3.pwd
打印当前工作目录的名字
4.ls
ls - list directory contents
注意:目录的内容是文件名
ls [OPTIONS]... [FILE]...
中括号选项可省略
在Linux文件系统中,所有以“.”最为文件名的起始字符的文件,都是隐藏文件;
ls命令查看目录显示按字符表排序,竖列显示,长选项和短选项是一样的;
常用选项:
-a,--all:显示所有文件,包括隐藏文件 ;
-A,--almost-all:显示除了“.”和“..”之外的所有文件,包括隐藏文件 ;
--color[=WHEN]:以不同的颜色来显示文件名
-d,-directory:显示目录本身,而不是目录中的文件名而不是
而不是像上图所示显示etc目录下的所有文件;
-h,--human-readable:在显示文件的大小的时候,显示更为易读的形式
;
通常与-l选项一同使用,例如 会在文件后加一些符号;
-l:使用长列表格式显示文件的详细属性
格式解释为:
-rw-------. 1 root root 1876 9月 17 17:48 anaconda-ks.cfg
-:代表文件类型;
rw--------:文件的权限位设置;
.:表示该文件是否具有特殊属性或扩展属性;
1:表示文件被硬链接的次数;
root(第一个):文件的属主(所有者);
root(第二个):文件的属组;
1876:文件的大小,在没有使用-h之前,单位是字节;
9月 17 17:48:文件的时间戳之一,表示最后一次修改的时间;
anaconda-ks.cfg:文件名
对于设备文件:
~]# ls -l /dev/sr0
类似格式:
brw-rw----. 1 root cdrom 11,0 9月 24 10:50 /dev/sr0
11,0:major,minor
major:主设备号,用于标识设备类型,进而确定需要加载何种驱动程序;
minor:次设备号,用于标识同一种设备类型中的不同的设备;
设备号默认使用8位二进制表示,所以默认的设备号的范围是0~255;
-r,--reverse:倒序输出结果
-R,--recursive:递归显示,如果目标目录中有子目录,则递归显示子目录的内容,依次递归下去
注意在服务器中严禁使用如下命令,,会遍历根目录下的所有子目录
,对于服务器的CPU和内存是严重的消耗,
;
-Z,--context:显示文件的SELinux的安全上下文标签;
5.mkdir
mkdir - make directories,创建新目录;
mkdir [OPTIONS]... DIRECTORY...
-p,--parents:在创建父目录的时候,如果其父目录不存在,则优先创建;
-v,--verbose:为每个被创建的目录显示一条信息
6.rm
(rmdir命令只能删除空目录,用处不大,现在一般没人用)
rm - remove files or directories
移除文件或者目录
rm [options"]file...
-f,--force:暴力,强制删除,默认无法删除目录;
-r,-R,--recursive:递归删除目录中及目录中的内容
;
注意 如果使用下图的命令是十分危险的
将会删除根目录下的所有文件,系统将不可使用,在虚拟机中使用此命令应提前做好快照;
而在真正的服务器上不要做出此次命令,后果无法想象,极其危险。
7.touch
改变文件的时间戳(timestamps),还具有创建文件的功能
常用选项:
-c,--no--create:不创建任何文件;
在默认情况下,如果改变了一个不存在的文件的时间戳,那会创建这个文件,加上-c选项后则不 会创建新的文件,如下图:
-a:仅修改文件的访问时间戳;
-m:仅修改文件的修改时间戳;
-t STAMP(时间戳):使用特定的时间戳来替换文件的时间戳;
stamp格式为:[[CC]YY]MMDDhhmm[.ss] ,尽量使用历史的时间来替换否则可能出错
额外的,如果没有指定-c选项,touch命令可以创建出被指定为参数且不存 在的文件;---创建文件的功能
8.stat
stat - display file or file system status,显示文件挥着文件系统的状态
常用选项:
-c,--format=FORMAT:以指定的格式显示文件的指定状态属性
9.nano
文本模式下的全屏编辑工具
nano - Nano's ANOther editor, an enhanced free Pico clone,复制的文本编辑器,类似于 windows系统中的记事本
命令格式:
nano [OPTIONS] [[+LINE,COLUMN] FILE]...
nano +2,3 a.txt {命令执行后}
命令执行后,光标停留在二行三列的位置,即定位光标位置;
^:脱字符,表示键盘上的Ctrl键;
^+o:保存文件;
^+x:退出文本编辑工具;
10.cat
cat - concatenate files and print on the standard output,连接文件并在标准输出显示(输出 到显示器上的都叫标准输出),在显示界面查看
格式: cat [OPTION]... [FILE]...
还可以连接两个文件:
常用命令:
-b, --number-nonblank:对非空白行进行编号输出;
在a.txt中加入空白行如下:
【空白行:不包括任何字符】
执行对非空白行进行编号输出命令后如上图;
-n, --number:number all output lines,对于所有行编号输出;
-s, --squeeze-blank:suppress repeated empty output lines,将多行空白行合并为一行空白 行,折叠或者合并连续的空白行;
-E, --show-ends:display $ at end of each line,在行尾以$结尾显示(包括空白行);
tac:tac - concatenate and print files in reverse
命令格式:
tac [OPTION]... [FILE]...
倒序显示,与cat命令相反
注意:cat或者tac命令,如果没有给出参数,则所有的内容需要通过标准输入(从键盘输入)
完成,而后使用Ctrl+C或者Ctrl+D退出即可。
如果只输入命令cat,则如下图,输出你写入的内容:
Ctrl+c退出命令模式;
11.head
head - output the first part of files,显示出文件的最起始的那一部分
命令格式:
head [OPTION]... [FILE]...
显示文件的前十行
常用选项:
-c, --bytes=[-]K:print the first K bytes of each file; with the leading '-', print all but the last K bytes of each file
以字节为单位显示相应长度的内容;
-n, --lines=[-]K:print the first K lines instead of the first 10; with the leading '-', print all but the last K lines of each file
以行为单位显示相应长度的内容;
可以使用 -# 方式替换 -n # ;
{ K may have a multiplier suffix: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.
K以字节为单位显示相应长度的内容时代表字节,1b代表512字节,1kb代表1000*512字节;
K以行为单位显示相应长度的内容时,1b代表512行;}
注意:如果不使用任何的选项,则默认显示指定文件内容的前10行,如果不足10行,则显示全部内 容(屏幕上显示的一行不回车输入(挤)到屏幕显示的下一行代表这里的1行)
12.tail
tail - output the last part of files,输出文件的最终部分
命令格式:
tail [OPTION]... [FILE]...
常用选项(与head一致):
-c, --bytes=[-]K:print the first K bytes of each file; with the leading '-', print all but the last K bytes of each file
以字节为单位显示相应长度的内容;
-n, --lines=[-]K:print the first K lines instead of the first 10; with the leading '-', print all but the last K lines of each file
以行为单位显示相应长度的内容;
可以使用 -# 方式替换 -n # ;
{ K may have a multiplier suffix: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.
K以字节为单位显示相应长度的内容时代表字节,1b代表512字节,1kb代表1000*512字节;
K以行为单位显示相应长度的内容时,1b代表512行;}
-f, --follow[={name|descriptor}]:用来监控文件末尾的变化;
注意:如果不使用任何的选项,则默认显示指定文件内容的前10行,如果不足10行,则显示全部内 容(屏幕上显示的一行不回车输入(挤)到屏幕显示的下一行代表这里的1行)。
13.more
more - file perusal filter for crt viewing,分页显示文档内容,还可以做过滤选项
格式:
more [options] file [...]
--More--(1%)表示已经显示出多少内容
交互式编辑方法:
可以使用“/”或者“?”根据后续给出的字符串组合进行查找过滤;
可以使用“n”来查找下一个匹配项;
使用“q”退出more模式;
使用enter键,可以向下翻一行;
使用space键,可以向下走一页;
14.less
less - opposite of more,more的进阶版
格式:
less [options] file [...]
交互式编辑方法:
上下空格翻行,B或者F翻页,比more更加方便;
可以使用“/”或者“?”根据后续给出的字符串组合进行查找过滤;
可以使用“n”或者“N”来查找下一个匹配项;
使用“q”退出more模式;
使用enter键,可以向下翻一行;
使用space键,可以向下走一页;
日期和时间相关命令:
15.date
操作系统时间,简称系统时间;使用软件模拟的时钟来记录的时间;
date - print or set the system date and time,显示或者设置系统日期和时间
2017年 10月 14日 星期六 11:35:29 CST
其中CST 代表标准时间
命令格式:
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
常用选项:
-s, --set=STRING:设置系统时间为指定的时间;
两种格式:
1)MMDDhhmm[[CC]YY][.ss]
2)"CCYY-MM-DD HH:MM:SS"或者"CCYY/MM/DD HH:MM:SS"
FORMAT:
%F:表示完整的年月日格式,即:YY-MM-DD
%T:表示完整的时分秒格式,即:HH:MM:SS
%Y:表示完整年份
%m:月份
%d:日期
%H:小时
%M:分钟
%S:秒钟
%s:时间戳,1970年1月1日作为Unix元年;从1970-01-01 00:00:00到当前系统时间所经历的 秒数; 此时间戳是由32位二进制表示的,所以其表示的最大范围0~4292967295
附上计算方式:
查看多个属性的时候用双引号括起来:
16.clock/hwclock
hwclock - query or set the hardware clock (RTC)
格式:
hwclock [function] [option...]
命令选项:
-s, --hctosys:根据硬件时钟设置系统时间;
-w, --systohc:根据系统时间设置系统时间;(不推荐)
17.cal
日历
直接cal输出显示当月日历: cal -y 2017 :显示年份日历
与关机,重启,注销有关的命令(详见本人博客--Linux系统的命令提示符及命令格式说明):
关机:halt,poweroff,shutdown -h TIME,init 0;
重启:reboot,shutdown -r TIME,init 6;
注销:exit,logout,
18.cp
cp - copy files and directories,复制文件和目录;
格式:
cp [OPTION]... [-T] SOURCE DEST :单源复制
cp [OPTION]... SOURCE... DIRECTORY :多源复制
注意事项:
1)cp命令至少要接两个数;
2)最后一个参数,通常是此次复制的目标;
3)如果在复制时给出的目标是目录,则直接将文件复制到指定的目录中,保留原文件名;如果在复制非目录文件时,给出的目标为非目录文件时, 则此次操作复制并改名,如下图:
;
常用选项:
-R, -r, --recursive:递归地复制目录文件:
;
-d same as --no-dereference --preserve=links:复制的源文件是符号链接文件时,-d选项可以保留该符号的链接文件作为此次的源文件被复制,而不会复制该符号链接文件所指向的那个文件:
其中浅蓝色代表符号链接文件
不使用-d选项,则复制的是目标的源文件
;
-p same as --preserve=mode,ownership,timestamps:复制的源文件中的权限位、所有权及时间戳属性会保留下来;
-a, --archive same as -dR --preserve=all :相当于-dpr三个选项的组合,复制的源文件中的权限位、所有权及时间戳属性都会保留下来;
-f, --force:如果目标文件存在,则强制复制替换存在的文件并且不提示,想要使该选项生效,执行cp命令时,需要在前面加上“\”,即:# \cp Source_file Destination_file
19.mv
mv - move (rename) files,移动文件,重命名文件
格式:
mv [OPTION]... [-T] SOURCE DEST:单源移动
mv [OPTION]... SOURCE... DIRECTORY:多源移动
移动文件或者目录后,原文件消失;
这是重命名操作,内容不变,但是文件的名字被覆盖;
常用选项:
-f, --force:移动文件并强制复制覆盖目标位置同名文件且不提示;
-n, --no-clobber:移动文件时,如果源文件与目标文件重名,则不移动;