Linux 常用命令 学习笔记

时间:2023-02-25 09:04:17

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]

参数:

  1. 与时间有关的参数:
    -atime n :n 为数字,意义为在 n 天之前的『一天之内』被 access 过的档案;
    -ctime n :n 为数字,意义为在 n 天之前的『一天之内』被 change 过状态的档案;
    -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被 modification 过的档案;
    -newer file :file 为一个存在的档案,意思是说,只要档案比 file 还要新,就会被列出来~
  2. 与使用者或群组名称有关的参数:
    -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 搜寻。
  3. 与档案权限及名称有关的参数:
    -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…. 的属性存在!
  4. 额外可进行的动作:
    -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”的所有命令。
Linux 常用命令 学习笔记
cat f再按两下“tab”键会出现开头字母为“f”的所有文件或目录。
Linux 常用命令 学习笔记

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 正在执行的命令或者进程名

Linux 常用命令 学习笔记

32、终止进程kill/killall

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程,使用kill命令来完成此项任务。

终止某个进程:

kill 进程号
//强制杀死

kill -9 进程号

killall:杀死同名的所有进程 (及该进程所开的子进程统统杀掉)

33、动态监控进程

top与ps命令相似.它们都用来显示正在执行的进程,top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程

top
//指定系统状态更新时间
//指定系统更新进程地时间是10秒
top -d 10

Linux 常用命令 学习笔记

34、设置、查看系统时间

显示系统的时间:

date

Linux 常用命令 学习笔记

查看月历:

//查看2012年3月的月历
cal 3 2012

Linux 常用命令 学习笔记

查看年历:

//查看2017的年历
cal 2017

Linux 常用命令 学习笔记

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

所谓路由是指将数据由来源网络送往目的地网络的操作,在大型网络中,路由是非常复杂的,因为数据包在抵达目的地时,可能经过的节点很多,路由表是存储在路由器或一些其他链接设置上的窗体,其中记录着了到指定目的地的网络路径,以及这些路径的相关数值

此命令可以直接输入使用,来查看本机路由情况

Linux 常用命令 学习笔记

39、重启

reboot

40、 管道符’|’(回车键上方的那个竖线)

利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

41、搜索文本内容

grep '搜寻字符串' filename

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。

Linux 常用命令 学习笔记

42、linux帮助命令

//比如想知道grep命令的信息
man grep

Linux 常用命令 学习笔记

43、输出重定向

grep '搜寻字符串' filename > 要写入的文件名

Linux 常用命令 学习笔记

> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用>,将日志文件清空(文件大小变成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
Linux 常用命令 学习笔记

47、查看某个目录在哪个分区

df 目录全路径

Linux 常用命令 学习笔记

48、查看分区具体情况

fdisk -l

Linux 常用命令 学习笔记

49、显示所有的环境变量

//列出来所有的环境变量
env

Linux 常用命令 学习笔记

  • 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种类:
Linux 常用命令 学习笔记

51、命令别名(alias)设定

//给命令ls -al起个别名:lm
alias lm='ls -al'

Linux 常用命令 学习笔记

52、万用字符:*

除了完整的字符串之外, bash 还支持许多的万用字符来帮助使用者查询与指令下达。 举例来说,想要知
道 /usr/X11R6/bin 底下有多少以 xt 为开头的档案吗?使用:

 ls -l /usr/X11R6/bin/xt* 

就能够知道啰

53、Bash shell 的内建命令: type

//[-tpa] 表示参数
type [-tpa] name

不加任何参数时,则 type 会显示出那个 name 是外部指令还是 bash 内建的指令!

  1. -t :当加入 -t 参数时,type 会将 name 以底下这些字眼显示出他的意义:
    file :表示为外部指令;
    alias :表示该指令为命令别名所设定的名称;
    builtin :表示该指令为 bash 内建的指令功能;
  2. -p :如果后面接的 name 为指令时,会显示完整文件名(外部指令)或显示为内建指令;
  3. -a :会将由 PATH 变量定义的路径中,将所有含有 name 的指令都列出来,包含 alias

Linux 常用命令 学习笔记

54、shell 声明、读取变量

//声明变量
myVar='jiankunking'
//读取变量
echo $myVar

Linux 常用命令 学习笔记

55、shell变量设定规则

  1. 变量与变量内容以等号『=』来连结;
  2. 等号两边不能直接接空格符;
  3. 变量名称只能是英文字母与数字,但是数字不能是开头字符;
  4. 若有空格符可以使用双引号『 ” 』或单引号『 ’ 』来将变量内容结合起来,但须要特别留意, 双
    引号内的特殊字符可以保有变量特性,但是单引号内的特殊字符则仅为一般字符;
  5. 必要时需要以跳脱字符『 \ 』来将特殊符号 ( 如 Enter, $, , 空格符, ’ 等 ) 变成一般符号;
  6. 在一串指令中,还需要藉由其它的指令提供的信息,可以使用 quote 『 command 』;(特别
    特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号!)
  7. 若该变量为扩增变量内容时,则需以双引号及 " PATH”:/home』继续累加内容;
  8. 若该变量需要在其它子程序执行,则需要以 export 来使变量变成环境变量, 如『export PATH』;
  9. 通常大写字符为系统预设变量,自行设定变量可以使用小写字符,方便判断 ( 纯粹依照使用者兴
    趣与嗜好 ) ;
  10. 取消变量的方法为:『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 $?

Linux 常用命令 学习笔记

一般来说,如果成功的执行该指令,则会回传一个 0 值,如果执行过程发生错误,就会回传『错误代码』才对!一般就是以非为 0 的数值来取代。

59、export命令

export命令用于设置或显示环境变量。
export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。

//-f  代表[变量名称]中为函数名称。
//-n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
//-p  列出所有的shell赋予程序的环境变量。
export [-fnp][变量名称]=[变量设置值]

60、read命令

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量。

//参数:
//-p :后面可以接提示字符!

//-t :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦!

//read 之后不加任何参数,直接加上变量名称,那么底下就会主动出现一个空白行,等待您输入。

read [-pt] variable

Linux 常用命令 学习笔记

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

一般来说,建议直接以 ${数组} 的方式来读取
Linux 常用命令 学习笔记

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:从最前面开始比对,若开头为 / ,则删除两个 /之间的所有数据,亦即 /*/
Linux 常用命令 学习笔记

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) 来进行排序的意思。

Linux 常用命令 学习笔记

2、uniq

uniq [-ic]

参数:
-i :忽略大小写字符的不同;
-c :进行计数

3、wc
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

 wc [-lwm]

参数:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;

69、查询系统中安装了哪些rpm软件包

rpm -qa

70、查询系统已安装的软件

rpm -q 软件名

Linux 常用命令 学习笔记

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字段,表示每十分钟执行一次。

Linux 常用命令 学习笔记

72、shell脚本

  1. shell脚本是一个文本文件,命令的集合,有执行权限
    执行方式(./文件名)
  2. shell脚本是以.sh文结尾的文件
  3. 如果不能执行,可能是没有执行的权限,可以修改这个sh文件的执行权限

作者:jiankunking 出处:http://blog.csdn.net/jiankunking