bash 命令

http://spazzzz.blog.51cto.com/2707720/4×××3
按照本身目前的水平所整理,以备往后杯具时查阅(需定时更新)
首先打开终端,最初要使用的 命令
 
启用root用户,使用sudo passwd 命令
禁用root用户,使用passwd -l
 
ls [-adlsht]:列出当前目录下的非隐藏文件
  -a 显示全部文件
  -d 显示目录自己
  -l 以列表形式显示详细信息
  -s 显示文件大小,单位块
  -h 带度量单位显示
  -t 按最新修改时间显示
Linux中3种时间属性
atime access 读取或执行时变化
ctime change 变动权限,属主,连接数时变化
mtime modify 修改内容时变化
cd PATH:改变当前操做目录路径到PATH
  cd .. 返回上一层
  cd - 返回上一 次使用的 目录
  cd 返回用户主目录,等同于cd ~
  pwd 显示当前路径

如今介绍一个高级的路径变动 命令
pushd PATH:创建目录栈,在多个目录间切换。切换到PATH的目录,并把原目录和PATH目录压入到一个虚拟的堆栈中;若是不指定PATH,则会回到前一个目录,并把堆栈中最近的两个目录做交换。
  -n 不改变当前目录,将目录加入栈
  +N N表示数字,从0开始,切换到该目录
dirs: 列出当前堆栈中保存的目录列表。
  -v 栈式显示目录
  -c 清空堆栈
popd:弹出堆栈中0号目录。
  -n 不改变当前目录
  +N N表数字,弹出该目录

mkdir NAME:在当前路径下建立文件夹NAME
touch NAME:在当前路径下建立普通文件NAME
mknod NAME:用来新建P、B、C型NAME文件
cat [-nb] NAME:显示NAME文件的内容在终端中
  -n 带行号
  -b 对空白行不编号
mv NAME1 NAME2:将NAME1重命名为NAME2
rm file:删除file而不须要确认
  -d Dir1 删除Dir1目录而不须要确认(至关于DOS中的deltree)。
  -i file1(提示用户确认以后删除file1)
  -f file2(若是file2已经存在,则这个 命令覆盖其内容时不须要确认)
  -r * 递归删除文件,若是当前目录还有子目录,则也删除其中的文件和目录
  -rf xx 删除xx目录

Linux文件权限
chmod 751 test.java:结果test.java的权限是-rwxr-x--x,7表示user的3个权限都有,既111,且正好是十进制的7;5换成二进制是101,同理1是other位置的权限,是x执行。
  还可使用字母表示,u、g、o分别表示3个组,+表示赋予,-表示撤销
目录有执行权限才能打开,但前提是该目录的上次目录要有粘滞位,不然会继承上级的执行权限。
 
高级权限:
drwxrwxrwt       
t表示粘滞位,做用是让用户只能删除属于本身的文件
假如原本在该位上有x, 则这些特别标志 (suid, sgid, sticky) 显示为小写字母 (s, s, t). 不然, 显示为大写字母 (S, S, T)
chmod a+t x.X
特殊标志位
  Suid:set user id
  Sgid:set group id
  sTicky:sticky bit
  特殊标志也是由3个二进制位abc表示,c表示T,b表示Sgid,a表示Suid
eg:101表示设置了该文件的Suid和sTicky位,也就是八进制的5
特殊标志位放在权限位的前面
eg:一个文件test类型标识为-rwxr-xrwx
         chmod 7747 test
         结果为-rwsr-Srwt
         7747等于111 111 100 111
umask number 修改建立时的默认权限
 系统规定目录的建立能够包含执行权限,因此最高是777;而文件不能默认包含执行,因此最高是666。
umask就是默认权限的反码
 eg:umask=022时,建立的目录权限是755,文件权限是644。
    umask=002时,目录权限是775,文件权限是664
 经常使用的umask:
022:755 644
027:750 640
002:775 664
006:771 660
007:770 660

groups username  显示username所在的全部组
改变文件的组和全部者 命令chown
chown [-cfhvR] user[:group] file...
 -c若文件拥有者确实已更改,才显示其更改动做
 -f若没法更改,也不要显示错误信息
 -h只对link文件进行更改,而非该link真正指向的档案
 -v显示拥有者变动的详细资料
  -R对目录下全部文件文件夹递归更改
 user:[group]指的是更改成group组中的user用户
 eg:chown -R fenix:root *
  表示将当前目录下全部文件和文件夹改成root组的使用者fenix
