您的位置:首页 > 运维架构 > Linux

linux常用命令集合

2010-11-08 13:43 267 查看
-----------------------------------------系统运行时间 uptime

uptime命令显示系统已经运行了多长时间,它依次显示下列信息:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1 min、6 min和8 min内的平均负载

或者last|grep "system boot"|head -n 1

-----------------------------------------索引节点(i节点) 进行删除

可以使用 索引节点(i节点) 进行删除

[root@selboo /]# ll -i

51665 -rw-r--r-- 1 root root 0 May 23 22:38 ?Os???j?
得到i节点为 51665

通过find命令删除i节点为51665的文件

[root@selboo /]# find ./ -inum 51665 -print -exec rm {} -rf \;

./?Os???j?

-----------------------------------------selinux

/etc/selinux/config

-----------------------------------------mount

mount /dev/hda4 /users

由/dev/hda4表示的文件系统安装到路径users 下,随后可以使用ls /users来查看这个文件系统的内容,不能再使用ls /dev/hda4来访问

umount

-----------------------------------------关机 重启

shutdown -h now

shutdown -h +15 "going down for emergency disk repair."

shutdown -h 09:30 "go....."

halt 关机

reboot 重启

-----------------------------------------ln

连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。

-s : 进行软链结

存在/home/abc/111/sr

存在/home/abc/222

#ln -s /home/abc/111/sr /home/abc/222/sr

#ls -al /home/abc/222/

lrwxrwxrwx 1 root root 16 09-08 22:12 3r -> /home/abc/111/3r

-----------------------------------------查找相关命令是否已经在搜索路径中 which whereis locate

#which gcc

/usr/bin/which: no gcc in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/centos/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin)

如果 which没有找到的命令,那么试试whereis

[root@localhost centos]# whereis gcc

gcc: /usr/libexec/gcc

还可以使用locate,它搜索的并不特定于命令或软件包,而是能够找到任何类型的文件

[root@localhost centos]# locate signal.h

/usr/share/man/man0p/signal.h.0p.gz

-----------------------------------------显示网络流量

watch -n 1 "/sbin/ifconfig eth0 | grep bytes"

------------------------------------------查看内存使用情况

free

------------------------------------------查看CPU使用情况的命令

每5秒刷新一次,最右侧有CPU的占用率的数据

$ vmstat 5

------------------------------------------磁盘的IO性能

Linux下的iostat命令

iostat -d -k -t 2

每隔2秒统计一次磁盘IO信息,直到按 Ctrl+C终止程序,-d 选项表示统计磁盘信息, -k 表示以每秒KB的形式显示,-t 要求打印出时间信息,2 表示每隔 2 秒输出一次。第一次输出的磁盘IO负载状况提供了关于自从系统启动以来的统计信息。随后的每一次输出则是每个间隔之间的平均IO负载状况。

运行该命令后,输出:

Linux 2.6.9-67.0.7.ELsmp (localhost.localdomain) 11/19/2008

Time: 03:15:25 PM

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

sda 3.53 26.66 54.76 30122033 61864280

sda1 0.51 1.07 1.73 1207649 1949740

sda2 0.00 0.00 0.00 538 256

sda3 13.84 25.59 53.03 28913291 59914092

Time: 03:15:27 PM

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

sda 275.38 0.00 1738.69 0 3460

sda1 14.57 0.00 58.29 0 116

sda2 0.00 0.00 0.00 0 0

sda3 419.60 0.00 1678.39 0 3340

...

每次输出都会打印时间信息, 接下来显示磁盘IO情况列表。

Device: 显示磁盘名称

tps: 表示每秒钟输出到物理磁盘的传输次数。一次传输就是一个对物理磁盘的 I/O 请求。多个逻辑请求可被并为对磁盘的一个单一 I/O 请求。传输具有中等的大小。

kB_read/s: 每秒从磁盘读取的数据量,单位为KB。

