作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

在博客的草稿箱里一直有一份"Linux命令"的草稿,记录了一些常用的Linux命令,用于需要的时候查询。由于是出于个人使用的目的,所以这个清单并不完整。今天整理了一下这个清单,调整了格式,并增加了一些内容。现在发布出来,以抛砖引玉。我也会在未来继续补充。希望能对Linux用户有用。

Linux相关背景可参阅系列文章

网络相关背景可参阅系列文章

下面是格式说明,你现在可以跳过,直到遇到疑问时再来查询。

$ 命令行提示符

粗体表示命令

斜体表示参数

filename, file1, file2都是文件名。有时文件名有后缀,比如file.zip

command命令名

dir文件夹名

string字符串

username用户名

groupname组名

regex正则表达式

path路径

device设备名

partition分区名

IP IP地址

domain域名

ID远程用户ID

host主机名,可以为IP地址或者域名

var变量名

value变量值

命令帮助

$man command

查询命令command的说明文档

$man -k keyword

查询关键字

$info command

更加详细的说明文档

$whatis command

简要说明

$which command

commandbinary文件所在路径

$whereis command

在搜索路径中的所有command

这里只是以command (binary file) 为例。比如man还可以用于查询系统函数、配置文件等。

用户

$finger username

显示用户username的信息

$who

显示当前登陆用户

$who am I

一个有趣的用法

$write username

向用户发送信息 (EOF结束输入)

$su

成为root用户

$sudo command

root用户身份执行

$passwd

更改密码

SHELL (BASH)

$history

显示在当前shell下命令历史

$alias

显示所有的命令别称

$alias new_command='command'

将命令command别称为new_command

$env

显示所有的环境变量

$export var=value

设置环境变量varvalue

$expr 1 + 1

计算1+1

文件系统

$du -sh dir

文件夹大小, -h 人类可读的单位, -s 只显示摘要

$find . -name filename

从当前路径开始,向下寻找文件filename

$locate string

寻找包含有string的路径

$updatedb

find不同,locate并不是实时查找。你需要更新数据库,以获得最新信息。

$ln -s filename path

为文件filenamepath位置创建软链接

$pwd

显示当前路径

$cd path

更改当前工作路径为path

$cd -

更改当前路径为之前的路径

文件

$touch filename

如果文件不存在,创建一个空白文件;如果文件存在,更新文件读取和修改时间。

$rm filename

删除文件

$cp file1 file2

复制file1file2

$ls -l path

显示文件和文件相关信息

$mkdir dir

创建dir文件夹

$mkdir -p path

递归创建路径path上的所有文件夹

$rmdir dir

删除dir文件夹,dir必须为空文件夹。

$rm -r dir

删除dir文件夹,以及其包含的所有文件

$file filename

文件filename的类型描述

$chown username:groupname filename

更改文件的拥有用会为owner,拥有组为group

$chmod 755 filename

更改文件的权限为755: owner r+w+x, group: r+x, others: r+x

$od -c filename

ASCII字符显示文件

文件显示

$cat filename

显示文件

$cat file1 file2

连接显示file1file2

$head -1 filename

显示文件第一行

$tail -5 filename

显示文件倒数第五行

$diff file1 file2

显示file1file2的差别

$sort filename

对文件中的行排序,并显示

$sort -f filename

排序时,不考虑大小写

$sort -u filename

排序,并去掉重复的行

$uniq filename

显示文件filename中不重复的行 (内容相同,但不相邻的行,不算做重复)

$wc filename

统计文件中的字符、词和行数

$wc -l filename

统计文件中的行数

文本

$echo string

显示string

$echo string | cut -c5-7

截取文本的第5到第7

$echo string | grep regex

显示包含正则表达式regex的行

$echo string | grep -o regex

显示符合正则regrex的子字符串

时间与日期

$date

当前日期时间

$date +"%Y-%m-%d_%T"

YYYY-MM-DD_HH:MM:SS的格式显示日期时间 (格式可参考$man date)

$date --date="1999-01-03 05:30:00" 100 days

显示从1900-01-03 05:30:00向后100天的日期时间

$sleep 300

休眠300

进程

$top

显示进程信息,并实时更新

$ps

