Linux常用命令

Linux常用命令

一些常用的总结,常用的大概有chmod、chgrp、grep、find、ifconfig大概想到的就这些吧,下面分别介绍下,主要参考的是linux里面的man。还有一些像ps、top命令可以查看进程(线程)占用系统资源情况,top可以查看系统cpu和内存swap分区的使用情况。du -h filename 查看文件占用磁盘空间大小,不是真正的大小,一个空的文件也要找4k的空间(du - estimate file space usage,u的意思是usage吧)。df -h 查看磁盘空间的使用情况(df - report file system disk space usage,f的意思是file system disk)。h都是human-readable人易读的意思。

 

chmod - change file access permissions
这个命令使用还比较简单,chmod myfile 777,三个7从左边第一个表示用户(所有者)的权限,第二个是同组用户的权限,第三个是其他用户的读写权限。读权值为4,写权值为2,可执行权值为1。三个权值并没有什么必然的关系,4,2,1的大小也不代表什么权限的大小,只代表不同的权限而已。

chgrp - change group ownership chown - change file owner and group
要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误,chgrp改变文件的所有组,chown改变文件的拥有者。
ls -l文件信息如下
-rw-r--r-- 1 root   root      0 06-27 12:02 myfile
第一个root是文件所有者,第二个为文件的所属用户组
chgrp group myfile
chown owner myfile
ls -l
-rw-r--r-- 1 owner group 0 06-27 12:02 myfile

find - search for files in a directory hierarchy
这个命令功能很强大,在linux的man下都有七八页,这里只是用几个例子说下它的常用用法。

从根目录下查找所有的.h文件
find / -name "*.h"

查当前目录下以两个小写字母和两个数字开头的txt文件,这里用到了些正则表达式
find . -name "[a-z][a-z][0–9][0–9].txt"

查大于512k的文件
find   /home   -size   +512k

统计一个文件夹及其子文件夹下文件的数目
find ./ -type f | wc -l
对照统计一个文件夹下文件数目(不包含子文件夹)
ls -l | grep "^-" | wc -l
统计文件(包括子文件夹)加下所有.c文件的文件行数
find . -name *.c | xargs wc -l
 xargs - build and execute command lines from standard input,一个命令的输入作为另一个命令的参数

--------------------------------------- 华丽的分隔符--------------------------------------------------------

grep - print lines matching a pattern
注意,这个不是用来查找文件的,而是用来查找文件中符合条件的一行的,或者查找文件中单词的,这个命令也跟find一样强大,这里较为详细的说明下,这里参考以前一个别人的帖子,但是网址找不到了。顺便说下find也用到的正则表达式

这里要说几个参数了 ,因为这个命令很常用,很重要
-w : 整词比对, 类似 \<word\> .
-r: 递归模式, 可同时处理所有层级子目录里的文件.这个参数chmod、chgrp、chown都有,find是默认递归的
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。

查找整个系统中含有"RAND_MAX"的文件

grep -r "RAND_MAX" /

例子文件如下
$ cat data.f
48      Dec     3BC1977 LPSX    68.00   LVX2A   138
483     Sept    5AP1996 USP     65.00   LVX2C   189
47      Oct     3ZL1998 LPSX    43.00   KVM9D   512
219     dec     2CC1999 CAD     23.00   PLV2C   68
484     nov     7PL1996 CAD     49.00   PLV2C   234
483     may     5PA1998 USP     37.00   KVM9D   644
216     sept    3ZL1998 USP     86.00   KVM9E   234

在所有文件中查询单词“ sort it”
grep  "48"data.f

输出匹配行的总数
grep -c "48"data.f
输出
4

显示满足匹配模式的所有行行数:
grep -n "48"data.f
输出:
1:48      Dec     3BC1977 LPSX    68.00   LVX2A   138
2:483     Sept    5AP1996 USP     65.00   LVX2C   189
5:484     nov     7PL1996 CAD     49.00   PLV2C   234
6:483     may     5PA1998 USP     37.00   KVM9D   644

