Linux/Unix 系统中常用命令

本文记录Linux/Unix系统中常用命令,永久更新

转载请表明出处: http://blog.youkuaiyun.com/jiangsq12345/archive/2010/12/29/6105629.aspx

先列几个基本的:


s :  /* 列出当前文件夹下所有文件(不包括隐藏文件*/
cd [文件夹] : /*改变当前路径*/
pwd : /*打印当前路径*/
rm [文件]: /*删除文件*/
touch  [文件]:   /*新建一个文件*/
mv [文件旧路径]  [文件新路径]: /*剪切文件到新路径(也可用于文件重命名)*/
cp [文件原路径]  [复制的文件路径]:/*复制文件到其他路径*/
mkdir [文件夹]:/*新建一个文件夹*/
rmdir [文件夹]: /*删除一个文件夹*/
cat   [文件] :/*打印文件所有内容*/
less [文件]: /*类似cat,但是一次只打印一页*/
more [文件]:/*进入浏览模式*/

ps : /*查看当前进程, 常用 ps -A 或者 ps -aux 查看所有进程*/
kill -9 [进程ID]: /*杀死某个进程*/ 

列下Linux下特殊符合:

.   当前文件夹
..  父文件夹
~   当前用户的home文件夹
*   可以代替任意个数字符(除了.)
?   可以代替一个字符(除.)


chmod 更改文件夹或者文件的权限

    # chmod [权限] [file]

 一般一个文件可以对不同的3个群组(所有者,某一指定群组,其他群组)定义不同权限, 用ls -l[文件]查看. 所有在[权限]处是有3为数字组成

而对每个组都有三种操作类型,即读R,写W,运行X,分别对应 4,2,1

也就是说如果想要一个文件只读,则在权限中代入4, 只写是2,如果读写就是6,所以最大权限是7(读写运行都包括)

 chmod 777 [file]来开启一个文件的所有权限


2apt 包管理器的使用
寻找可用的安装包
 
# apt-cache search [关键字]    在软件源下查找并输出具有关键字的所有软件包
查询pkgs包的依赖包
  
# apt-cache showpkg [pkgs]     打印某软件包所依赖的其他软件包
安装pkgs包
 
# apt-get install [pkgs] 安装指定的单个软件包

 # apt-get build-dep [pkgs]  自动安装指定及其所依赖的所有包 (当缺少软件包是很适合)
卸载包
  
# apt-get remove [pkgs]

  #  apt-get purger [pkgs]    /*同时删除该pkgs的配置文件*/
更新
 
#apt-get upgrade  对电脑中已安装所有软件包升级(如果存在新版本)

 # apt-get update  更新并整理软件源下所提供的软件包
还有类似的dpkg debian包管理工具


3. jobs 管理终端任务命令

    #jobs: 打印该终端的所有任务

    #fg  [任务id]: 将该任务转为前台 (我们将失去对该终端控制权)

    #%  [任务id]: 唤醒该任务

    #bg  [任务id]: 将该任务转为后台 (我们仍然有对终端的控制权)

    #[命令]  &   :在后台运行该命令(要有空格)

    ctrl-z   :刮起当前任务, 可用 %唤醒

    ctrl-c   :杀死当前任务


4.终端已执行命令的记录操作

  #history    打印所有终端已执行的命令

   #!!            重新再执行最后一条命令

   #![编号]    重新再执行编号的那条命令

   #![字符串] 重新再执行由字符串开头的最后一条命令

  ctrl+R      用来查找已执行过的命令

   ctrl+P      查看上条命令,相对于方向键上


5netstat 查看进程占用端口命令

  #netstat -tlnp


6route 添加,删除路由 链条

  # sudo route add default gw 10.0.19.254     添加默认路由
 # sudo route add -netX.X.X.Xnetmask255.255.255.0gwX.X.X.X   添加一条路由链条
  # sudo route del XXXX      删除一条路由链条


7. diff 比较两个文件。

  # diff <file1> <file2>

  或者 cmp 

 # cmp [-clsv] [-i <字符数目>] [--help] [第一个文件] [第二个文件]


8.finger 打印 用户信息   

    # finger [user]


9.id查看用户的UID和GID等信息

    # id [user]


