linux命令

Linux好久没用了,还是以前上课实操的时候玩过,最近发现需要用到这些东西,抽空出来把linux命令整理下,免得以后又忘记了,老是百度也不好,主要参照菜鸟教程

文件管理类

cat 用于连接文件并打印到标准输出设备上

cat -n file1>file2 //把file1的文档内容加上行号后输入到file2文档里
cat -b file1 file2 >> file3//把file1和file2的文档内容加上行号(空白行不加)之后将内容附加到file3文档里
cat /dev/null > /etc/test.txt//清空 /etc/test.txt 文档内容
cat /dev/fd0 > OUTFILE //制作软盘的镜像文件,将软盘放好后输入
cat IMG_FILE > /dev/fd0 //把 image file 写到软盘,输入

chattr 命令用于改变文件属性

chattr +i /etc/resolv.conf //防止系统中某个关键文件被修改
chattr +a /var/log/messages //让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件

chmod 可以藉以控制文件如何被他人所调用

chmod ugo+r file1.txt//将文件 file1.txt 设为所有人皆可读取
chmod a+r file1.txt//将文件 file1.txt 设为所有人皆可读取
chmod ug+w,o-w file1.txt file2.txt//将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
chmod u+x ex1.py//将 ex1.py 设定为只有该文件拥有者可以执行
chmod -R a+r *//将目前目录下的所有文件与子目录皆设为任何人可读取
chmod 777 file//chmod也可以用数字来表示权限如 语法为:chmod abc file
//a,b,c各为一个数字,分别表示User、Group、及Other的权限。r=4,w=2,x=1

cmp 命令用于比较两个文件是否有差异 当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为”-“,则cmp指令会从标准输入设备读取数据

cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]
-c或--print-chars  除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-i<字符数目>或--ignore-initial=<字符数目>  指定一个数目。
-l或--verbose  标示出所有不一样的地方。
-s或--quiet或--silent  不显示错误信息。
-v或--version  显示版本信息。
--help  在线帮助
cmp prog.o.bak prog.o 
//如有不同,输出
prog.o.bak prog.o differ: char 4, line 1 
//当然也可以用diff命令

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} ;
# find . -name "*.c"//将目前目录及其子目录下所有延伸档名是 c 的文件列出来
# find . -type f //将目前目录其其下子目录中所有一般文件列出
# find . -ctime -20 //将目前目录及其子目录下所有最近 20 天内更新过的文件列出
$ find /var/logs -type f -mtime +7 -ok rm { } ;//查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们
$ find . -type f -perm 644 -exec ls -l { } ;//查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
$ find / -type f -size 0 -exec ls -l { } ;//为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径
$ find /var/logs -type f -mtime +7 -ok rm { } ;//查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们

mdir命令用于显示MS-DOS目录

mdir [-afwx/][目录]
$ mdir -/ a:\* //显示a盘中的内容

rm命令用于删除一个文件或者目录

rm [options] name...

# rm  test.txt 
rm:是否删除 一般文件 "test.txt"? y  
# rm  homework  
rm: 无法删除目录"homework": 是一个目录  
# rm  -r  homework  
rm:是否删除 目录 "homework"? y 

文档编辑

csplit命令用于分割文件 将文件依照指定的范本样式予以切割后,分别保存成名称为xx00,xx01,xx02…的文件。若给予的文件名称为”-“,则csplit指令会从标准输入设备读取数据

csplit testfile 2 //将文本文件testfile以第 2 行为分界点切割成两份

join命令用于将两个文件中,指定栏位内容相同的行连接起来。 找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备

join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]

join testfile_1 testfile_2 //连接两个文件

expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串

expr length “this is a test” //计算字串长度
expr substr “this is a test” 3 5 //抓取字串
expr index "sarasara"  a//抓取第一个字符数字串出现的位置
expr 14 % 9 //整数运算

文件传输

ftp命令设置文件系统相关功能

ftp [-dignv][主机名称或IP地址]
ftp ftp.kernel.org #发起链接请求 

uucp命令用于在Unix系统之间传送文件

uucp [-cCdfjmrRtvW][-g<等级>][-I<配置文件>][-n<用户>][-x<类型>][--help][...来源][目的]
uucp-d-R temp localhost ~/Public/ //将temp/目录下所有文件传送到远程主机localhost的uucp公共目录下的Public/目录下

ftpshut命令在指定的时间关闭FTP服务器

ftpshut [-d<分钟>][-l<分钟>][关闭时间]["警告信息"]

ftpshut-d 3 -1 5 1100 "Server will be shutdown at 23:00:00" //在晚上11:00 关闭FTP服务器,并在关闭前5 分钟拒绝新的FTP登录,前3 分钟关闭所有ftp的链接,且给出警告信息

网络通讯

netstat命令用于显示网络状态

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
# netstat -a //显示详细的网络状况

samba命令用于Samba服务器控制。 samba为script文件,可启动,停止Samba服务器或回报目前的状态

# samba start

服务器操作的常用命令

重启redmine的命令 /opt/redmine.org.cn/ctlscript.sh restart 改防火墙策略的地址 vim /etc/sysconfig/iptables 直接停止防火墙服务 service iptables stop 创建数据库的命令 CREATE DATABASE testProject DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 刷新表结构 flush privileges; 启动命令 /data/tomcat/bin/startup.sh 关闭命令/data/tomcat/bin/shutdown.sh 查看实时日志的命令 tailf /data/tomcat/logs/catalina.out 重启数据库 /etc/init.d/mysql restart