linux 常用到的命令(持续更新)

getconf LONG_BIT #查看系统位数

ls  -al  #显示隐藏的文件,linux下在文件加"."隐藏文件。

sysctl  -l  #是一个允许您改变正在运行中的Linux系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。基于这点,sysctl(8) 提供两个功能:读取和修改系统设置。

sysctl -A | grep keep  #查看linux tcp的保活定时器

fuser –k /path/to/your/filename  #fuser通常被用在诊断系统的“resource busy”问题,通常是在你希望umount指定的挂载点得时候遇到。 如果你希望kill所有正在使用某一指定的file, file system or sockets的进程的时候,你可以使用-k option。 

lynx -mime_header -auth=username:password "http://members.3322.net/dyndns/update?system=dyndns&hostname=domainname.3322.org"  #3322动态域名绑定

make clean  #清除编译过程中产生的临时文件

make distclean #清除配置过程中产生的文件

man  #Linux丰富的帮助手册,可以查看命令,系统调用API函数的帮助

ping  www.inesa-etv.com #PING www.inesa-etv.com (120.90.0.50): 解析出网络IP地址为120.90.0.51。

watch -n 1 "ifconfig eth0" #ifconfig 本身已经提供了某个接口当前的实时流量信息,通过watch命令可以做到动态更新

watch more /proc/net/dev  #linux下查看网络流量

traceroute #跟踪数据包到达网络主机所经过的路由工具;

route  #命令查看 Linux 内核路由表 UG是何意?这里面有U,有G, 有的可能还有H

    #U的意思是当前的路由是运行的、有效的
    #G的意思是通过gateway连接的,因为有一种连接时可以直接连接的,但是我们现在一般不存在,除非自己组建的网络
    #H的意思是指对某一个特定的机器的路由

dmesg |grep mmc #获取内核mmc的打印信息

lsmod #显示已载入系统的模块

lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more 

      #131 24204 
  #57 24244  
  #57 24231  
  #56 24264

  #其中第一列是打开的文件句柄数量,第二列是进程号。得到进程号后,我们可以通过ps命令得到进程的详细内容。

lsof -p pid   #看到某个进程开了哪些句柄

lsof -p pid |wc -l  #某个进程开了几个句柄

lsof  |wc -l #查看打开多少文件句柄

lsof path/filename #某个目录 /文件被什么进程占用了,显示已打开该目录或文件的所有进程信息

ps -aef|grep 24204 #mysql  24204 24162 99 16:15 ?    00:24:25 /usr/sbin/mysqld

cat(more) /proc/sys/fs/file-max  #查看系统总限制 命令

cat(more) /proc/sys/fs/file-nr  #查看整个系统目前使用的文件句柄数量命令

dhwclock --show  #显示硬件时钟时间
hwclock --hctosys  #硬件时钟与系统时间同步
hwclock --systohc  #系统时间与硬件时钟同步

date; ifconfig eth1 #针对某个Interface的网络流量可以通过比较两个时间网络接口的RX和TX数据来获得

fuser -k -SIGHUP /root/install.log #只是挂起进程,那么发送HUP信号就可以了

fuser - k  /usr/sbin/thttpd  #杀死所有的正在访问指定文件(/usr/sbin/thttpd )的进程, 它发送信号:SIGKILL杀死的进程

lsof |grep /media/sda1/   #查找使用这个文件的进程和命令,linux下一切皆文件, /media/sda1/硬盘挂载的节点,umount的时候提示device is busy, 查看使用的进程,然后杀掉。

date -s "2007-08-03 14:15:00" #ubuntu设置时间日期

mlabel i: newLabelName  #Fat16/Fat32格式 使用命令修改分区卷标, drive i: file="/dev/sda2" //里面的”/devsda2”应根据实际情况更改为你要改的盘, mcd i: 更改命令提示符路径到”i:”盘:, mlabel -s i: 查看”i:”当前的卷标.

ntfslabel /dev/sda1 newLabelName  #NTFS格式 使用命令修改分区卷标

e2label /dev/sda1 newLabelName   #ext2/ext3格式 使用内置命令修改分区卷标  e2lable /dev/sda1 查看卷标

wc -c filename   #显示一个文件的字节数
wc -m filename     #显示一个文件的字符数
wc -l filename  #显示一个文件的行数
wc -L filename  #显示一个文件中的最长行的长度
wc -w filename  #显示一个文件的字数

cat /proc/2506/maps  #使用进程maps文件深入分析, 2506是ps的时候可以看到的进程的进程号PID

flash_eraseall /dev/mtd3    #擦除falsh分区3

dd if=/tmp/cramfs of=/dev/mtdblock3 bs=512  #用dd命令烧写cramfs文件系统

flash_eraseall /dev/mtd4  #擦除falsh分区4

nandwrite -a -o /dev/mtd4 /tmp/yaffs  #用nandwrite命令烧写yaffs文件系统; 注意:如果同时烧写cramfs和yaffs,可能要先烧写yaffs,再烧写cramfs,否则可能会出现对齐错误。

lsusb   #查看系统中的USB设备 |主控制器号|设备号|设备ID|

demsg  #从内核的log buffer中获取信息并将它们打印出来。

netstat -nlp  #查看网络连接情况 -n -l - p

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

od -c hello         #通过指定该命令的不同选项可以以十进制、八进制、十六进制和ASCII码来显示文件

hexdump -C myfile    #以16进制查看文件