10.Passwd设置密码,Ubuntu安装后root是没有默认的密码的,
  
#sudo passwd root


11.NMap(Network Mapper)是Linux下的网络扫描和嗅探工具包, 可以用来扫描主机上开启的所有端口

  #nmap [IP]
  IP可以是对方的,如果本机就用 localhost


12. telinit改变linux的运行状态

  # telinit [系统运行等级]

    等级可以是 0 1 2 3 4 5 6 等

  • 0 : 关机
  • 1 : 单用户(维修模式
  • 2 à 5 : 视操作系统
     2: 可以是多用户模式但无任何服务
     3: 可以是多用户模式且开启服务
     4, 5:可能启用图形界面
  • 6 : 重启     telinit 等效于 reboot

13. shutdown立即关机, reboot重启,

  # shutdown -h now

  # reboot


14. tunctl  /*创建一个虚拟网卡*/

  #tunctl -u root  /*avoir une interface*/
  #ifconfig tap0 10.0.XXX.1 netmask 255.255.255.0


15. chgrp 更改文件夹或者文件的所在群组 (属组)

        #chgrp [群组] [文件/夹]


16. chown 更改文件夹或者文件的所有者(属主)

          #chown  [-Rv][用户] [文件/夹]


17. mount 挂载系统文件

        mount [option]  [类型] [要被挂载的目的dev文件][挂载的文件夹]

       /etc/fstab:系统启动时自动加载文件的配置

      *挂载window的 fat 分区

          mount -t  vfat  [/dev/had1][挂载文件夹]

      *  用 ntfs-3g 来加载ntfs分区

          mount -t  ntfs-3g  [ /dev/hda1] [挂载文件夹]

      *  挂载 ISO 映象文件

          mount  [ISO映像文件][挂载文件夹]  -t   iso9660  -o loop 

      取消加载

           umount

       查看所有加载信息

            mount

      如果不知道系统文件,介绍个小窍门(以Usb为例): 文件肯定在/dev文件夹下,一般以sdb开头

     所以可以先ls /dev/sdb*列出所有可能文件,然后用fdisk -l [文件名]来查看文件属性,根据给出的信息很容易就能辨认那个自己想要的,然后用mount 加载


18. 几个硬盘管理命令

      * df  查看分区存储情况                             #df

        du 报告磁盘空间使用情况                     #du  [文件]

       dump ext2/3 系统文件的备份                 #dump 0f  [目的文件夹]   [要备份的系统文件]具体请查考http://os.51cto.com/art/201005/200285_1.htm


19. 系统管理内核模块
      
lsmod: 查看内核所有模块

      modinfo [模块]: 查看某个模块信息
      
modprobe: 挂载新模块及新模块相依赖的模块
                      
#modprobe -l : 列出所有已加载或未加载的模块

                          #modprobe [模块] : 加载该模块,能够自动处理 module 载入的相依问题

                      #modprobe  -r [卸载]:卸载模块

       rmmod : 卸载模块

       depmod 创建模块依赖关系的列表

       insmod 挂载模块,但是不会处理相依的模块,建议用 modprobe


 20.mknod - 建立块专用或字符专用文件

         mknod [options] name {bc} major minor
        (option:-p:FIFO型   ;    -c:字符  ;   -b: 块 )

       例子:
      
#mknod  /dev/net/tun  c  10 200


21. nslookupName System Look Up) 用来跟你所在的DNS服务器交流,可以是查看某个域名的信息等

       #nslookup [域名]

     打印该域名对应的信息(IP,端口等)


22. gnome-session-save 用来保存当前系统会话下正在运行的应用程序的快照,并在下次启动时加载恢复该会话

    #gnome-session-save    [--logout]   [--force-logout]   [--logout-dialog]   [--shutdown-dialog]              [--gui]    [--kill [--silent]]


23.WC 用来打印文件的大小(行数,字符,字节等模式)
     #wc [Option]  [文件]

   -c, --bytes
             打印字节数
   -m, --chars
             
打印字符数
    -l, --lines
              
打印行数
    -L, --max-line-length
            
打印最长行的长度
    -w, --words
             
打印单词数


24.last显示目前和过去登录系统的用户相关信息

      #last


25.who 命令显示当前登录的所有用户信息。Who的缺省输出包括用户名、终端类型、登录日期及远程主机

      #who