kB_wrtn/s: 每秒从写入磁盘的数据量,单位为KB。

Kb_read: 读取的 KB 总数。

Kb_wrtn: 写入的 KB 总数。

------------------------------------------linxu 文件夹 权限 chmod chown

drwxr-xr-x 中的第一位(左数)表示当前目录是目录还是文件,d表示目录,-表示普通文件.

后面9位分为3组,每3组作为1组,从左到右分别表示文件属主,文件属组,和其他所有用户的权限.

r表示文件可读,w表示文件可写,x表示文件可以执行.

chown chmod -R 递归更新目录权限

用命令chmod改变文件权限.有两种

第一种

chmod (ugoa) (=-+) (rwx) file

u代表文件属主,g代表文件属组,o代表系统中除属主和属组成员之外的其他用户,a代表所有用户(u,g,o)总和

+代表增加相应的权限,-代表减少相应的权限,=代表只有相应的权限

chmod g-w file就可以完成上面那个文件的权限改正.

第二种

用数字改正,r为4,w为2,x为1

把数字相加就是所对应的权限,不如rwx就是7,rw就是6

改正上面问题的权限方法为

chmod 775 file 就行了

chown user:group

#chown -R matt:staff ./mattt

-----------------------------------------------date -s”命令来修改系统时间

#date -s 12/14/2007  

将系统时间设定成上午9点16分0秒的命令如下。

#date -s 09:16:00

-------------------------------------------ls getfacl

getfacl 可显示一个文件当前的acl

#getfacl ./

ls -lih 所有文件和目录

