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