26.uname 查看linux的内核信息版本

  #uname -a


27.dmesg显示开机信息日志(适用于系统出问题时)
      文件为: /var/log/dmesg
                 var/log/messages可能保存着被dmesg忽略的系统信息

     #dmesg


28.  im-switchX windows设定输入方式
 
#im-switch -s [输入法的引擎

常见输入法的引擎有:ibus Fcitxscim


29.tar用于归档、压缩等

     #tar  [options]   目标路径  [路径名pathname ... ]
-cvf    压缩文件或目录                      #tar  -cvf  [生成文件名]  [被压缩的文件]
-xvf     解压缩文件或目录                                          #tar  -xvf  [目标文件]
-zcvf    压缩文件或,格式tar.gz,tgz      #tar  -zcvf  [生成文件名]  [被压缩的文件]
-zxvf    解压缩文件或,格式tar.gz,tgz        #tar  -zxvf  [目标文件]


30.chkconfig 命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接,重启后生效
语法:
chkconfig --list [name]         显示所有系统服务(包括未运行的)
chkconfig --add name          添加一个服务
chkconfig --del  name          
删除一个服务
chkconfig [--level levels] name <on|off|reset>
更改一个服务相对于系统运行等级的运行模式(开启,关闭等)

 

例如想关闭 任何系统运行等级下的Apache服务,可以用

 #chkconfig --level 123456 apache off

系统重启后生效,如果想立即关闭,请用 

 #sudo /etc/init.d/apache stop


31.nohup不挂断地运行命令不会从任何tty输出。
语法:nohup [命令] [ Arg ... ] [ & ]
描 述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示"and"的符号)到命令的尾部。


32. whois  查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期等)

   #whois [域名]


33.debugfs 用来恢复用rm命令删除的文件

   #debugfs [device]

具体可参考: http://blog.youkuaiyun.com/jiangsq12345/archive/2011/03/10/6235715.aspx


34.find命令搜索系统中的文件

  # find [要搜索的根目录] -name [file]


35. traceroute 列出到某个IP所经过的所有路由器

 # traceroute   [IP或域名] 


36. 为系统添加额外的交换SWAP空间(通过创建交换空间文件)

  # dd if=/dev/zero of=/.swap bs=1024 count=100000

      /*if: 输入的文件(保持不变)        of:需要创建的交换空间文件路径      bs: 每个block的大小(字  节),1024=1Ko        count: block的数量,所以真实大小为 bsXcount 字节  ,此例为1G的交换空间文件*/

  # mkswap  /.swap            /*格式化文件*/

  # swapon /.swap              /* 启用交换空间文件*/

  # more /proc/swaps         /*查看交换空间是否已经成功启用*/

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

  #swapoff  /.swap         /*停用交换空间*/

  如果想以后重启后自动挂载,则编辑/etc/rc.local(不同系统稍微有点差异,记得最后要有exit 0,否则可能无法自动加载),  增加一行:swapon /.swap 即可。

 


37. update-rc.d 是用来更新系统启动项的脚本(类似于chkconfig)。这些脚本的链接位于/etc/rcN.d/目录,对应脚本位于/etc/init.d/目录

  # sudo update-rc.d 服务名 defaults       /*添加服务*/

  # sudo update-rc.d 服务名 remove       /*删除服务*/

  # update-rc.d <basename> start|stop <order> <runlevels>   /* 按指定顺序、在指定运行级别中启动或关闭*/

   实例:update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .
解析:表示在2、3、4、5这五个运行级别中,由小到大,第20个开始运行apachectl;在 0 1 6这3个运行级别中,第20个关闭apachectl。这是合并起来的写法,注意它有2个点号.


38. su 命令:su 命令将用户凭证更改为 root 用户凭证或由Name 参数指定的用户,然后开始一个新的会话。用户名可能包含 DCE 单元规范。这里强调su 后有无 - 是完全不同的性质,这里举2个例子来说明

    # su  root  -c  "pwd"       /*输出当前普通用户的路径  */

   # su  -  root  -c  "pwd"    /*输出root用户的路径,一般为  /root   */

有-,就会加载root用户的所有bash和环境变量,此时相对于是root超级用户执行该命令