ls -lih /home/web/limebook/*

ls -ld uploadfile/ 指定文件的属性

ls -l xxx.xxx 查看文件权限

ls -la |wc -l

应该减三,因为ls -la会显示"."和".."两个目录,并且-l会产生

total信息,故应该减三。

ls -l|wc -l

ls | egrep '[0-9]{2}' 显示带数字的目录和文件

ls | egrep '^[0-9]{2}/$'

只显示目录名

ls -l | grep ^d

只显示文件

ls -l | grep ^-

只显示文件名

ls -l | grep ^f

统计当能目录下的文件数

ls -l | grep ^- | wc -l

-----------------------------------------------find

find / -name "mysql*" 查找文件

# find / -name wish -print

find ./ -name '*.php' 可遍历目录

find ./ -maxdepth 1 -name '*.php' 不遍历,只寻找一级目录下

find . -regex '.*\.\(c\|h\|min\|cpp\|mak\|txt\)' -print find查找包含 .c .h .min .cpp .mak .txt 等后辍名的文件

find -type f ! -name "*.php" find . ! -name "*.php"查找当前目录,包括所有子目录里,除了 .sh结尾的所有其他文件。

df -h 查看磁盘空间

mv 可以移动一个文件(或目录)到另一个文件(或目录),如果文件(或目录)不存在,则创建它。其实mv 这个过程也可以理解为改名过程

,所以说mv工具能修改文件名和目录名。

file *.* 查看文件类型

//cp整个目录但是不包含其中某个目录

#cp -r `find /tmp/test -type d -path /tmp/test/c -prune -o -print |sed 1d ` /tmp/test2

find所带的参数

-prune:使用这一选项可以使f i n d命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被f i n d命令忽略。

-type 查找某一类型的文件,诸如:

b - 块设备文件。

d - 目录。

c - 字符设备文件。

p - 管道文件。

l - 符号链接文件。

f - 普通文件。

-----------------------------------------------------------cd

cd .. 返回上级目录

cd ../.. 进入上二级目录

cd - 返回上一次进入的目录

cd 进入用户自己的主目录

cd ~ 进入用户自己的主目录


---------------------------------------------------------tail

tail 命令从指定点开始将 File 参数指定的文件写到标准输出。

tail -f 命令可用于监视另一个进程正在写入的文件的增长。

[root@xiegh-yangb ~]# tail -f /var/log/httpd/error_log

----------------------------------------------------------cp

cp -r limebook limebook_6.3

cp -rf mysqlse ../mysql-5.1.26-rc/storage/sphinx

- f 删除已经存在的目标文件而不提示。

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。

-a 尽可能将档案状态、权限等资料都照原状予以复制。

-------------cp整个目录但是不包含其中某个目录

/tmp/test

/a

/b

/c

/d

我想拷贝整个test目录,但是不包括下面的c目录,该怎么写啊?

#cd /tmp

#mkdir test2

#cp -r `find /tmp/test -type d -path /tmp/test/c -prune -o -print |sed 1d ` /tmp/test2

-------------------------------------------------------rm

rm -rf 目录 遍历删除

----------------------------------------------------------netstat网络统计信息

  -a 显示所有socket,包括正在监听的,列出所有主动监听的端口。

  -c 每隔1秒就重新显示一遍,直到用户中断它。

  -i 显示所有网络接口的信息,格式同“ifconfig -e”。

  -n 以网络IP地址代替名称,显示出网络连接情形,获得数字地址和端口号。

  -r 显示核心路由表,格式同“route -e”。

  -t 显示TCP协议的连接情况。

  -u 显示UDP协议的连接情况。

  -v 显示正在进行的工作。

-p 每个监听端口相关联的特定进程

netstat -i -e 显示主机上每个网络接口的配置和状态

netstat -lp 标识正在监听的网络服务

netstat -rn 检查路由表

netstat -s 查看各种网络协议运行的统计信息

netstat -tln 用来查看linux的端口使用情况

netstat -anp | grep 25

netstat --ip -an

Lsof:其功能是列示打开的文件,包括监听端口

推荐:lsof -i :port,使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。//lsof -i:25,可以看到PID:3200

使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。

linux lsof命令详解

-----------------------------------------------------------监视进程ps top

ps是比较常用的,可以配合grep命令来查找正在运行的进程。

ps auxf 所有进程的全貌

ps lax

推荐ps ax 命令显示一个当前系统进程的列表,该列表是一个静态列表

ps ax | grep 25

ps aux |grep send

ps -ax | grep http

ps -fp "5892 5893" 查看相关进程

top用于动态监视高资源占用的,要退出 top,按 [q] 键。

------------------------------------------------------------kill

kill 命令用于终止进程

例如: kill -9 [PID]

-9表示强迫进程立即停止

通常用ps 查看进程PID ,用kill命令终止进程

-----------------------------------------------------------pmap 查看 进程所用内存

Linux下使用pmap命令能查看一个具体进程所用内存的分布情况。
pmap -x 进程号
我们可以通过这个命令查看apache的http进程的各个模块的内存调用,从而我们可以通过分析精简apache的模板。

---------------------------------------------------------用户相关

/etc/passwd 注:用户(user)的配置文件;

/etc/shadow 注:用户(user)影子口令文件;

/etc/group 注:用户组(group)配置文件;

/etc/gshadow 注:用户组(group)的影子文件;

who

last

last | grep reboot

如果指明了用户,那么last只报告该用户的近期活动,例如:last ynguo(回车)显示:

ac -p (回车)显示每个用户的总的连接时间

w:w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息

lastlog 列出每个帐户最后登陆系统的时间

last 列出所有用户的登陆记录(包括登陆设备和时间),以时间排序显示

who /var/log/wtmp 将报告自从wtmp文件创建或删改以来的每一次登录。

ac -d 显示每天的总的连结时间 -p 显示每个用户的总的连接时间

usermod -g group loginname

强行设置某个用户所在组

usermod -G groups loginname

把某个用户改为 group(s)

usermod -a -G groups loginname

把用户添加进入某个组(s)

#id    注:查看用户的UID、GID及所归属的用户组


#id apache 查看APACHE用户的信息

--------------cat

cat命令就是查看文件的内容:

如#cat a.txt,而vi是一个文件编辑器

------------mkdir

mkdir -p

mkdir有一个很方便的-p选项,该选项告诉mkdir创建所有缺少的父目录,如下所示:

$ mkdir -p easy/as/pie

mkdir -m 711 test2 //指定权限

----------------touch 创建文件

----------------------telnet 远端登入

ping smtp.163.com

telnet smtp.163.com

-----------------file 显示文件类型

file 文件或文件夹

查看系统状态

查看系统使用字符集:echo $LANG $LANGUAGE

环境变量:set

系统

查看CPU个数 cat /proc/cpuinfo 看出现processor字样的行数是多少条

cat /proc/meminfo

# uname -a # 查看内核/操作系统/CPU信息

# head -n 1 /etc/issue # 查看操作系统版本

# cat /proc/cpuinfo # 查看CPU信息

# hostname # 查看计算机名

# lspci -tv # 列出所有PCI设备

# lsusb -tv # 列出所有USB设备

# lsmod # 列出加载的内核模块

# env # 查看环境变量

资源

# free -m # 查看内存使用量和交换区使用量

# df -h # 查看各分区使用情况

# du -sh <目录名> # 查看指定目录的大小

# grep MemTotal /proc/meminfo # 查看内存总量

# grep MemFree /proc/meminfo # 查看空闲内存量

# uptime # 查看系统运行时间、用户数、负载

# cat /proc/loadavg # 查看系统负载

磁盘和分区

# mount | column -t # 查看挂接的分区状态

# fdisk -l # 查看所有分区

# swapon -s # 查看所有交换分区

# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)

# dmesg | grep IDE # 查看启动时IDE设备检测状况

网络

# ifconfig # 查看所有网络接口的属性

# iptables -L # 查看防火墙设置

# route -n # 查看路由表

# netstat -lntp # 查看所有监听端口

# netstat -antp # 查看所有已经建立的连接

# netstat -s # 查看网络统计信息

进程

# ps -ef # 查看所有进程

# top # 实时显示进程状态

用户

# w # 查看活动用户

# id <用户名> # 查看指定用户信息

# last # 查看用户登录日志

# cut -d: -f1 /etc/passwd # 查看系统所有用户

# cut -d: -f1 /etc/group # 查看系统所有组

# crontab -l # 查看当前用户的计划任务

服务

# chkconfig --list # 列出所有系统服务

# chkconfig --list | grep on # 列出所有启动的系统服务

程序

# rpm -qa # 查看所有安装的软件包

-----------------------------------------------------------------------------------------【ubuntu】

-------------------------------------------rcconf设置开启启动

进去以后按空格键可取消或选择对应的设置

-----------------------------------------------------------------------------------------【centos】

-------------------------------ifconfig 命令无效

# ifconfig

提示命令不存在

使用 # /sbin/ifconfig 即可

原因: 系统默认的环境变量设置不对

在 普通用户 和root用户下分别执行echo $PATH,PATH里少了四个地址:/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin

而,ifconfig恰恰就在/sbin里面。

修改/home/用户/.bash_profile,在PATH后面添加/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin这几个路径。

改完之后,注销下或者重启才能生效。

再来sudo ifconfig , 就OK了。

-------------------------------chkconfig 用户管理服务,可以在系统中增删启动脚本

chkconfig --list [name] 显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态【对应/etc/rc.d/rc*.d/目录】 。

chkconfig --add name 增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。

chkconfig --del name 删除服务,并把相关符号连接从/etc/rc[0-6].d删除。

chkconfig [--level levels] name <on|off|reset> 设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在3,4,5运行级停止nfs服务,则命令如下:

#chkconfig --level 345 nfs off

on和off分别指服务被启动和停止,reset指重置服务的启动信息, on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。

#/sbin/chkconfig --add sshd [在服务清单中添加ssh服务]

#/sbin/chkconfig sshd on [设置ssh服务开机启动]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: