首页 > 代码库 > linux下常用命令备忘

linux下常用命令备忘

转自:Linux 命令集锦

linux下查看监听端口对应的进程

lsof -i:9000

lsof -Pnl +M -i4

 

如果退格键变成了:"^h"。

终端连接unix删除退格键,按住CTL键同时按delete

 

Linux搜索

# find / -name "xxx.conf"

 

查看linux是32位还是64位的命令


#file /sbin/init

#getconf LONG_BIT

#getconf -a

 

在Linux和Windows下都可以用nslookup命令来查询域名的解析结果

 

本地机器访问虚拟机VirtuakBox中的CentOS

VirtuakBox 桥接  CentOS设置静态IP。(子网掩码,网关和本机一致即可)

也可以自动分配IP

注意CentOS网络连接需要区分无线与有线

 

Linux常用命令全集

http://linux.chinaitlab.com/special/linuxcom/

 

Linux 常用C函数

http://net.pku.edu.cn/~yhf/linux_c/

http://man.chinaunix.net/develop/c&c++/linux_c/default.htm


centos 5.4 显示器分辨率设置centos 5.8 显示器分辨率设置

centos在默认安装的时候显示器的分辨率只有800*600和更小的,首先打开系统-管理-显示-硬件-显示器类型:下面会有以下两个默认的选项:generic CRT Display 还有一个为:generic LCD Display 然后朋友们注意下面有个多选的地方显示所有可用的显示器----如果你在下拉的列表里没有发现你的显示器牌子你就要到上面的两个选项里面找的,我的是在generic lcd display左边有个小三角你点一下下面就有设置,我选择的是1024*768 然后确定,然后回到设置的设置的选项卡,有两个选项设置:一个分辨率,和一个色彩浓度,根据你的需要设置一下,然后确定,重启

修改CentOS yum源

 

帮助

#mknod --help

可以查看帮助

 

shell

Linux 的命令 shell 是与操作系统相分离的一层。不同的 shell 环境影响您具备不同的功能,比如可编辑的命令行和历史命令回查等。shell 还决定了脚本中函数的语法。

 

默认的 shell 是每个用户帐号的一个参数。Linux 中典型的默认 shell 是 /bin/bash,不过也可以用其他的 shell。每个 shell 的 man 文档实际上都非常好,都对各种 shell 及其使用进行了详细的说明。仅仅阅读下面的解释是不够的,应该从下面列出的 shell 中选择一个,去查看它的 man 文档。

bash 
bash shell 是 Bourne shell 的一个免费版本,它是最早的 Unix shell,包括许多附加的特点。Bash 有可编辑的命令行,可以回查历史命令,支持 tab 键补齐以使用户避免输入长的文件名。

csh 
C shell 使用的是“类C”语法,借鉴了 Bourne shell 的许多特点,只是内部 shell 命令集有所不同。

ksh 
Korn shell 的语法与 Bourne shell 相同,同时具备了 C shell 的易用特点。许多安装脚本都使用 ksh ,即使您不把它作为您的主 shell,您也应该在系统中安装它。

tcsh 
TC shell 是 C shell 的一个增强版本,与 C shell 完全兼容。

zsh 
Z shell 是 Korn shell 的一个增强版本,具备 bash shell 的许多特色。

Shell 规则