无-,仅仅是借用root用户的名义来运行这个命令(所有环境变量等保持不变)

 

39. iptables 命令:Linux下一个强大的防火墙工具

举例:我们在笔记本电脑上建立一个Ad-Hoc无线网时,还没有设置IP转发,数据从手机到达电脑后,就被丢弃了,所以不能访问网络。因此还有最后一步:在
笔记本电脑上设置IP转发,以root身份执行以下几个命令即可:

# echo 1 > /proc/sys/net/ipv4/ip_forward   /*开启模式*/
# iptables -F     /*清除iptables中所有链条*/
# iptables -P INPUT ACCEPT   /*接受所有进入主机的数据包*/
# iptables -P FORWARD ACCEPT  /*接受所有主机内转发的数据包*/
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  /*在POSTROUTING链条末新添加一条,将所有源地址隐藏转换发送到eth0网卡*/ 
# iptables -t nat -L     /*查看nat表的所有规则*/

/*POSTROUTING 这个链就是用来做SNAT(源地址转换)的,当然也包括Masquerade(伪装)*/

Table. Commands

Command-A, --append
Exampleiptables -A INPUT ...
Explanation在所选择的链末添加规则。当源地址或目的地址是以名字而不是ip地址的形式出现时,若这些名字可以被解析为多个地址,则这条规则会和所有可用的地址结合。
Command-D, --delete
Exampleiptables -D INPUT --dport 80 -j DROPiptables -D INPUT 1
Explanation从所选链中删除规则。有两种方法指定要删除的规则:一是把规则完完整整地写出来,再就是指定规则在所选链中的序号(每条链的规则都各自从1被编号)。
Command-R, --replace
Exampleiptables -R INPUT 1 -s 192.168.0.1 -j DROP
Explanation在所选中的链里指定的行上(每条链的规则都各自从1被编号)替换规则。它主要的用处是试验不同的规则。当源地址或目的地址是以名字而不是ip地址的形式出现时,若这些名字可以被解析为多个地址,则这条command会失败。
Command-I, --insert
Exampleiptables -I INPUT 1 --dport 80 -j ACCEPT
Explanation根据给出的规则序号向所选链中插入规则。如果序号为1,规则会被插入链的头部,其实默认序号就是1。
Command-L, --list
Exampleiptables -L INPUT
Explanation显示所选链的所有规则。如果没有指定链,则显示指定表中的所有链。如果什么都没有指定,就显示默认表所有的链。精确输出受其它参数影响,如-n-v等参数,下面会介绍。
Command-F, --flush
Exampleiptables -F INPUT
Explanation清空所选的链。如果没有指定链,则清空指定表中的所有链。如果什么都没有指定,就清空默认表所有的链。当然,也可以一条一条地删,但用这个command会快些。
Command-Z, --zero
Exampleiptables -Z INPUT
Explanation把指定链(如未指定,则认为是所有链)的所有计数器归零。
Command-N, --new-chain
Exampleiptables -N allowed
Explanation根据用户指定的名字建立新的链。上面的例子建立了一个名为allowed的链。注意,所用的名字不能和已有的链、target同名。
Command-X, --delete-chain
Exampleiptables -X allowed
Explanation删除指定的用户自定义链。这个链必须没有被引用,如果被引用,在删除之前你必须删除或者替换与之有关的规则。如果没有给出参数,这条命令将会删除默认表所有非内建的链。
Command-P, --policy
Exampleiptables -P INPUT DROP
Explanation为链设置默认的target(可用的是DROPACCEPT,如果还有其它的可用,请告诉我),这个target称作策略。所有不符合规则的包都被强制使用这个策略。只有内建的链才可以使用规则。但内建的链和用户自定义链都不能被作为策略使用,也就是说不能象这样使用:iptables -P INPUT allowed(或者是内建的链)。
Command-E, --rename-chain
Exampleiptables -E allowed disallowed
Explanation对自定义的链进行重命名,原来的名字在前,新名字在后。如上,就是把allowed改为disallowed。这仅仅是改变链的名字,对整个表的结构、工作没有任何影响。

在使用iptables时,如果必须的参数没有输入就按了回车,那么它就会给出一些提示信息:告诉你需要哪些参数等等。iptables的选项-v用来显示iptables的版本,-h给出语法的简短说明。。下面将要介绍的就是部分选项,还有它们的作用。