显示当前shell下的进程

$ps -lu username

显示用户username的进程

$ps -ajx

以比较完整的格式显示所有的进程

$kill PID

杀死PID进程 (PIDProcess ID)

$kill %job

杀死job工作 (jobjob number)

$lsof -u username

用户username的进程所打开的文件

$dmesg

显示系统日志

$time a.out

测试a.out的运行时间

硬件

$uname -a

显示系统信息

$df -lh

显示所有硬盘的使用状况

$mount

显示所有的硬盘分区挂载

$mount partition path

挂在partition到路径path

$umount partition

卸载partition

$sudo fdisk -l

显示所有的分区

$sudo fdisk device

device(比如/dev/sdc)创建分区表。进入后选择n, p, w

$sudo mkfs -t ext3 partition

格式化分区patition(比如/dev/sdc1)

修改/etc/fstab,以自动挂载分区。增加行:

/dev/sdc1 path(mount point) ext3 defaults 0 0

$arch

显示架构

$cat /proc/cpuinfo

显示CPU信息

$cat /proc/meminfo

显示内存信息

$free

显示内存使用状况

$pagesize

显示内存page大小(以KByte为单位)

网络

$ifconfig

显示网络接口以及相应的IP地址。ifconfig可用于设置网络接口

$ifup eth0

运行eth0接口

$ifdown eth0

关闭eth0接口

$iwconfig

显示无线网络接口

$route

显示路由表。route还可以用于修改路由表

$netstat

显示当前的网络连接状态

$ping IP

发送ping包到地址IP

$traceroute IP

探测前往地址IP的路由路径

$dhclient

DHCP主机发送DHCP请求,以获得IP地址以及其他设置信息。

$host domain

DNS查询,寻找域名domain对应的IP

$host IP

反向DNS查询

$wget url

使用wget下载url指向的资源

$wget -m url

镜像下载

SSH登陆与文件传输

$ssh ID@host

ssh登陆远程服务器hostID为用户名。

$sftp ID@host

登陆服务器hostID为用户名。sftp登陆后,可以使用下面的命令进一步操作:

get filename # 下载文件

put filename # 上传文件

ls # 列出host上当前路径的所有文件

cd # host上更改当前路径

lls # 列出本地主机上当前路径的所有文件

lcd # 在本地主机更改当前路径

$scp localpath ID@host:path

将本地localpath指向的文件上传到远程主机的path路径

$scp -r ID@site:path localpath

ssh协议,遍历下载path路径下的整个文件系统,到本地的localpath

压缩与归档

$zip file.zip file1 file2

file1file2压缩到file.zip

$unzip file.zip

解压缩file.zip

$gzip -c filename > file.gz

将文件filename压缩到file.gz

$gunzip file.gz

解压缩file.gz文件

$tar -cf file.tar file1 file2

创建tar归档

$tar -zcvf file.tar file1 file2

创建tar归档,并压缩

$tar -xf file.tar

释放tar归档

$tar -zxf file.tar.gz

解压并释放tar归档

打印

$lpr filename

打印文件

$lpstat

显示所有打印机的状态

 

http://www.cnblogs.com/lizhenghn/p/3682014.html

 

本文章记录我在linux系统下常用或有用的系统级命令,包括软硬件查看、修改命令,有CPU、内存、硬盘、网络、系统管理等命令。但本文不打算介绍生僻命令,也不介绍各个linux发行版下的特有命令,且以后会持续更新。

说明,我是在一个Centos 6.4 64位的虚拟机系统进行测试。本文介绍的命令都会在此Centos下运行验证(也有部分命令会在我的suse/ubuntu系统里测试的,会做特明说明),但运行结果就不再列出了。

硬件篇

·         CPU相关

lscpu                   #查看的是cpu的统计信息.

cat /proc/cpuinfo       #查看CPU信息详细信息,如每个CPU的型号,主频等

·         内存相关

free -m                 #概要查看内存情况  这里的单位是MB

cat /proc/meminfo       #查看内存详细信息

·         磁盘相关

lsblk                   #查看硬盘和分区分布,显示很直观

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

cat /proc/partitions    #查看硬盘和分区

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

·         网卡相关

lspci | grep -i 'eth'   #查看网卡硬件信息