您只需在控制台中执行相应的命令就可以随时切换 shell。只要在文件顶部放置一个井号 (#!) 指向需要的 shell,脚本就可以指定想要运行的 shell。当脚本运行的时候,不管用户所处的 shell 环境是什么,它都会在正确的 shell 环境中运行。下面例子中的这行代码指出脚本需要在 C shell 下运行:

#!/bin/csh

 

 

cd 
使用我们所熟悉的 cd 命令可以在目录间切换。一定注意的是在 Linux 中用的是正斜杠 (/),而不是您所熟悉的反斜杠 (\)。反斜杠也用到了,但只是用来说明命令需要换行继续,这样可以提高比较长的命令的可读性。

ls 
ls 命令用于列出一个目录下的所有文件。可以使用许多不同的开关更改列表的表示形式:

ls -l 以长格式列出文件,包括文件大小、日期和时间、属性
ls -t 对文件以时间排序
ls -S 对文件以大小排序
ls -r 与一个排序开关组合起来使用,逆序排列。 ls -t 将最新的文件显示在列表的顶部。 ls -t 将最新的文件显示在底部。
ls -h 易读格式。使用 k、M、G 等来标识文件的大小,而不是以字节为单位。
ls -a 显示目录中所有的文件,包括隐藏文件

cp 
使用 cp 命令来复制文件。这个命令与 DOS 下的 copy 命令基本一样。基本的开关如下:

cp -R 递归地复制文件;当需要复制整个目录时会用到
cp -f 强制复制并覆盖已有的文件,不询问用户
cp -l 链接文件,而不是复制;见下面的说明

使用复制命令创建链接

用 cp 命令可以创建指向一个文件或者整个文件结构的硬链接。使用 -l 开关来指明操作是链接复制。所有的目录仍作为目录创建,但所有的文件会被设置为硬链接。

cp -lR /data/accounting/payroll /data/management/hr

上面的命令将把整个目录结构及其下面的文件从 /data/accounting/payroll 复制到 /data/management/hr/payroll。目录结构下的所有文件将被设置为硬链接。这样使一个文件在同一个文件系统中可以具备不同的视图。这也是有用的安全技术,使得在不同的目录下对同一文件有不同的访问权限。

mv 
使用 mv 命令来移动和重命名文件。这个命令的工作方式基本上与 DOS 中的 move 命令一样,不过它可以移动整个目录结构及所有文件。

cat 
使用 cat 命令来查看文件的内容。它相当于 DOS 中的 type 命令。它将把文件的内容转储到另一个文件、屏幕或者其他命令。 cat 是concatenate 的简写,还可以将一系列的文件合并为一个大文件。

more 
使用命令 more 可以以分页的方式查看文件。它基本上与 DOS 中的more 命令相同。

less 
less 命令也是用来查看文件,但是它支持上下滚屏以及在文档中进行文本搜索。

vi 
有一些人可能会说 vi 表示“virtually impossible”。它是 Unix 中的一个历史悠久的文本编辑器。 vi 并不真正直观,但是现在几乎所有的类 Unix 环境中都有 vi 。对于 Linux 中安装的版本有一个内置的教程,一旦您熟悉了 vi ,只需几次击键就可以完成不可思议的任务。说实话,没有任何编辑器能够取代 vi 来编辑密码和配置文件。

man 
使用 man 命令来查看命令的文档。man 是 manual 的缩写。几乎每一个命令都有相应的文档。要深入了解 man ,请输入以下命令:

man man

info 
info 命令与 man 命令类似,不过它提供了超链接文本,可以更方便地浏览文档。

 

硬链接和软链接

命令 ln <source> <target> 来创建。 ln 默认创建的是硬链接。使用 -s 开关可以创建符号链接。

 # Create a hard link from MyFile in the current
          

 # directory to /YourDir/MyFile
          

ln MyFile /YourDir
          

                    

 # Create a symbolic (soft) link from MyFile in
          

 # the current directory to /YourDir/YourFile
          

ln -s MyFile /YourDir/Yourfile
        

 

在上面的例子中,MyFile、/YourDir/MyFile 和 /YourDir/Yourfile 会被看成是同一个文件。

---------------------------------------------------

改IP,可以用 netconfig,可惜每次都得输入完整的IP、掩码、网关和DNS。 不如直接 vi /etc/sysconfig/network-scripts/ifcfg-eth0 再 /etc/init.d/network restart 来得快。

改DNS,最快的就是 vi /etc/resolv.conf,不用重启。


重启httpd

# /etc/init.d/httpd restart 

要比 

# service httpd restart

快,因为前者可以补齐而后者不能。

修改系统服务,用chkconfig要比setup方便。

看最新的log,用 tail -f /var/log/xxx.log 比 vi /var/log/xxx.log 方便。 看不清的话就先 clear 再 tail -n 0 -f /var/log/xxx.log。

-----------------------------------------------------

wc命令

 

参数及含义

参数 含义
-c 显示文件的Bytes数(字节数)
-l 将每个文件的行数及文件名输出到屏幕上
-m 将每个文件的字符数及文件名输出到屏幕上,如果当前系统不支持多字节字符其将显示与-c参数相同的结果
-w 将每个文件含有多少个词及文件名输出到屏幕上

举例

Welcome to xiaoxiaozi.com
欢迎来到这里
wc -cwl demo.txt
#2       4      39 demo.txt  顺序依次是 l w c
 

更多参考:http://blog.csdn.net/21aspnet/article/details/7515442

-----------------------------------------------------

fc命令

fc是bash的一个内部命令, 作用是修改命令历史中的命令。man bash然后搜索fc即可看到用法。

顺便总结一下bash命令行历史的用法:

history
命令查看以前用过的命令行列表。
!123
执行命令历史中编号为123的命令。
!cat
执行最后一条以cat开头的命令。
!!
执行上一条命令。
fc
打开编辑器(vim)编辑上一条命令。
fc 123
编辑命令历史中编号为123的命令。
fc 123 130
编辑命令历史中123-130的八条命令,退出后依次执行
fc ls
编辑最后一条以ls开头的命令。
fc -s ls=cat ls
将最后一条以ls开头的命令中的ls替换成cat,然后执行

-----------------------------------------------------

centos 命令行启动与图形启动

编辑/etc/inittab文件

命令行启动

#id:3:initdefault:

图形启动

#id:5:initdefault:

 

centos默认的语言编码是“zh_CN.UTF-8”,这在X-Window桌面环境下的“终端”窗口操作是能正确显示汉字的,但如果是通过SSH或Telnet等方式进行远程管理,就会发现所有的汉字变成乱码了。要解决这个问题,编辑文件 /etc/sysconfig/i18n,将第1句“LANG=”zh_CN.UTF-8″”改为“LANG=”zh_CN.GB18030″”即可。完成后,重新登录,发现所有汉字已经能正常显示,改回英文:

LANG=”en_US.UTF-8″
SYSFONT=”latarcyrheb-sun16″”

-----------------------------------------

更新内核

#yum install kernal

 

安装与卸载

#make && make install

#make clean make uninstall

重启网络

#service network restart

---------------------------

查看proc

#ls  /proc/

 

内存使用信息

#cat /proc/meminfo

#free

 

CPU使用信息

#cat /proc/cpuinfo

 

linux版本

#cat /proc/version

 

硬盘使用

#df

#du  文件大小

#du -sh  /usr    文件大小

 

系统日志

#ls /var/log/

#cat /var/log/messages    系统报错日志  

 #tail /var/log/messages  后N条

 #tail -2  /var/log/messages   

 #head /var/log/messages 前N条

 #head -2  /var/log/messages 

#cat /var/log/boot.log    系统引导过程日志

#cat /var/log/cron    记录守护进程派生子进程

#cat /var/log/dmesg  核心启动日志

#cat /var/log/xferlog  记录FTP会话   #cat /var/log/maillog  邮件系统日志

#cat /var/log/secure    安全信息

#cat /var/log/wtmp    永久记录用户登录事件(二进制文件 无法改)

#last 查看最近登录

#kill   -l  所有信号

----------------------------------------------------------------------

看进程

#ps

#ps a

#ps au

#ps aux   显示后台进程

#ps auxf 进程父子关系

#ps -ef

 

killall -9  httpd

 

查找进程树

#pstree 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

===============

# ls -l  文件名   查看单个文件属性

===============

文件权限

直接运行文件

 

先输入ls -al,可以看到文件夹的所有文件权限如:
 -rw-r--r-- (一共10个参数)
第一个跟参数如果是目录会是d,不然是-,先不管.
2-4参数:属于user
5-7参数:属于group
8-10参数:属于others
接下来就简单了:r==>可读 w==>可写 x==>可执行
               r=4      w=2      x=1
chmod 755代表-rwxr-xr-x

chmod 777代表-rwxrwxrwx

 

加权限 

#chmod 777 文件名

#chmod u+x  文件名

也可以

#chmod 777 文件名.*  这样同一目录相似文件开头的都被加上权限

============================

 

系统

# uname -a               # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb -tv              # 列出所有USB设备
# lsmod                  # 列出加载的内核模块
# env                    # 查看环境变量

资源

# free -m                # 查看内存使用量和交换区使用量
# df -h                  # 查看各分区使用情况
# du -sh <目录名>        # 查看指定目录的大小
# grep MemTotal /proc/meminfo   # 查看内存总量
# grep MemFree /proc/meminfo    # 查看空闲内存量
# uptime                 # 查看系统运行时间、用户数、负载
# cat /proc/loadavg      # 查看系统负载

磁盘和分区

# mount | column -t      # 查看挂接的分区状态
# fdisk -l               # 查看所有分区
# swapon -s              # 查看所有交换分区
# hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE       # 查看启动时IDE设备检测状况

网络

# ifconfig               # 查看所有网络接口的属性
# iptables -L            # 查看防火墙设置
# route -n               # 查看路由表
# netstat -lntp          # 查看所有监听端口
# netstat -antp          # 查看所有已经建立的连接
# netstat -s             # 查看网络统计信息

 

 

用户

# w                      # 查看活动用户
# id <用户名>            # 查看指定用户信息
# last                   # 查看用户登录日志
# cut -d: -f1 /etc/passwd   # 查看系统所有用户
# cut -d: -f1 /etc/group    # 查看系统所有组
# crontab -l             # 查看当前用户的计划任务

服务

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

程序

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

 

============================

安装配置:

‘--prefix‘是最常用的选项。制作出的‘Makefile‘会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部分。举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lisp file被安装到"/opt/gnu/share":

# ./configure --prefix=/opt/gnu

 

yum -y install 包名(支持*) :自动选择y,全自动

yum install 包名(支持*) :手动选择y or n

yum remove 包名(不支持*)

rpm -ivh 包名(支持*):安装rpm包

rpm -e 包名(不支持*):卸载rpm包

=============================

Linux安装缺失

rz: command not found

# yum install lrzsz    

如果yum源没有直接下载到本地

#yum localinstall 文件

下载rpm

#rpm -i 文件

--------------------------------------------

cc: command not found

#yum gcc

 

#yum -y install gcc


说明:-y说明安装直接选择yes

--------------------------------------------

yum 没有g++的问题

 #yum install gcc-c++

==========================

查找

#whereis

#which

=========================

建立目录#mkdir

删除目录#rmdir

------------------

#cp  file1 file2    把file1拷贝到file2

#mv                     mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中

#mv abc         /home/将当前目录下的abc文件夹移动到/home/目录下
--------------- 

删除

#rm   -rf   文件名

删除类似文件名 例如日志

#rm -rf   文件名*

rm -rf event201109*.log    匹配所有 event20110901.log  到 event20110931.log的

或者

rm -f zx-200.22-20090[1-7]*.log

============================

打包压缩

单个文件压缩打包 tar czvf my.tar file1

多个文件压缩打包 tar czvf my.tar file1 file2,...

单个目录压缩打包 tar czvf my.tar dir1

多个目录压缩打包 tar czvf my.tar dir1 dir2

解包至当前目录:tar xzvf my.tar

 

============================

系统历史
#lastlog
#history | more 空格键
================== 
查看磁盘空间的使用情况可以使用
#df -h
,用M和G显示比   df直接显示文件k要好很多
 
ls命令一般用来查看文件的属性列表。
ls -lh 只是显示一般的文件,以点(.)开头的隐藏文件并没有显示出来。试试 ls -la /
#is -lh  文件
#du -sh /root
输出1.2G /root
 
#ls -lh /root
=============================
tail notes要指定从 notes 文件末尾开始读取的行数,输入: 
tail  -n 20 notes 
 
要从第 200 字节开始,每次显示一页 notes 文件,输入: 
tail  -c +200 notes | pg 
 
要跟踪文件的增长,输入: 
tail  -f accounts
这显示 accounts 文件的最后十行。tail 命令继续显示添加到 accounts 文件中的行。显示会一直继续,直到您按下 Ctrl-C 按键顺序来停止。
==============================
增加权限和文件格式转换(不然apache会报没权限执行文件)
#chmod +x   文件
#dos2unix   文件
=============================

 #useradd youname  增加用户名

===========================

#chown -R  yourname:yourname logs/  给php写日志的权限  这个就是在apache里配置的 

===========================

文件查找

#find / -name "mysql*"

 

查看当前目录下文件的个数
#ls -l |grep "^-"|wc -l
查看当前目录下文件的个数,包括子目录里的。
#ls -lR| grep "^-" | wc -l
查看某目录下文件夹(目录)的个数,包括子目录里的。
#ls -lR| grep "^d" | wc -l

----------------------------------------------------------------------------------------------------------------------------------

CTRL + c  中断

CTRL + z  暂停放到后台

CTRL + d  保存退出

 

TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。

#top

 

 按K 杀进程 用15号信号  9号最好用直接干掉

----------------------------------------------------------------------------------------------------------------------------------

grep

要查进程的名字,grep 是管道命令 模糊查找

#ps aux |grep 进程名

更多grep参考:http://blog.csdn.net/21aspnet/article/details/7515327

----------------------------------------------------------------------------------------------------------------------------------

如何查看CPU是多少位,本机输出32

#getconf LONG_BIT

 

linux开机关机命令  

重启命令:

1、reboot

2、shutdown -r now 立刻重启(root用户使用)

3、shutdown -r 10 过10分钟自动重启(root用户使用) 

4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)

