linux命令

22,查看硬件:

#uname -a
#lshw 察看硬件信息(要安装)
#cat /etc/issue
#cat /proc/cpuinfo
#lsb_release -a 查看Ubuntu版本
#CPU lscpu cat /proc/cpuinfo  

#内存 cat /proc/meminfo  

#IO端口 cat /proc/ioports  

#交换分区 cat /proc/swaps  

#中断信息 cat /proc/interrupts  

#磁盘分区 fdisk -l cat /proc/partitions  

#磁盘参数 hdparm -i /dev/sda  

#磁盘分区信息 df -h  

#USB lsusb cat /proc/bus/usb/devices  

#输入设备 cat /proc/bus/input/devices 

#PCI设备 lspci cat /proc/bus/pci/devices  

#系统负载 cat /proc/loadavg  

#查看开机检查的硬件,可以使用grep过虑:eth,cpu,mem,pci,usb,vga,sda…… dmesg cat /var/log/demsg  

#报告虚拟内存统计信息 vmstat  

#读取系统DMI表来显示硬件和BIOS信息。 dmidecode  

#当前加载的驱动 lsmod  

#查看系统负载 uptime

硬盘测速sudo fdisk -l sudo hdparm -Tt /dev/sdb
这个命令还可以把硬盘休眠sudo hdparm -Y /dev/sdb


10,删除巨量文件
find 0*.php|xargs rm


14,查找文件
find . -name "*.conf" find . -size +1000000c #文件大于1M


16,批量改名
把 wort* 文件加一个前缀 abc_
for files in `ls wort*` do mv $files `echo abc_${files}` done

 


#sof | grep deleted 找出已经被打开,但被删除的文件
#free -m 察看内存使用
#df 察看硬盘使用
#ls -d */ | wc -l 察看当前目录下子目录的个数
#lastlog last 察看最后登录的用户
#export PATH=$PATH:/usr/mysql/bin
#chmod ug+w,o-x file u=属主,g=属组,o=其它用户

apache2ctl -l 查看apache工作模式
pgrep apache2|wc -l 查看当前连接数
ps aux|grep -v grep|awk ‘/apache2/{sum+=$6;n++};END{print sum/n}’ 计算httpd占用内存的平均数

find ./ -name “*.php” | xargs -n 1 sed -i -e ‘s/aaa/bbb/g’ 把aaa换成bbb

 

 

 

 


3,查看进程,资源 top

4,kill进程
kill -9 进程号

5,nohup
我一般用ssh登录linux服务器,如果要用服务器下载某个文件,我就一直要使终端窗口保持打开状态,这是不合理的。好在用nohup帮忙,它可以让程序在后台运行,就算你关掉终端窗口也没关系。例如,我想下载MiCTeX的字体:
nohup wget ftp://user:[email protected]/MiCTeX/MiCTeX-GBKfonts.exe

这个命令运行后,屏幕输出:
ServerName:~ # appending output to nohup.out

鼠标这时一动不动,直到文件下载完毕前你再也不能输出任何命令了。不过在关掉这个窗口后,你可以观察到MiCTeX-GBKfonts.exe的文件大小一直在增加。

如果在命令最后加上&,就可以让这个下载命令彻底在后台运行,但我实验的结果表明,加了&以后,如果关掉终端,进程也同时关掉了:
nohup wget ftp://user:[email protected]/MiCTeX/MiCTeX-GBKfonts.exe &


ps查找进程

说明:显示瞬间行程 (process) 的动态
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程

a 显示现行终端机下的所有程序,包括其他用户的程序。
-A 显示所有程序。
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
-e 此参数的效果和指定”A”参数相同。
e 列出程序时,显示每个程序所使用的环境变量。
f 用ASCII字符显示树状结构,表达程序间的相互关系。
-H 显示树状结构,表示程序间的相互关系。
-N 显示所有的程序,除了执行ps指令终端机下的程序之外。
s 采用程序信号的格式显示程序状况。
S 列出程序时,包括已中断的子程序资料。
-t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
u 以用户为主的格式来显示程序状况。
x 显示所有程序,不以终端机来区分。
最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。

 
au(x) 输出格式 : USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

 