ifconfig -a             #查看系统的所有网络接口

ethtool eth0            #如果要查看某个网络接口的详细信息,例如eth0的详细参数和指标

软件篇

·         内核相关

uname -a                #查看版本当前操作系统内核信息)

cat /proc/version       #查看当前操作系统版本信息

cat /etc/issue          #查看版本当前操作系统发行版信息

cat /etc/redhat-release #同上

cat /etc/SuSE-release   #suse系统下才可使用

lsb_release -a          #用来查看linux兼容性的发行版信息

lsmod                   #列出加载的内核模块

·         网络

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

iptables -L             #查看防火墙设置

service iptables status #查看防火墙状态

service iptables stop   #关闭防火墙

route -n                #查看路由表

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

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

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

netstat -at             #列出所有tcp端口

netstat -au             #列出所有udp端口

netstat -lt             #只列出所有监听tcp端口

·         系统管理

top                     #查看系统所有进程的详细信息,比如CPU、内存等,信息很多!

df -lh                  #查看硬盘大小及使用率

mount                   #挂接远程目录、NFS、本地共享目录到linux

hostname                #查看/修改计算机名

w                       #查看活动用户

id                      #查看指定用户信息

last                    #查看用户登录日志

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

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

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

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

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

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

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

/sbin/chkconfig --list  #查看系统自动启动列表

/sbin/chkconfig –add mysql #MySQL添加到系统的启动服务组里面

·         文件相关

ls -lht                 #列出一个文件夹下所有文件及大小、访问权限

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

du -lh <dir>            #查看指定目录及各文件的大小

ln -s                   #建立软链接

·         进程相关

pstree -p pid           #查看一个进程下的所有线程

pstree  -a              #显示所有进程的所有详细信息,遇到相同的进程名可以压缩显示。

ps -ef                  #查看所有进程

kill -9 pid             #杀死进程

kill all test           #杀死进程

kill -9 `pgrep test`    #杀死进程

./test.sh &             #使程序在后台运行

nohup ./test.sh &       #使程序在后台运行

·         压缩解压缩

zip -r dir.zipdirfile  #将目录dir、文件file等压缩到zip,

zip -re dir.zipdirfile #创建zip包,且加密

unzipdir.zip            #解压

tar -zcvf dir.tar.gz dirfile    #将目录dir、文件file等压缩到tar

tar -xf dir.tar.gz       #解压

·         screen命令

screen命令组最大的好处就是当你的shell退出或关闭后,你运行的服务不会关系,也就是说,我们可以在screen里开启一组服务,且不受终端断开的影响。

screen -S test          #创建一个名字为testscreen

screen -r test          #打开名字为testscreen

screen -r pid           #打开进程号为pidscreen

screen -ls              #列出所有的screen

ctrl + a,d              #当在一个screen时,退出screen

ctrl + a,n              #当在一个screen时,切换到下一个窗口

ctrl + a,c              #当在一个screen时,创建一个新的窗口

·         scp命令

scp local_file remote_username@remote_ip:remote_dir    #拷贝本地文件到远程机器上

scp -r local_dir remote_username@remote_ip:remote_dir  #拷贝本地整个目录到远程机器上

·         软件包安装管理命令

假设你想要安装的软件包叫做app,注意,这里的命令通常需要sudo或者root权限。

//centos系统、redhat系统

rpm -qa | grep app      #查找本机是否安装了app

rpm -ivh app.rpm        #假设你有apprpm包,这样直接安装

sudoyuminstall app    #否则就在线安装

yum update app          #更新app

rpm -e app              #删除已安装的app

//suseopensuse系统

zypper search app       #查找本机是否安装了app

zypper install app      #安装

zypper update app       #更新

zypper remove app       #删除

zypper lr               #列出所有已定义的安装源。

zypper    ar            #添加新安装源。

zypper    rr            #删除指定的安装源

zypper    mr            #修改指定的安装源

//ubuntu系统

apt-get install app     #安装

apt-get update app      #更新

apt-get remove app      #删除   

apt-cache search app    #搜索软件包

dpkg -i app.deb         #假设你有appdeb包,这样直接安装

请关注,后续随着使用的深入还会持续更新。