如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

关机命令:
1、halt   立刻关机
2、poweroff  立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启

/etc/init.d/network restart

=========================================
netstat -a 查看开启了哪些端口,常用netstat -an 
netstat -n 查看端口的网络连接情况,常用netstat -an 
netstat -v 查看正在进行的工作 
netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况) 
netstat -s 查看正在使用的所有协议使用情况 
nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写

netstat -nlp  命令可以显示当前用户运行的正在监听的网络进程的状态。在正常情况下,在显示结果的PID/Program name一列显示了进程的进程号和程序的名称。

--------------------------------------------

开机自动联网

 

安装flash

1、下载Flash控件

请到官方下载linux 与tar.gz后辍的格式,URL:http://get.adobe.com/cn/flashplayer/completion/?installer=Flash_Player_10.1_for_Linux_(.tar.gz)

2、解压

将下载的文件“install_flash_player_10_linux.tar.gz”,比如下载 存放在/home/jecks/Desktop/下 ;

# cd /home/jecks/Desktop/
# tar -zxvf install_flash_player_10_linux.tar.gz
# ls libflashplayer.so

解压后得到“libflashplayer.so”,将此文件复制到/usr/lib/mozilla/plugins/目录下;

# cp libflashplayer.so /usr/lib/mozilla/plugins/

chmod 755 /usr/lib64/mozilla/plugins/libflashplayer.so