显示所有不包含4 8的各行
grep -v "48"data.f

在上一例中,抽取字符串“48”,返回结果包含诸如484和483等包含“48”的其他字符串,实际上应精确抽取只包含48的各行。使用g r e p抽取精确匹配的一种更有效方式是在抽取字符串后加\ >。假定现在精确抽取48,方法如下:
grep "48\>" data.f

大小写不敏感查询
grep -i "cad" data.f

抽取代码为484和483的城市位置,可以使用[ ]来指定字符串范围。(以下部分使用正则表达式)
grep "48[34]" data.f

行首不是4或者8
grep "^[^48]" data.f //第一个^表示行首,第二个^表示否

假定要取得城市代码,第一个字符为0-9,第二个字符在0到5之间,第三个字符在0到6
grep "^[0-9][0-5][0-6]" data.f

抽取包含数字4至少重复出现两次的所有行
grep "4\{2,\}" data.f

抽取包含数字4出现2到4次所有行
grep "4\{2,4\}" data.f

结合使用^和$可查询空行。使用- c参数显示总行数:
grep -c "^$" data.f

--------------------------------------- 华丽的分隔符--------------------------------------------------------

ifconfig - configure a network interface
对于网卡的操作,如果想更改ip地址,最直接的就是操作配置文件/etc/sysconfig/network-scripts
这个是redhat的网卡信息
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:0c:29:91:5e:cb
NETMASK=255.255.255.0
IPADDR=10.10.83.223
GATEWAY=10.10.83.20
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
设置完成后service network restart即可
还有利用ifconfig命令来修改不过是动态的,重启后失效
ifconfig eth0 10.10.22.145
ifconfig eth0 直接查看网卡的信息

--------------------------------------- 华丽的分隔符--------------------------------------------------------
crontab - maintain crontab files for individual users
1)基本用法
这个命令只是用来维护一个crontab file文件的,每个用户都有自己的一个crontab文件,在/var/spool/cron目录下面,里面以用户名为名的文件就是每个用户对应的crontab file,查看文件的内容应该和crontab -l 命令结果一样。这个命令常用的有三个选项-e edit,-l list, -r remove。系统在启动的时候会启动一个守护进程,在red hat下为crond,可用
ps - aux | grep crond
查看,这个守护进程每隔一分钟读取下用户的crontab file文件,按照一定的格式解析文件的内容能够,查看是否有任务需要执行。

可以用crontab -e 来添加命令(编辑那个crontab file文件),执行这个命令会打开一个用户的crontab file文件,按照

* * * * * /command path
的格式来添加任务5个*分别代表,分钟,小时,日期,月份,周几。
分钟:0-59
小时:1-23
日期:1-31
月份:1-12
星期:0-6(0表示周日)

*: 表示任何时刻
,: 表示分割
-:表示一个段,如第二端里: 1-5,就表示1到5点
/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

一些例子:
0 17 * * *       每天17:00 执行
0 17 * * 1       每周一的 17:00 执行
0 21 * * 1-6   周一到周六 21:00 执行
* 1 * * *    从1:0到1:59 每隔1分钟 执行
*/10 * * * *        每隔10分 执行
0,10,20,30,40,50 * * * * 每隔10分 执行

* * * * * /bin/date
意思为每一分钟都会运行下date命令,这个结果会以邮件的形式发送到/var/spool/main/root(username)下,查看这个邮件的内容即为执行的结果。

2)关于重定向

可以在程序后面加上一个&,使得程序在后台运行

command >out.file 2>&1 &

这个意思是把标准输出和标准错误输出都重定向到out.file文件中去,也可以重定向到/dev/null中,把输出清空

这里注意0表示标注输入(键盘),1表示标准输出(屏幕),2表示标准错误输出(屏幕),&1 表示的是文件描述1,表示标准输出,如果这里少了&就成了数字1,就表示重定向到文件1。

 

参考:http://blog.youkuaiyun.com/tianlesoftware/article/details/5315039

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值