chgrp [-hR] groupname filename 将文件的属组变动
 -h将符号连接变动
 -R递归变动
id username 显示username的uid,gid和自身id

显示进程 命令
ps [-Aw][aux]:当前 bash中运行的进程
  -A列出全部进程
  -w显示较多信息
  -au显示详细信息
  -aux显示全部包含其余使用者的进程
    eg: ps aux | grep nautilus 显示nautilus进程
pstree:树状显示进程
  -a显示该进程的完整指令和参数
  -c若有重覆的进程名, 则分开列出
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]:从新指定一个或多个进程的优先序
  将行程 id 为987及32的行程与行程拥有者为daemon 及root 的优先序号码加1。eg:renice +1 987 -u daemon root -p 32
pkill NAME :快速杀掉进程。 eg pkill firefox
skill [signal to send] [options] :选择程序的规则
 选择程序的规则能够是, 终端机代号,使用者名称,程序代号,命令名称
  -t 终端机代号 ( tty 或 pty )
  -u 使用者名称
  -p 程序代号 ( pid )
  -c 命令名称
  eg:中止三个使用者 user1,user2,user3。
          skill -STOP user1 user2 user3
kill [-s signal|-p] [-a] PID :终止进程命令
kill -l :查看全部信号量
 
    
    
             
    
    
  1. 0 - normal  
  2. 1 - signal SIGHUP, Hangup.  #重启
  3. 2 - signal SIGINT, Interrupt  #中断,ctrl+c
  4. 3 - signal SIGQUIT, Quit  
  5. 4 - signal SIGILL, Illegal instruction  
  6. 5 - signal SIGTRAP, Trace/breakpoint trap  
  7. 6 - signal SIGABRT, Aborted  
  8. 7 - signal SIGEMT, Emulation trap  
  9. 8 - signal SIGFPE, Arithmetic exception  
  10. 9 - signal SIGKILL, Killed   #无条件关闭
  11. 10 - signal SIGBUS, Bus error  
  12. 11 - signal SIGSEGV, Segmentation fault  
  13. 12 - signal SIGSYS, Bad system call  
  14. 13 - signal SIGPIPE, Broken pipe  
  15. 14 - signal SIGSTOP, Stopped (signal)   
  16. 15 - signal SIGTERM, Terminated #温和的结束
  17. 16 - signal SIGXCPU, CPU time limit exceeded  
  18. 17 - signal SIGTTIN, Stopped (tty input)  
  19. 18 - signal SIGCONT, Continued #恢复,fg、bg
  20. 19 - signal SIGTTOU, Stopped (tty output)  
  21. 20 - signal SIGTSTP, Stopped (user) #暂停运行,ctrl+z  
  22. 21 - signal SIGXFSZ, File size limit exceeded 
 

top命令:动态显示当前运行进程
  up 后面表示系统运行了多长时间
  load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。
 三个数值分别为 1分钟、5分钟、15分钟前到如今的平均值
  Cpu(s): 0.3% us 用户空间占用CPU百分比,1.0% sy 内核空间占用CPU百分比,0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比,98.7% id 空闲CPU百分比,0.0% wa 等待输入输出的CPU时间百分比
  PR 优先级
  NI nice值,负值表示高优先级
  VIRT 进程使用的虚拟内存总量
  RES 进程使用的,未被换出的物理内存大小,kb单位
  SHR 共享内存大小,kb单位
  S 进程状态
     s睡眠,r运行,t跟踪或中止,z僵尸,d不可中断的睡眠
  %CPU 上次更新到如今的CPU时间占用百分比
  %MEM 进程使用的物理内存百分比
  TIME+ 进程使用的CPU时间总计,1/100秒单位
  COMMAND 命令
    按f键能够选择显示列,按o能够改变列的显示顺序,按R键能够将当前排序倒转

类debian发行版的linux使用的apt软件管理 命令
apt-get [-qy] [-c config_file] [options] software...
 q 在后台环境执行
  y 自动进行回答y的响应
 c 后接配置文件
 options
  update,install,remove,purge,clean,dist-upgrade
apt-cache [搜索项目]
 搜索项目
  search,show,
  showpkg 列出所接软件的依赖属性及功能
  dump 列出全部软件标头及相关的依赖属性软件
  pkgnames 列出本系统全部软件名称
软件管理的高级 命令
dpkg [-ilLSC] <package>
  -i <package> 安装软件包
  -l <package> 查看软件包是否安装
  -L <package> 查看软件包中包含哪些文件
  -S /path/to/file 查看系统中某文件是由哪一个软件包提供的
  -C 查看哪些软件包未完成安装