Table. Options

Option(选项)-v, --verbose(详细的)
可用此选项的命令--list,--append,--insert,--delete,--replace
Explanation(说明)这个选项使输出详细化,常与--list连用。与--list连用时,输出中包括网络接口的地址、规则的选项、TOS掩码、字节和包计数器,其中计数器是以K、M、G(这里用的是10的幂而不是2的幂哦)为单位的。如果想知道到底有多少个包、多少字节,还要用到选项-x,下面会介绍。如果-v--append--insert--delete--replace连用,iptables会输出详细的信息告诉你规则是如何被解释的、是否正确地插入等等。
Option-x, --exact(精确的)
Commands used with--list
Explanation使--list输出中的计数器显示准确的数值,而不用K、M、G等估值。注意此选项只能和--list连用。
Option-n, --numeric(数值)
Commands used with--list
Explanation使输出中的IP地址和端口以数值的形式显示,而不是默认的名字,比如主机名、网络名、程序名等。注意此选项也只能和--list连用。
Option--line-numbers
Commands used with--list
Explanation又是一个只能和--list连用的选项,作用是显示出每条规则在相应链中的序号。这样你可以知道序号了,这对插入新规则很有用哦。
Option-c, --set-counters
Commands used with--insert,--append,--replace
Explanation在创建或更改规则时设置计数器,语法如下:--set-counters 20 4000,意思是让内核把包计数器设为20,把字节计数器设为4000。
Option--modprobe
Commands used withAll
Explanation此选项告诉iptables探测并装载要使用的模块。这是非常有用的一个选项,万一modprobe命令不在搜索路径中,就要用到了。有了这个选项,在装载模块时,即使有一个需要用到的模块没装载上,iptables也知道要去搜索。



40. man 查看某个命令的具体使用情况,如

  > man ls

来查看ls命令的使用情况,包括option、参数等

其中在man中有如下的快捷键:

光标移动操作:

e  ^E  j  ^N  CR  *  前进一行(或N行)
y  ^Y  k  ^K  ^P  *  后退一行(或N行)
f  ^F  ^V  SPACE  *  前进一个窗口(或N行)
b  ^B  ESC-v      *  后退一个窗口(或N行)
z                 *  前进一个窗口(将窗口设置到N)
w                 *  后退一个窗口(将窗口设置到N)
ESC-SPACE         *  前进一个窗口,在文件末尾不停止
d  ^D             *  前进半个窗口(将这半个窗口设置到N)
u  ^U             *  后退半个窗口(将这半个窗口设置到N)
ESC-)  RightArrow *  向左半个屏幕宽(或N个位置)
ESC-(  LeftArrow  *  向右半个屏幕宽(或N个位置)
F                    一直前进,像"tail -f"一样

移动操作基本与vi一样的。

 

查找操作:

/pattern          *  向前查找包含pattern的行.
?pattern          *  向后查找包含pattern的行.
n                 *  查找下一个pattern行.
N                 *  查找上一个pattern行.
ESC-n             *  同n.
ESC-N             *  同N
ESC-u                取消所有搜索的高亮显示

 

调动操作:

g  <  ESC-<       *  跳转到文件第一行
G  >  ESC->       *  跳转到文件最后一行
p  %              *  跳转到文件最开始

 

其它操作:

  :n                *  打开跳转到下一个文件
  :p                *  打开跳转到上一个文件
  :x                *  跳转到第一个打开的文件
  h  H                 显示帮助
  q  :q  Q  :Q  ZZ     退出当前打开文件

less可以打开多个文件,在多个文件操作中,可以使用这些命令。如man -a passwd 实际会查到多个手册,都会有less打开。可以通过这类命令实现打开与关闭。





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

参考链接:

Iptables的具体指南: http://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html#DETAILEDEXPLANATIONS

百度百科 http://baike.baidu.com/view/2158185.html

交换空间文件创建: http://www.linuxdiyf.com/bbs/viewthread.php?tid=24668

update-rc.d: http://www.linuxidc.com/Linux/2010-12/30886.htm

                  http://blog.youkuaiyun.com/lizzydarcymsp/archive/2010/06/03/5644598.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值