ctrl + shift + alt + F1   #ubuntu切换到终端模式

Alt+F7    #ubuntu切换到图形界面

touch -d "2010-05-31 08:10:30" xxx.doc  #同时修改文件的修改时间和访问时间

touch -m -d "2010-05-31 08:10:30" xxx.doc #只修改文件的修改时间

touch -a -d "2010-05-31 08:10:30" xxx.doc  #只修改文件的访问时间

file xxx.ko  #查看xxx.ko是不是编译的属性(arm,x86...)

touch xxx   #创建xxx文件

ifconfig ethx up   #打开网卡x

ifconfig ethx down  #关闭网卡x

echo 1 > xxx(file)   #写到文件中(> 重定向)

tar -zcvf  rootfs.tar.gz  *    #压缩成*.tar.gz格式

tar -jcvf rootfs.tar.gz2  *    #压缩成*.tar.gz2格式

tar -jxvf xxxx.tar.bz2    #解压.tar.bz2格式的压缩包

xz -d ***.tar.xz  tar -xvf  ***.tar  #解压***.tar.xz文件

grep -r TSLIB_QWS_MOUSE_PROTO /  #在整个根目录下查找字符串TSLIB_QWS_MOUSE_PROTO 区分大小写

grep -ir hello .    #在当前所有目录下文件中查找hello,不区分大小写

unrar x *.rar     #x参数 是解压到一个文件里

unrar e *.rar  #e参数  是把所有文件解压到当前的目录下

cat /proc/meminfo  #机器的内存使用信息

sudo -s -H  或者 su   #输入登陆密码,进入root。 exit、logout或者ctrl+D(快捷键)退出root。

fdisk #fdisk 是一款强大的磁盘操作工具,来自util-linux软件包,我们在这里只说他如何查看磁盘分区表及分区结构;参数 -l ,通过-l 参数,能获得机器中所有的硬盘的分区情况

free -m  #查看内存使用情况 free 查看内寸

cat /proc/pid/maps  #pid为进程号,显示当前进程所占用的虚拟地址。

cat /proc/pid/statm  #进程所占用的内存

ll -h /proc/kcore #查看/proc/kcore文件的大小(内存镜像)

top    #top 命令来查看 CPU 使用状况

ipcs -q   #显示消息队列分配的情况

ipcs -s   #显示信号量

ipcs -m   #只显示共享内寸

mkimage -A arm -O linux -T kernel -C none -a -e -n -d zImage uImage  #生成uImage(u-boot专用镜像文件)

grep -qe 'nfs\|smbfs\|ncp\|coda.*' /proc/mounts   # 文件/proc/mounts 匹配nfs,smbfs或ncp或code,*在正则表达式中表示0个或者多个某字符,.* 只能限制0个或多个任意字符, -q不输出

cat /proc/sys/kernel/threads-max   #Linux支持线程的最大个数

cat /proc/sys/kernel/pid_max   #Linux支持最大的进程ID 默认32768

cat /proc/interrupts    #查看已经使用的中断和IO资源

mount -t debugfs debugfs /xxx   #挂载debugfs文件系统

umount debugfs       #卸载debugfs文件系统

mount -l   #查看挂载的文件系统

uname -r   # 查看内核版本

ulimit     #通过一些参数选项来管理不同种类的系统资源

选项 [options] 含义 例子
-H 设置硬资源限制,一旦设置不能增加。 ulimit – Hs 64;限制硬资源,线程栈大小为 64K。
-S 设置软资源限制,设置后可以增加,但是不能超过硬资源设置。 ulimit – Sn 32;限制软资源,32 个文件描述符。
-a 显示当前所有的 limit 信息。 ulimit – a;显示当前所有的 limit 信息。
-c 最大的 core 文件的大小, 以 blocks 为单位。 ulimit – c unlimited; 对生成的 core 文件的大小不进行限制。
-d 进程最大的数据段的大小,以 Kbytes 为单位。 ulimit -d unlimited;对进程的数据段大小不进行限制。
-f 进程可以创建文件的最大值,以 blocks 为单位。 ulimit – f 2048;限制进程可以创建的最大文件大小为 2048 blocks。
-l 最大可加锁内存大小,以 Kbytes 为单位。 ulimit – l 32;限制最大可加锁内存大小为 32 Kbytes。
-m 最大内存大小,以 Kbytes 为单位。 ulimit – m unlimited;对最大内存不进行限制。
-n 可以打开最大文件描述符的数量。 ulimit – n 128;限制最大可以使用 128 个文件描述符。
-p 管道缓冲区的大小,以 Kbytes 为单位。 ulimit – p 512;限制管道缓冲区的大小为 512 Kbytes。
-s 线程栈大小,以 Kbytes 为单位。 ulimit – s 512;限制线程栈的大小为 512 Kbytes。
-t 最大的 CPU 占用时间,以秒为单位。 ulimit – t unlimited;对最大的 CPU 占用时间不进行限制。
-u 用户最大可用的进程数。 ulimit – u 64;限制用户最多可以使用 64 个进程。
-v 进程最大可用的虚拟内存,以 Kbytes 为单位。 ulimit – v 200000;限制最大可用的虚拟内存为 200000 Kbytes。

ulimit -HSn 4096 #H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最后。

ulimit -n  #查看Linux系统默认的最大文件句柄数,系统默认是1024

posted on 2013-04-26 09:48  CSlunatic  阅读(750)  评论(0编辑  收藏  举报

导航