20,用户&用户组
adduser neten groupadd groupdel

查看所有用户
cat /etc/passwd

第一字段:用户名(也被称为登录名);
第二字段:口令;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow 文件中;
第三字段:UID ;
第四字段:GID;
第五字段:用户名全称,这是可选的,可以不设置;
第六字段:用户的家目录所在位置;
第七字段:用户所用SHELL 的类型;
例:
neten:x:1001:1001:neten,,,:/home/neten:/bin/bash

查看用户组
cat /etc/group

第一字段:用户组名称;
第二字段:用户组密码;
第三字段:GID
第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;
例:
neten:x:1001:neten

usermod:
-g initial_group 改变用户的默认用户组。
-G group,[...] 把用户规入很多组, 组名用逗号分开。如果用户现在的用户组不再此列,则将用户由该用户组中移除。
neten默认组为neten.
-aG append group,[...] 不管原来用户属于多少个组, 再加上一些组.

例:
1, 默认neten属于neten组:
id neten uid=1001(neten) gid=1001(neten) groups=1001(neten)

2, 把用户加入cdrom组:
usermod -G cdrom neten id neten uid=1001(neten) gid=1001(neten) groups=1001(neten), 24(cdrom)

3, 把用户加入www-data组:
usermod -aG www-data neten id neten uid=1001(neten) gid=1001(neten) groups=1001(neten), 24(cdrom), 33(www-data)

4, 再把用户加入mysql组:
usermod -aG mysql neten id neten uid=1001(neten) gid=1001(neten) groups=1001(neten), 24(cdrom), 33(www-data), 125(mysql)

5, 上面三个命令加起来可以用下面一个命令实现:
usermod -G cdrom, www-data, mysql neten

6, 也可以用下面两条命令实现:
usermod -G cdrom neten usermod -aG www-data, mysql neten

7, 要回到原始用户组:
usermod -G neten neten

8, 我现在把neten的原始组换成www-data, 原来的原始组地位就下降了:
usermod -g www-data neten id neten id=1001(neten) gid=1001(neten) groups=33(www-data), 1001(neten)

9, 我再加入一个组:
usermod -aG cdrom neten id neten uid=1001(neten) gid=1001(neten) groups=33(www-data), 1001(neten), 24(cdrom)

10, 变回上一步的样子:
usermod -G neten neten id neten id=1001(neten) gid=1001(neten) groups=33(www-data), 1001(neten)

11, 如果要把neten变回原始组:
usermod -g neten neten id neten id=1001(neten) gid=1001(neten) groups=1001(neten)

这一步和第8步不同, neten本来就是原始组, 现在变回去的话, 那www-data就不会再附加在后面了.

顺便记录一下, 第一个默认sudo用户的id
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),20(dialout),24(cdrom),46(plugdev),109(lpadmin),110(sambashare),111(admin)

21,mount新磁盘
首先找到新磁盘:
sudo fdisk -l Disk /dev/sda: 80.0 GB, 80026361856 bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xff81ff81   Device Boot Start End Blocks Id System /dev/sda1 * 1 9327 74919096 83 Linux /dev/sda2 9328 9729 3229065 5 Extended /dev/sda5 9328 9729 3229033+ 82 Linux swap / Solaris

然后mount它
sudo mount /dev/sda1 /mnt/olddisk

23,mount ftp & iso
sudo apt-get install curlftpfs curlftpfs user:[email protected] ~/ftpfolder/ sudo umount ~/ftpfolder/ sudo mount -o loop R2011a_UNIX_OSX.iso /media/matlab






你可能感兴趣的:(linux命令)