Linux操作命令:http://linux.chinaitlab.com/special/linuxcom/
一、常用的Linux命令
切换用户:su
修改密码:passwd
清除屏幕:clear
关闭系统:shutdown -hy 0 (远程操作时慎用!)
重启系统:shutdown -ry 0 或者 reboot eg:shutdown -h now 立刻关机
pwd 显示当前目录
cd / 进入根目录
cd .. 进入上一层目录
ls 显示目录内容
mkdir 创建目录
rmdir 删除目录
rm -r 递归删除目录
pwd 看路径
ls 看内容
ps -x 看进程
kill -9 XXX 停止进程
tail -f XXX 查看文件
rm -rm XXX 删除路径下得所有文件
cp 拷贝文件
tar -b 1 -cvf a.tar * 打成tar包
unzip 解压
显示当前所有登录用户:who
显示和设置当前系统时间:date
修改系统时间:date -s '11:00:00 2012-05-30'
报告磁盘剩余空间:df
显示主机名:hostname
显示主机名、操作系统版本:uname
cat 连续显示文本 eg: cat a.txtb.txt>c.txt 将a、b文件合并为c文件
more 分页显示文本文件
tail 显示文件尾部 eg:tail -f a.log
cat a.log grep -e "test" | wc -l 总结a.log中含test的行数
cp 源目录 目的目录 拷贝文件
mv 源目录 目的目录 移动文件
chmod [-R] 绝对权限值 需改变的文件名或目录名
chown [-R] 新所有者.新用户组 需改变的文件名或目录名
二、
1、 查看磁盘空间 df、 du
如:df -lh
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
-T 打印文件系统类型。
-h 以友好格式显示数值。
-H 也是以友好方式显示数值,但1K是以1000计算的,而不是1024。
-l 只显示本地文件系统。
-a 显示全部文件系统。
-g 以GB为单位进行查看。
du 查看某一文件所占的空间
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
du -a [目录名] 目录内每个文件的大小
du -s [目录名] 目录总体大小
du [目录名] 各子目录的大小
-g以GB为单位
-m以MB为单位
2、查看内存 free,top
如 free -m
3、文件操作
复制 cp
示例:
将文件file1复制成文件file2
cp file1 file2
移动 mv
1.作用
mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令等同于DOS系统下的ren和move命令的组合。它的使用权限是所有用户。
2.格式
mv [options] 源文件或目录目标文件或目录
3.[options]主要参数
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
4.第二个参数
当第二个参数类型是文件时,mv命令完成文件重命名,它将所给的源文件或目录重命名为给定的目标文件名。
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
5.应用实例
(1)将/usr/udt中的所有文件移到当前目录(用”.”表示)中:
$ mv /usr/udt/* .
(2)将文件test.txt重命名为wbk.txt:
$ mv test.txt wbk.txt
移除 rm
用户可以用rm命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。
rm命令的一般形式为:
rm [选项] 文件…
如果没有使用- r选项,则rm不会删除目录。
该命令的各选项含义如下:
- f 忽略不存在的文件,从不给出提示。
- r 指示rm将参数中列出的全部目录和子目录均递归地删除。
- i 进行交互式删除。
使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。了防止这种情况的发生,可以使用i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件则不会删除。
三、开发中常用的几个linux命令
文件查找
find . -name db2jcc.jar
网卡抓包
tcpdump -i eth5 -vv -s 0 -w sgm.cap
tcpdump -i any port 80 and host 128.20.8.190 -s 0 -w /home/test.cap -vv
tcpdump -i any port 80 -s 0 -w ui_to_ups.cap -vv
lsof -i:3306|wc -l
列出3306打开的文件总数
lsof -i:9191 谁占用了9191端口
查看所有进程的文件打开数
lsof |wc -l
查看某个进程打开的文件数
lsof -p pid |wc -l
统计一个文件有多少行
wc -l test.txt
四、[linux]常用linux命令
man,info
首先介绍最重要的man和info命令;
linux的使用文档的强大;我们所有的命令以及使用方法都可以通过:man xxx; info xxx 的方式查看;
所以linux的命令意会即可,不必全部记忆;经常使用man 或info 命令查看命令,也是一种学习方式;
cat , more , vi ,less ,head ,tail
都是查看文件的命令;
我经常用的less 命令,tail 命令,vim命令;
less 可以向上(k快捷键),也可以向下( j 快捷键)浏览;
tail -f file.name
vim file.name ( i,o; gg; G; ctrl+f ;ctrl +b; :wq: q! ) :s/aaa/bbb/g(全文替换aaa为bbb); 等等
ps 命令
查看进程数,ps aux | grep java或者 ps aux | httpd
- a表示所有
- u表示以用户分组的格式
- x显示所有程序
chmod 命令
修改文件权限的命令;
大家都知道linux文件的权限分三部分:
所属用户权限:文件所属用户(user); 用户所属组(group);其他用户(other);
权限分为: 可读(r) ; 可写(w) ,可执行 ;
添加权限可以通过以下方式:
- u+x可执行
- u+w可写
- u+r可读
也可以通过二进制形式:
rwx-x-x(从左到右,三位代表一个权限组:user,group,other) ;每一位用二进制运算后的权限 111001001;
所以给一个文件加上所有权限的命令: chmod 777 fineName;
ssh命令
连接远程客户端, ssh levit@10.20.56.22
find命令
查询文件, find . -name fileName (当前目录下查询文件fileName)
查询出文件后,作为参数输出到下一个命令去执行: find . -name fileName | xargs cmd 比如: find .-name webx.log | xargs grep 'Error'
locate命令
查找文件,比find命令快,这个命令会从updatedb数据库中查找文件;updatedb会后台定时将文件系统索引到updatedb库里,方便用户查找;locatefilename
awk '\{print $1\}' access_log |sort |uniq -c |sort -r |head 命令
查询apache日志,得到访问最多前是十个ip,以及访问次数;
注: awk作为一个脚本语言,很强大; 也是以行为单位的过滤器;
ps , pstree , pidstat
ps -ef | grep xxx (显示xxx进程的信息)
ps -elFL | grep xxx (显示xxx进程的所有线程详细信息)
pidstat 能从cpu,I/O,等各个层面显示进程信息,一个很有用的性能诊断命令
netstat命令
netstat 经常使用,查看本机网络连接情况:netstat -antuw (显示所有tcp;udp连接情况)
netstat -an | grep ESTABLISHED | awk'\{print $5\}' | awk -F: '\{print $1\}' | sort | uniq -c | sort -rn |head (显示已经连接状态的连接最多的前10个foreign address)
mount ,umount
linux中一切皆为文件,linux中有:普通文本文件,块设备文件(硬盘);字符设备文件(键盘,鼠标等);管道(也以文件的形式存在); 等等;
挂载和卸载设备的命令;我们的所有设备文件都在/dev/目录下; 如第一块硬盘 的一个分区sda , 第二块分区sda1; 第二块硬盘为:sdb.... (我们的硬盘设备都是scsi的所以以s开头)
比如挂载一个u盘: mount -t fat /dev/sdb /mnt/upart (将设备/devsdb 挂载在目录/mnt/upart/): 注意要跟所挂设备的格式
卸载一个盘:umount /mnt/upart
如果要开机自动挂载一个设备:需要在次文件里增加要挂载的设备喽 sudo vi /etc/fstab ;
kill 命令
进程是作为计算机发展中最伟大的发明之一,是多道程序计算机的基石;
linux操作系统的中的进程有2个概念:进程和轻量级进程;轻量级进程就是我们所说的线程;一个进程中的线程之间共享内存;基于线程的cpu调度和上下文切换代价比进程小多了。
而且linux创建子进程的算法是基于:写时复制的策略; 也就是在创建一个子进程时要将父进程的所有东西都要复制到子进程中的,但linux创建时并不复制,只有在程序子进程需要修改他自己的数据时,才将父进程的数据复制到子进程空间。因为大部分子进程只是读操作,这样有效加速进程创建时间和有效利用内存;
linux的进程主要结构体为:task_struct这种包含了进程的基本信息,指向内存区域描述符的指针,当前目录,指向文件描述符的指针,所接受的信号等等;
进程的状态:可运行状态(TASK_RUNNING);可中断的等待状态(TASK_INTERRUPTIBLE);不可中断的等待状态(TASK_UNINTERRUPTIBLE);暂停状态(TASK_STOPPED);跟踪状态(TASK_TRACED);
进程间通信手段:信号量,管道,共享内存;
比如我们通常用的kill命令就是给进程发送一个信号,让进程立即响应这个信号:kill -9 pid ;我们可以通过命令:kill -l 命令查看所有的信号;我们通常在控制台上按Ctrl+c就等于kill -9;Ctrl+z等于kill -1 (挂起到后台);我们也可以自定义某个信号的处理程序;
常用的命令也有:bg(后台运行一个进程) ,fg(将后台运行的进程放到前台),jobs(查看后台进程); 注:非常有用的。我们可以灵活的将当前java进程通过Ctrl+z;bg xxx放到后台去;
nohup命令可以将这个进程设置为不接受一些信号量,就是忽略调挂起的信号量;nohup command &
标准输出命令
我们经常写的脚本最后边有 1>path1 2>path2 ;这个是什么意思呢?
我们知道linux每个进程默认都包含三个标准输出:标准输入,标准正确输出,标准错误输出;分别用0,1,2,表示;
五、最惯用的linux命令
一 查看文件夹内文件信息 ls
用法:ls -* name ls –l //查询出详细信息 ls –a //显示所有文件夹,包括隐藏夹 ls –r //文档以相反次序显示, ls –t //按照时间先后顺序列出 另:ll 效果如同ls –l |
二 拷贝文件 cp
cp -* source dest 将一个档案拷贝到另一个档案或拷到另一个目录. -a 尽量复制档案的状态和权限等都原样复制. -r 如果有目录则目录及其子目录文件都原样拷贝 -f 若复制到的地方有同名文件,则先删除在复制. 复制到当前目录就是 . [单点] 复制到上级目录就是 .. [两个点] eg: cp r css css2 //复制 同css到同文件夹下名称为css2 cp tomcat.gif tomcat2.gif //复制tomcat.gif 到当前目录下,名字命名为tomcat2.gif |
三 移动文件或修改文件名 mv
mv -* 源文件或目录 目标文件或目录 -b或--backup 若需覆盖文件,则覆盖前先行备份。 -f或--force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录。 -v或--verbose 执行时显示详细的信息。 例: 修改文件名 mv oldname new name 如: mv application.xml application2.xml //将文件名为application.xml的文件的名称修改为application2.xml |
四 删除文件 rm
rm 删除 -d或--directory 直接把欲删除的目录的硬连接数据删成0,删除该目录 -f或--force 强制删除文件或目录。 -i或--interactive 删除既有文件或目录之前先询问用户。 |
四.一 新建文件、新建文件夹
mkdir flodname 新建文件夹 mkdir test //在当前目录下新建一个名称为test的文件夹 vi filename 新建一个文件 然后选择 i 即可插入数据, 然后即可输入数据[也可以不插入,退出时保存即可,即为新建一个空的文件,如果插入数据则退出时把保存则为新建一个有数据的文件]. 输入结束以后 选择 Esc 键,然后: 键,输入q为退出.wq为保存并推出,q! 为 不保存退出.[此时则为没有新建文件成功.] |
五 tar打包及解包 以及[压缩,解压]
tar -zcvf /App/back/project20100101.tar.gz /App/web/project/ 常用名称 -c或--create 建立新的备份文件。 -f<备份文件>或--file=<备份文件> 指定备份文件。 -v或--verbose 显示指令执行过程。 -x或--extract或--get 从备份文件中还原文件。 -r或--append 新增文件到已存在的备份文件的结尾部分。 -z或--gzip或--ungzip 通过gzip指令处理备份文件。 只列出了常用的,不常用的请到blog查看 01-.tar格式 解包:[*******]$ tar xvf FileName.tar 打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!) 实例: 打包: tar cvf css2back.tar css2 //将本目录下css2打包成css2back.tar 的包. 实例: 查看打包内容: tar xvf css2back.tar 实例: 将上级目录的tar解压到当前目录 tar xvf ../css2back.tar 如果要将某文件解压到某目录下,则转到该目录下,然后解压文件即可.解压的时候是默认解压到所在目录的. 03-.tar.gz格式 解压:[*******]$ tar zxvf FileName.tar.gz 压缩:[*******]$ tar zcvf FileName.tar.gz DirName 实例: 压缩为gz: tar czvf css2back2.tar.gz css2 实例: 查看压缩包内容: tar xzvf usr.tar.gz 12-.zip格式 解压:[*******]$ unzip FileName.zip 压缩:[*******]$ zip FileName.zip DirName |
六 查看文件 cat tail 等
cat 由第一行开始显示档案内容 nl 显示的时候,顺道输出 行号! more和less 翻页:用more的时候 不能回退翻页,但是用less的的时候可以回退翻页。 回车 键是往下查看一行,空格 键是翻一屏,less的时候 b 键是回退翻一屏。 例: 查看最后几行 tail –fn 100 file //查看问文件最后的100行. f是指自动刷新n是多少行 例: more 分页显示 cat cat applicationContext.xml |more 例: 通过翻页来显示,并且查询: cat applicationContext.xml |less 然后输入左斜杠 “/”,然后输入需要查询的字符串即可,实现文字查询. nl applicationcontext.xml //查看文件并显示行号. 同样的 nl 也可以跟上more或less;即nl application.xml |more; od application.xml 查看二进制. 同样的 od 也可以跟上more或less;即nl application.xml |more; |
七 grep 搜索文件的内容
ps(process status) v -v或--revert-match 反转查找。查询出相反的. 可以搭配正则表达式. 例: ps -ef|grep tomcat //搜索查询进程中有tomcat的进程. 例: ps -ef|grep -v tomcat //搜索查询进程中没有tomcat的进程. 例: cat WEB-INF/bpplication.xml | grep org //查询出该文件中 包含org 的行 搭配正则表达式: 例: --过滤包含指定字符串的 grep "\<124\>" GATEWAY.txt > GATEWAY-124.txt --过滤不包含指定字符串的,只需要加上-v 选项 grep -v "\<124\>" GATEWAY.txt > GATEWAY-124.txt |
八 查看进程 ps
a 显示现行终端机下的所有程序,包括其他用户的程序。 e 列出程序时,显示每个程序所使用的环境变量。 -f 显示UID,PPIP,C与STIME栏位 u 以用户为主的格式来显示程序状况。 x 显示所有程序,不以终端机来区分。 例: ps -ef|grep tomcat //搜索查询进程中有tomcat的进程. ps auxwww |grep tomcat |
九 杀死进程 kill
kill 进程编号(pid) |
十 显示当前工作目录、用户情况等
pwd(print working directory): 显示当前工作目录 w: 执行这项指令可得知目前登入系统的用户有那些人,以及他们正在执行的程序 -l 使用详细格式列表,此为预设值。 who: who am I, 显示目前登入系统的用户信息. -m 它的效果同who am i显示出自己在系统中的用户名,登录终端,登录时间 -r 可以查看当前系统的运行级别 -q 只显示用户的登录帐号和登录用户的数量 last : last 可以查看上次自己登录的时间,当然root可以查看其他用户登录的情况。 |
十一 查找搜索 find
find : 查找文件或目录 [文件时间,文件名称,文件大小,排序] find -name Org* // 根据名称查询 |
十二 vi常用编辑.
vi 文件名 然后选择 i,则进入编辑. 编辑完以后: Esc键 然后 : 键,然后wq 键则保存退出; !q 键则 不保存退出. |
十三: 创建文件
直接 vi test.txt 就可以,然后编辑然后保存就可以直接创建一个文件. |
十四 创建文件夹
mk dir css3 创建文件夹css3 |
十五 赋给权限
mkdir /home/u1 创建文件夹/home/u1 chown oracle /home/u1 表示改变目录所有者为oracle账户; chgrp dba /home/u1 改变/home/u1目录为dba所有; chmod 755 /home/u1 表示oracle账户对/home/u1目录有755权限; rmdir /home/u1 表示删除/home/u1目录 hostname可以查看linux的计算机名; whoami可以查看当前用户; pwd显示当前路径; df查看系统的硬件信息 ls -lrt l表示显示详细列表,-t表示按时间排序,-r反向排序 cat orcl_ora_3436.trc|grep bucket 以下查看相关文件内容: more /etc/oratab cat /etc/passwd cat /etc/group |
十六 查看帮助
查看帮助: man --help --help如果是中文版的linux 还有中文提示.更符合提示习惯. 例: man rm cp --help |
Alias ll cl
|