LINUX一些主要命令和Shell编程例题

cat将几个文件合并为一个文件: $cat file1 file2> file

一次显示整个文件。$ cat filename

-b 显示文件中的行号,空行不编号

-E 在显示所有行的末尾,加上$符号

more是分屏显示

less是分屏显示文件内容,less与more大致一样,但是less可以回看

head

-c:显示文件的字节数

-w:显示文件的单词数

-n:显示文件的行数

tail  tail num file,显示文件最后num

tac  tac 是将 cat 反写过来,所以它的功能就    跟 cat 相反

nl显示文件内容,并加上行号

用法:nl [文件名]等同于cat -n [文件名]

 

匹配、排序命令

grep显示匹配条件所有行的内容,搜索行内容

用法:grep命令的一般格式:grep [选项] [文件名]

grep bash /etc/shells搜索shells文件中含有bash的行

Find  -name按照文件名查找文件。

-perm按照文件权限来查找文件

-user照文件属主来查找文件。

-group按照文件所属的组来查找文件。

-type查找某一类型的文件

sort将文本文件内容加以排序

-m:如果文件列表中的文件已经排好序,则对这些文件统一进行合并,不做排序

-r:逆序排序(按照ASCII码表的顺序来排序的)

-o:将文件排序输出放到该文件名所指定的文件中。如果该文件不存在,则创建一个新文件。

uniq显示文件中所有不重复的行

-c:显示输出时,在每行的行首加该行在文件中出现的次数

-d:只显示重复行

-u:只显示文件中的不重复行

comm比较两个已排过序的文件

comm   路径/file1 路径/file2

-1:不显示只在第1个文件里出现过的列

-2:不显示只在第2个文件里出现过的列

-3:不显示只在第1个和第2个文件里出现过的列

diff比较文件的差异

-b:不检查空格字符的不同。

-c:显示全部内文,并标出不同之处(掌握)

-f:输出的格式类似ed的script文件,但按照原来文件     的顺序来显示不同处

cp复制文件或目录

-a:该选项通常在复制目录时使用,递归地将源目录下的所有子目录及其文件都复制到目标目录,并且保留文件链接和文件属性不变,等效于-dpr(all)

-f:(force)强行复制文件或目录,不论目标文件或目录是否已存在。

-i:(interactive)覆盖既有文件之前先询问用户。

-p:保留源文件或目录的属性。

-r:递归处理,将指定目录下的文件与子目录一并处理。

rm删除文件或目录。

-f:(force)强制删除文件或目录

-r:(recursive)递归处理,将指定目录下的所有文件及子目录一并处理

-i:(interactive)删除既有文件或目录之前先询问用户

mv删除文件或目录

-i:覆盖前先行询问用户(interactive)

-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录(force)

文件内容统计命令

wc计算字数

-c:统计字节数(characters)

-l:统计行数(lines)

-w:统计字数(wrods)

 

创建和删除目录的命令

mkdir建立目录

-m:建立目录时同时设置目录的权限(mode)

-p:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录

rmdir删除目录

-p:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除

rmdir不能删除当前目录

 

改变工作目录和显示目录内容命令

cd改变工作目录

pwd显示当前工作路径

ls列出目录内容

-a:当前目录下所有文件和目录

-c:以更改时间排序,显示文件和目录()

-i:显示文件和目录的inode编号

-l:使用详细格式列表

-r:反向排序

-R:递归处理,将指定目录下的所有文件及子目录一并处理

ln连接文件或目录

-s:对源文件建立符号连接,而非硬连接

 

改变文件或目录存取权限的命令

chmod变更文件或目录的权限

umask指定在建立文件时预设的权限掩码

改变用户组和文件主命令

chgrp命令可采用群组名称或群组识别码的方式改变文  件或目录的所属群组。使用权限是超级用户。

chown通过chown改变文件的拥有者和群组。在更改文件的所  有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

gzip是压缩程序

unzip解压缩zip文件

tar备份文件

-f 文件名:指定备份文件

-c:建立新的备份文件

-r:新增文件到已存在的备份文件的结尾部分

-u:仅置换较备份文件内的文件更新的文件

-x:从备份文件中还原文件

-t:列出备份文件的内容

-z:通过gzip指令处理备份文件

进程控制命令

ps用来显示当前进程的状态

-a:显示同一终端下的所有程序

-A:显示所有进程

-e:显示所有进程,等同于-A

-f:显示UID,PPIP,C与STIME栏位(显示进程的所有信息)

-l:采用详细的格式来显示程序状况

-r:只列出现行终端机正在执行中的程序

kill删除执行中的程序或工作

sleep使进程暂停执行一段时间

hostname显示或设置系统的主机名。如果无任何选项和主机名,则用于显示系统的主机名

ping测试本主机和目标主机的连通性。

host该命令用于IP地址查找

ifconfig命令用来查看和配置网络设备

traceroute指令让你追踪网络数据包的路由途径

netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

clear清楚屏幕上的信息

echo在屏幕上显示所给出的字符串

-n:表示输出字符串之后,光标不换行

10. 若下达rmdir命令来删除某个已存在的目录,但无法成功,请说明可能的原因。

此目录可能不存在,或者目录不为空,或者目录中有隐含文件存在, 或者目录被设置了权限,        

解决方法就是先修改权限,在使用rm –r 命令删除。

 

11.创建一个shell 脚本,它从用户那里接收10个数,并显示已输入的最大的数。

参考程序:

#! /bin/bash
max=0

for((count=1 ; count <= 10 ; count = count+1))

do

echo -n "Enter number $count : "

read value

if [ $max -lt $value ]

then

max=$value

fi

done

13. 编写shell程序,实现自动删除50个用户账号的功能。账号名为stud1至stud50

#!/bin/sh

i=1

while [ $i -le 50 ]

do                                                           

userdel -r stud${i}

i=$(($i+1 ))

done

           echo"remove sucessful!"

       else

           echo" remove fail"

       fi;;

 

 

       

 

你可能感兴趣的:(Linux)