1、创建目录:
//创建目录filetest
mkdir filetest
2、创建子目录:
//创建子目录filetestchild
mkdir -p filetest/filetestchild
3、切换工作目录:
//切换到filetest 目录
cd filetest
4、切换到用户主目录:
cd
5、列出某文件夹下面所有文件包括子目录得的文件:
ls -la -r
6、创建空文件:
//创建空文件voidfile 可以先通过cd切换目录 再创建文件
touch voidfile
7、将字符串写入 文件:
//将'aaa'写入文件voidfile
echo 'aaa' > voidfile
8、查看文件内容:
//读取文件voidfile中内容
cat voidfile
9、整个文件夹的文件复制到另一个文件夹:
// A/B/目录下所有的文件复制到A1/B1/目录下
cp -ri A/B/* A1/B1/
10、文件重命名:
//将文件 aaa 更名为 bbb
mv aaa bbb
11、删除文件:
rm 文件名
12、在某目录下查找名包含“fi”的文件:
find filetest/filetestchild -name '*fi*'
//语法
find [PATH] [option] [action]
参数:
- 与时间有关的参数:
-atime n :n 为数字,意义为在 n 天之前的『一天之内』被 access 过的档案;
-ctime n :n 为数字,意义为在 n 天之前的『一天之内』被 change 过状态的档案;
-mtime n :n 为数字,意义为在 n 天之前的『一天之内』被 modification 过的档案;
-newer file :file 为一个存在的档案,意思是说,只要档案比 file 还要新,就会被列出来~ - 与使用者或群组名称有关的参数:
-uid n :n 为数字,这个数字是使用者的账号 ID,亦即 UID ,这个 UID 是记录在/etc/passwd 里面与账号名称对应的数字。
-gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在/etc/group
-user name :name 为使用者账号名称
-group name:name 为群组名称
-nouser :寻找档案的拥有者不存在 /etc/passwd 的人!
-nogroup :寻找档案的拥有群组不存在于 /etc/group 的档案!
当您自行安装软件时,很可能该软件的属性当中并没有档案拥有者,
这是可能的!在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。 - 与档案权限及名称有关的参数:
-name filename:搜寻文件名称为 filename 的档案;
-size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的档案。这个 SIZE 的规格有:
c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB还要大的档案,就是『 -size +50k 』
-type TYPE :搜寻档案的类型为 TYPE 的,类型主要有:一般正规档案 (f),装置档案 (b, c), 目录 (d), 连结档 (l), socket (s),及 FIFO (p) 等属性。
-perm mode :搜寻档案属性『刚好等于』 mode 的档案,这个 mode 为类似 chmod的属性值,举例来说, -rwsr-xr-x 的属性为 4755 !
-perm -mode :搜寻档案属性『必须要全部囊括 mode 的属性』的档案,举例来说,我们要搜寻 -rwxr–r– ,亦即 0744 的档案,使用 -perm -0744,当一个档案的属性为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr–r– 的属性了。
-perm +mode :搜寻档案属性『包含任一 mode 的属性』的档案,举例来说,我们搜寻-rwxr-xr-x ,亦即 -perm +755 时,但一个档案属性为 -rw——-也会被列出来,因为他有 -rw…. 的属性存在! - 额外可进行的动作:
-exec command :command 为其它指令,-exec 后面可再接额外的指令来处理搜寻到的结果。
-print :将结果打印到屏幕上,这个动作是预设动作!
13、在某目录下查找名包含“fi”的文件并显示这些文件的信息:
find filetest/filetestchild -name '*fi*' -ls
14、统计指定文件中的行数、单词数、字符数:
//统计file1文件中的行数、单词数、字符数
wc filetest/filetestchild/file1
15、显示当前工作目录:
pwd
16、清屏:
clear
17、退出登录:
logout
18、切换用户的命令
(su - 会重新读取用户环境相关配置文件):
//切换到root用户
su -
//切换到用户jiankunking
su - jiankunking
19、立刻关机:
poweroff
//或者
shutdown -h now
20、添加组与用户
(只有root用户可以添加用户):
//添加组
//600表示组ID,可以自己修改,不冲突即可
groupadd -g 600 groupname
//添加用户
adduser 用户名
//新建用户并指定组
useradd -g groupname username
//改变文件权限number 是 1 2 4几个数字的和 可以参考第30条
chmod number filename
//例如:给文件授予任何人全部权限
chmod 777 filename
21、添加用户密码:
passwd 用户名
22、删除用户:
userdel 用户名
23、查看所有用户:
cat /etc/passwd
24、init命令:
//关机
init 0
//重启
init 6
25、删除空目录:
rmdir 目录名
26、建立符号链接(类似于windows中的快捷方式):
//注意 是L不是i
ln 参数 源文件或目录 目标文件或目录
27、linux drwxr-xr-x :
第1位表示文件类型。d是目录文件,l是链接文件,-是普通文件,p是管道
第2-4位表示这个文件所有者拥有的权限,r是读(修改文件权限的时候用数字4表示),w是写(修改文件权限的时候用数字2表示),x是执行(修改文件权限的时候用数字1表示)。
第5-7位表示和这个文件所有者所在同一个组的用户所具有的权限。
第8-10位表示其他用户所具有的权限。
28、查看文件所有者:
ls -ahl 文件名或者文件夹名称
29、shell的命令补全功能:
是指用户输入命令时,并不需要输入完整的命令,而系统自动会找出最符合的名称。这种功能可以节省经常输入命令的时间。
直接输入“mk”—-再按两下“tab”键—–出现两头两个字母为“mk”的所有命令。
cat f再按两下“tab”键会出现开头字母为“f”的所有文件或目录。
30、查阅历史记录 命令:
在linux下,我们有时可能希望知道或是使用最近执行的命令。history可能会帮上大忙。
1)history 5 此项说明会显示最近使用的5个命令 。history 会显示最近使用的所有命令都显示出来。
2)!5 此项说明执行历史编号为5的命令
3)!ls 此项说明执行最后一次以“ls”开头的命令
31、显示系统执行的进程
ps命令是Process Status的缩写。ps命令能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态。可以不加任何参数。
//显示当前终端的所有进程信息
ps -a
//以用户的格式显示进程信息
ps -u
//显示后台进程的运行参数
ps -x
//直接ps -aux就行这样看的最全
ps -aux
字段 | 说明 |
---|---|
PID | 进程识别号 |
TTY | 终端机号 |
TIME | 此进程消耗CPU时间 |
CMD | 正在执行的命令或者进程名 |
32、终止进程kill/killall
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程,使用kill命令来完成此项任务。
终止某个进程:
kill 进程号
//强制杀死
kill -9 进程号
killall:杀死同名的所有进程 (及该进程所开的子进程统统杀掉)
33、动态监控进程
top与ps命令相似.它们都用来显示正在执行的进程,top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程
top
//指定系统状态更新时间
//指定系统更新进程地时间是10秒
top -d 10
34、设置、查看系统时间
显示系统的时间:
date
查看月历:
//查看2012年3月的月历
cal 3 2012
查看年历:
//查看2017的年历
cal 2017
35、显示网络统计信息
netstat -[atunlp]
此命令用来显示整个系统目前的网络情况,例如目前的链接,数据包传递数据,或是路由表内容,此命令直接输入即可使用。
参数:
-a :将目前系统上所有的联机、监听、Socket 数据都列出来
-t :列出 tcp 网络封包的数据
-u :列出 udp 网络封包的数据
-n :不已程序的服务名称,以埠号 (port number) 来显示;
-l :列出目前正在网络监听 (listen) 的服务;
-p :列出该网络服务的程序 PID
36、 检测主机连接命令
ping 对方的ip地址
是一种网络检测检测工具,它主要用于简称远程主机是否正常,或是两部主机间的介质是否断,网线是否脱落或网卡故障。
37、显示数据包经过历程命令
traceroute [-nwig] IP
此命令可以直接输入使用,用来检测数据包在网络上传输的过程,从本机到远程的主机完整路径,帮助管理员解决问题。
参数:
-n :可以不必进行主机的名称解析,单纯用 IP ,速度较快!
-w :若对方主机在几秒钟内没有回声就宣告不治…预设是 5 秒
-i :用在比较复杂的环境,如果你的网络接口很多很复杂时,才会用到这个参数;
举例来说,你有两条 ADSL 可以连接到外部,那你的主机会有两个 ppp,
你可以使用 -i 来选择是 ppp0 还是 ppp1 啦!
-g :与 -i 的参数相仿,只是 -g 后面接的是 gateway 的 IP 就是了。
38、route
route
所谓路由是指将数据由来源网络送往目的地网络的操作,在大型网络中,路由是非常复杂的,因为数据包在抵达目的地时,可能经过的节点很多,路由表是存储在路由器或一些其他链接设置上的窗体,其中记录着了到指定目的地的网络路径,以及这些路径的相关数值
此命令可以直接输入使用,来查看本机路由情况
39、重启
reboot
40、 管道符’|’(回车键上方的那个竖线)
利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
41、搜索文本内容
grep '搜寻字符串' filename
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。
42、linux帮助命令
//比如想知道grep命令的信息
man grep
43、输出重定向
grep '搜寻字符串' filename > 要写入的文件名
> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用>
,将日志文件清空(文件大小变成0字节);
> > 这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。
44、& 放在启动参数后面表示设置此进程为后台进程
命令格式:
command &
默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个’&’实现这个目的。
45、挂载与卸载
Liunx采用树形的文件管理系统,也就是在Linux系统中,可以说已经没有分区的概念了。分区在Linux和其他设备一样都只是一个文件。要使用一个分区必须把它加载到文件系统中。
Linux中树形的文件结构,最顶层是/ 目录。在安装系统时,你必须选择把一个主分区挂载在/ 目录下,因为系统需要安装在/挂载的主分区下。否则系统会提示你。这里又一次提到了挂载。所以挂载就是把目录和分区连接起来,和上面说的WINDOWS下的映射关系是一样的。不同的是WINDOWS是把分区映射到一个盘符,而LINUX下是映射到一个目录。 这是理解他们不同最重要的地方,而导致不同的是因为文件系统结构不同。
上面说了Linux的文件系统是树形的,安装的系统必须是在/ 目录下,因为/目录下挂载了一个主分区。/目录是树形的根,其他所有目录都是他的子节点。 我们安装系统的时候已经把分区1挂载到 / 目录下了. 而这个时候没有挂载其他任何分区,所以/ 目录下的所有其他目录都在这个分区下,也就是说,我在任何目录下读写操作实际都是操作的这个1号分区。如果我们想使用其他分区,就必须把这个分区挂载到一个目录下,这个目录可以是已经存在的目录,比如/home,也可以是我们自己建立的目录,比如/oracle。当然有些目录比如/lib, /dev, /etc, /usr这些都不能挂载其他分区,因为他们都存放着系统需要的文件,一旦被挂载其他分区,那没OS就无法找到所需的文件,系统就会崩溃。比如我们把分区2挂载到/usr/X11目录下时,系统就无法通过X11目录找到分区1上的文件,这个时候系统图形界面就无法使用了. 虽然文件还在硬盘上。前面说过,目录 — 分区 是通过挂载吧他们联系起来。你更换了分区,也就破坏了联系,就无法在找到之前的文件了。我们在看分区5和分区6,我们把它挂载到/home/ftp 和 /oracle目录下,这个时候我们在操作这2个目录是,就是操作对用的分区了.
以上挂载部分的理解摘自:Linux 挂载概念 理解
//挂载
mount -参数 设备名 挂载点
//卸载
umount 设备名
46、查看磁盘空间使用情况
df -参数
例如:df -h
47、查看某个目录在哪个分区
df 目录全路径
48、查看分区具体情况
fdisk -l
49、显示所有的环境变量
//列出来所有的环境变量
env
- HOME : 代表使用者的家目录。还记得我们可以使用 cd ~ 去到使用者的家目录吗?或者利用 cd就可以直接回到使用者家目录了。那就是取用这个功能啦~ 有很多程序都可能会取用到这个变量的值喔!
- SHELL : 告知我们,目前这个环境使用的 SHELL 是哪支程序? 如果是 bash 的话,预设是/bin/bash 的啦!
- HISTSIZE : 这个与『历史命令』有关,亦即是, 我们曾经下达过的指令可以被系统记录下来,而记录的『笔数』则是由这个值来设定的。
- ENV : 这个使用者所使用的个人化环境设定档的读取档案。
- MAIL : 当我们使用 mail 这个指令在收信时,系统会去读取的邮件信箱档案 (mailbox)。
- PATH : 就是执行文件搜寻的路径啦~目录与目录中间以冒号(:)分隔, 由于档案的搜寻是依序由 PATH 的变量内的目录来查询,所以,目录的顺序也是重要的喔。
- LANG : 这个重要!就是语系档案啰~很多数据都会用到他, 举例来说,当我们在启动某些 perl的程序语言档案时,他会主动的去分析语系数据文件, 如果发现有他无法解析的编码语系,可能会产生错误喔!一般来说,我们中文编码通常是 zh_TW.Big5 或者是 zh_TW.UTF-8,这两个编码偏偏不容易被解译出来,所以,有的时候,可能需要修订一下语系数据。
- RANDOM : 这个玩意儿就是『随机随机数』的变量!目前大多数的 distributions 都会有随机数产生器,那就是 /dev/random 这个档案。
50、shell更改
//把我的shell改成chsh
chsh -s /bin/chsh
要让修改的shell生效的话,需要用户注销一下。
CentOS中的shell种类:
51、命令别名(alias)设定
//给命令ls -al起个别名:lm
alias lm='ls -al'
52、万用字符:*
除了完整的字符串之外, bash 还支持许多的万用字符来帮助使用者查询与指令下达。 举例来说,想要知
道 /usr/X11R6/bin 底下有多少以 xt 为开头的档案吗?使用:
ls -l /usr/X11R6/bin/xt*
就能够知道啰
53、Bash shell 的内建命令: type
//[-tpa] 表示参数
type [-tpa] name
不加任何参数时,则 type 会显示出那个 name 是外部指令还是 bash 内建的指令!
- -t :当加入 -t 参数时,type 会将 name 以底下这些字眼显示出他的意义:
file :表示为外部指令;
alias :表示该指令为命令别名所设定的名称;
builtin :表示该指令为 bash 内建的指令功能; - -p :如果后面接的 name 为指令时,会显示完整文件名(外部指令)或显示为内建指令;
- -a :会将由 PATH 变量定义的路径中,将所有含有 name 的指令都列出来,包含 alias
54、shell 声明、读取变量
//声明变量
myVar='jiankunking'
//读取变量
echo $myVar
55、shell变量设定规则
- 变量与变量内容以等号『=』来连结;
- 等号两边不能直接接空格符;
- 变量名称只能是英文字母与数字,但是数字不能是开头字符;
- 若有空格符可以使用双引号『 ” 』或单引号『 ’ 』来将变量内容结合起来,但须要特别留意, 双
引号内的特殊字符可以保有变量特性,但是单引号内的特殊字符则仅为一般字符; - 必要时需要以跳脱字符『 \ 』来将特殊符号 ( 如 Enter, $, , 空格符, ’ 等 ) 变成一般符号;
- 在一串指令中,还需要藉由其它的指令提供的信息,可以使用 quote 『
command
』;(特别
特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号!) - 若该变量为扩增变量内容时,则需以双引号及
变量名称如:『" PATH”:/home』继续累加内容; - 若该变量需要在其它子程序执行,则需要以 export 来使变量变成环境变量, 如『export PATH』;
- 通常大写字符为系统预设变量,自行设定变量可以使用小写字符,方便判断 ( 纯粹依照使用者兴
趣与嗜好 ) ; - 取消变量的方法为:『unset 变量名称』。
56、在变量的设定当中,单引号与双引号的用途有何不同?
单引号与双引号的最大不同在于双引号仍然可以保有变量的内容,但单引号内仅能是一般字符 ,而不会有特殊符号。
[root@linux ~]# name=VBird
[root@linux ~]# echo $name
VBird
//注意这里
[root@linux ~]# myname="$name its me"
[root@linux ~]# echo $myname
VBird its me
//注意这里
[root@linux ~]# myname='$name its me'
[root@linux ~]# echo $myname
$name its me
使用了单引号的时候,那么 $name 将失去原有的变量内容, 仅为
一般字符的显示型态而已!
57、显示目前 shell 环境下的所有变量
set
set 这个指令除了会将环境变量列出来之外,其它我们的自订变量,与所有的变量,都会被列出来。
一般来说,不论是否为环境变量,只要跟我们目前这个 shell 的操作接口有关的变量, 通常都会被设定为大写字符,也就是说,『基本上,在 Linux 预设的情况中,使用{大写的字母}来设定的变量一般为系统内定需要的变量』。
使用 set 除了会将系统的默认值秀出来之外,连带的所有的你自己设定的变量也会被秀出来! 同时需要注意的是,若当时有相当多人同时在在线的话,那么 你的变量只能给自己使用 ( 除非改的是系统的预设参数档,如 /etc/profile ),而不会干扰到别人的!就如同前面所说的, 由于你登入 Linux 之后会取得
一个 PID ,而你的设定将只对这个 PID 与子程序有关!此外, 这次登入所进行的变量设定,如果没有更动到设定档, 那么这次设定的变量在下次登入时将被取消掉 ( 因为程序 PID 不见啰! ) !所以啰, 如果你想要你的变量每次都能在你登入的时候自动就设定好了,那么就必须将你的设定写入登入时加载的设
定档!
58、?:(关于上个执行指令的回传码)
echo $?
一般来说,如果成功的执行该指令,则会回传一个 0 值,如果执行过程发生错误,就会回传『错误代码』才对!一般就是以非为 0 的数值来取代。
59、export命令
export命令用于设置或显示环境变量。
export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。
//-f 代表[变量名称]中为函数名称。
//-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
//-p 列出所有的shell赋予程序的环境变量。
export [-fnp][变量名称]=[变量设置值]
60、read命令
read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量。
//参数:
//-p :后面可以接提示字符!
//-t :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦!
//read 之后不加任何参数,直接加上变量名称,那么底下就会主动出现一个空白行,等待您输入。
read [-pt] variable
61、declare / typeset
declare 或 typeset 是一样的功能,就是在宣告变量的属性。如果使用 declare 后面并没有接任何参数,那么 bash 就会主动的将所有的变量名称与内容通通叫出来,就好像使用 set 一样。
//参数:
//-a :将后面的 variable 定义成为数组 (array)
//-i :将后面接的 variable 定义成为整数数字 (integer)
//-x :用法与 export 一样,就是将后面的 variable 变成环境变量;
//-r :将一个 variable 的变量设定成为 readonly ,该变量不可被更改内容,也不能 unset
declare [-aixr] variable
62、数组属性 array
数组的设定方式是:
var[index]=content
一般来说,建议直接以 ${数组} 的方式来读取
63、与档案系统及程序的限制关系: ulimit(未测试)
ulimit [-SHacdflmnpstuv] [配额]
参数:
-H :hard limit ,严格的设定,必定不能超过设定的值;
-S :soft limit ,警告的设定,可以超过这个设定值,但是会有警告讯息,
并且,还是无法超过 hard limit 的喔!也就是说,假设我的 soft limit
为 80 , hard limit 为 100 ,那么我的某个资源可以用到 90 ,
可以超过 80 ,还是无法超过 100 ,而且在 80~90 之间,会有警告讯息的意思。
-a :列出所有的限制额度;
-c :可建立的最大核心档案容量 (core files)
-d :程序数据可使用的最大容量
-f :此 shell 可以建立的最大档案容量 (一般可能设定为 2GB)单位为 Kbytes
-l :可用于锁定 (lock) 的内存量
-p :可用以管线处理 (pipe) 的数量
-t :可使用的最大 CPU 时间 (单位为秒)
-u :单一使用者可以使用的最大程序(process)数量。
64、额外的变量设定功能
//方式一
echo $HOME
//方式二
echo ${HOME}
在那个 ${variable} 的使用方法中,其实,我们还可以将变量进行一些修订的工作。 只要加上一些字符标志,后面再接着使用比对字符串,就能够修改变量的内容了。
eg:从最前面开始比对,若开头为 / ,则删除两个 /之间的所有数据,亦即 /*/
65、万用字符与特殊符号
符号 | 内容 |
---|---|
* | 万用字符,代表 0 个或多个字符(或数字) |
? | 万用字符,代表『一定有』一个字母 |
# | 批注,这个最常被使用在 script 当中,视为说明! |
\ | 跳脱符号,将『特殊字符或万用字符』还原成一般字符 |
; | 连续性命令的界定(注意!与管线命令并不相同) |
~ | 使用者的用户目录 |
$ | 亦即是变量之前需要加的变量取代值 |
& | 将指令变成背景下工作 |
! | 逻辑运算意义上的『非』 not 的意思! |
/ | 路径分隔的符号 |
> | 输出导向,『取代』 |
>> | 输出导向,『累加』 |
‘ | 单引号,不具有变量置换的功能 |
“ | 具有变量置换的功能 |
` ` | 两个『 ` 』中间为可以先执行的指令! |
( ) | 在中间为子 shell 的起始与结束 |
[ ] | 在中间为字符的组合 |
{ } | 在中间为命令区块的组合 |
66、组合按键
组合按键 | 执行结果 |
---|---|
Ctrl + C | 终止目前的命令 |
Ctrl + D | 输入结束(EOF),例如邮件结束的时候 |
Ctrl + M | 就是 Enter |
Ctrl + S | 暂停屏幕的输出 |
Ctrl + Q | 恢复屏幕的输出 |
Ctrl + U | 在提示字符下,将整列命令删除 |
Ctrl + Z | 『暂停』目前的命令 |
67、撷取命令: cut、grep(未测试)
什么是撷取命令啊?说穿了,就是将一段数据经过分析后,取出我们所想要的。 或者是,经由分析关键词,取得我们所想要的那一行! 不过,要注意的是,一般来说,撷取讯息通常是针对『一行一行』来分析的,并不是整篇讯息分析的。
1、cut
这个指令可以将一段讯息的某一段给他『切』出来~ 处理的讯息是以『行』
为单位。
cut -d'分隔字符' -f fields
cut -c 字符区间
参数:
-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段讯息分割成为数段,用 -f 取出第几段的意思;
-c :以字符 (characters) 的单位取出固定字符区间;
2、grep
刚刚的 cut 是将一行讯息当中,取出某部分我们想要的,而 grep 则是分析一行讯息, 若当中有我们所需要的信息,就将该行拿出来。
grep [-acinv] '搜寻字符串' filename
参数:
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 ‘搜寻字符串’ 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!
68、排序命令: sort, wc, uniq(未测试)
1、sort
sort 是很有趣的指令,他可以帮我们进行排序,而且可以依据不同的数据型态来排序。 例如数字与文字的排序就不一样。此外,排序的字符与语系的编码有关,因此, 如果您需要排序时,建议使用 LC_ALL=C来让语系统一,数据排序比较好一些。
sort [-fbMnrtuk] [file or stdin]
参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(预设是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,预设是 tab 键;
-k :以那个区间 (field) 来进行排序的意思。
2、uniq
uniq [-ic]
参数:
-i :忽略大小写字符的不同;
-c :进行计数
3、wc
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
wc [-lwm]
参数:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;
69、查询系统中安装了哪些rpm软件包
rpm -qa
70、查询系统已安装的软件
rpm -q 软件名
71、定时任务 crontab
crontab (选项) (参数)
选项
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
参数
crontab文件:指定包含待执行任务的crontab文件(crontab文件中一行行的指令或者一个shell脚本文件的全路径)。
crontab文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command 顺序:分 时 日 月 周
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
72、shell脚本
- shell脚本是一个文本文件,命令的集合,有执行权限
执行方式(./文件名) - shell脚本是以.sh文结尾的文件
- 如果不能执行,可能是没有执行的权限,可以修改这个sh文件的执行权限
作者:jiankunking 出处:http://blog.csdn.net/jiankunking