网络 命令类:
ifup eth0 打开eth0, ifdown eth1 关闭eth1
ifconfig [interface] [options],设置网络设备的 命令
 interface接口名,如eth0
 options,功能选项
  up & down
  mtu
  netmask
  broadcast
    eg:ifconfig eth0 192.168.1.1 netmask 255.255.0.0 mtu 8000
route [-nee]
 n直接使用ip
 ee更详细的信息
ping [-bcstnM] IP
 b 接broadcast的ip,对整个网段ping
 c 后接次数
 n 不进行ip和主机名的反查
 s 扩增的icmp包
 M 设置MTU
tcpdump -i eth0 -nn :侦测网络浏览的命令,网卡变为混杂模式,root权限
 -i 后接网络接口,如eth0
 -nn 以ip和port显示,而不是hostname
tcpdump -i eth0 -nn port 21
 port 21 监听特定的21port
 -X 可列出十六进制以及ascii的内容
ip address show:显示当前ip地址详细信息
arp -n:显示arp表的内容,包括网段内机器物理地址MAC
netstat [-tulnp]
  -t tcp协议
  -u udp协议
  -l 监听中的
  -n 不解析主机
  -p pid
    eg:netstat -anp |grep 8080  8080端口占用状况

其余 命令
ctrl+z:暂时挂起当前终端进程
jobs:查看当前终端挂起的进程
fg number:将number号挂起进程激活在前台运行
bg number:将number号挂起进程激活在后台执行
uname -a:查看内核
cat /etc/issue:查看ubuntu版本
cat /proc/cpuinfo
lshw:查看当前硬件信息
free -l:查看当前的内存使用
gnome-control-center:控制中心
gnome-system-monitor:系统管理
find [路径] [-参数] [需求]
eg: find /etc -name *.d
   find . -perm 664
   find /usr/share/doc -mtime 0
locate 文件名
whereis:是来寻找 命令的二进制文件,同时也会找到其帮助文件
which 和where 类似,只是咱们所设置的环境变量中设置好的路径中寻找
who:查看当前在线上的用户状况
w 命令是who 命令的一个加强版
uptime:显示系统运行时间
last:显示系统开机以来或是从每个月登入者的讯息

  tail:从参数制定点开始将文件内容写到标准输出
格式 tail [-fr] [-cnmbk Number] [file]
 Number 变量指定将多少单元写入标准输出。Number变量的值能够是正的或负的整数,+表示从开头,-表示从结尾
  -f表示动态的显示文件的内容
 -r表示从文件末尾以逆序方式显示
 -c从Number表示的字节位开始读
 -n从Number表示的行位开始读
 -m从Number表示的多字节字符位置开始读
 -b从Number表示的 512 字节块位置开始读
 -k从Number表示的 1KB 块位置开始读

改变文件的高级属性
chattr [-RV] [-+=AacDdijsSu] [-v version] files...
 R:递归处理全部的文件及子目录
 V:周详显示修改内容,并打印输出
 -:失效属性。
 +:激活属性。
 = :指定属性。
 A:Atime,告诉系统不要修改对这个文件的最后访问时间。
 S:Sync,一旦应用程式对这个文件执行了写操做,使系统即时把修改的结果写到磁盘。
 a:Append Only,系统只容许在这个文件以后追加数据,不容许全部进程覆盖或截断这个文件。若是目录具备这个属性,系统将只容许在这个目录下创建和修改文件,而不容许删除全部文件。
 i:Immutable,系统不容许对这个文件进行全部的修改。若是目录具备这个属性,那么全部的进程只能修改目录之下的文件,不容许创建和删除文件。
 D:检查压缩文件中的错误。
 d:No dump,在进行文件系统备份时,dump程式将忽略这个文件。
 C:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压以后的数据;而向这个文件中写入数据时,数据首先被压缩以后才写入磁盘。
 S:Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
 u:Undelete,当一个应用程式请求删除这个文件,系统会保留其数据块以便之后可以恢复删除这个文件。
lsattr [-adRvV] files... 查看文件的高级属性
 a所有文件和目录
 d显示目录名称
 R递归
 v文件,目录版本
 V版本信息
 
整理的有点乱……
本文出自 “ 春种一粒粟” 博客,请务必保留此出处 http://spazzzz.blog.51cto.com/2707720/4×××3