Linux特殊命令


Linux基本命令

菜鸟教程Linux基础命令查询大全:

Linux 命令大全
1、文件管理
cat chattr chgrp chmod
chown cksum cmp diff
diffstat file find git
gitview indent cut ln
less locate lsattr mattrib
mc mdel mdir mktemp
more mmove mread mren
mtools mtoolstest mv od
paste patch rcp rm
slocate split tee tmpwatch
touch umask which cp
whereis mcopy mshowfat rhmask
scp awk read updatedb
2、文档编辑
col colrm comm csplit
ed egrep ex fgrep
fmt fold grep ispell
jed joe join look
mtype pico rgrep sed
sort spell tr expr
uniq wc let
3、文件传输
lprm lpr lpq lpd
bye ftp uuto uupick
uucp uucico tftp ncftp
ftpshut ftpwho ftpcount
4、磁盘管理
cd df dirs du
edquota eject mcd mdeltree
mdu mkdir mlabel mmd
mrd mzip pwd quota
mount mmount rmdir rmt
stat tree umount ls
quotacheck quotaoff lndir repquota
quotaon
5、磁盘维护
badblocks cfdisk dd e2fsck
ext2ed fsck fsck.minix fsconf
fdformat hdparm mformat mkbootdisk
mkdosfs mke2fs mkfs.ext2 mkfs.msdos
mkinitrd mkisofs mkswap mpartition
swapon symlinks sync mbadblocks
mkfs.minix fsck.ext2 fdisk losetup
mkfs sfdisk swapoff
6、网络通讯
apachectl arpwatch dip getty
mingetty uux telnet uulog
uustat ppp-off netconfig nc
httpd ifconfig minicom mesg
dnsconf wall netstat ping
pppstats samba setserial talk
traceroute tty newaliases uuname
netconf write statserial efax
pppsetup tcpdump ytalk cu
smbd testparm smbclient shapecfg
7、系统管理
adduser chfn useradd date
exit finger fwhios sleep
suspend groupdel groupmod halt
kill last lastb login
logname logout ps nice
procinfo top pstree reboot
rlogin rsh sliplogin screen
shutdown rwho sudo gitps
swatch tload logrotate uname
chsh userconf userdel usermod
vlock who whoami whois
newgrp renice su skill
w id groupadd free
8、系统设置
reset clear alias dircolors
aumix bind chroot clock
crontab declare depmod dmesg
enable eval export pwunconv
grpconv rpm insmod kbdconfig
lilo liloconfig lsmod minfo
set modprobe ntsysv mouseconfig
passwd pwconv rdate resize
rmmod grpunconv modinfo time
setup sndconfig setenv setconsole
timeconfig ulimit unset chkconfig
apmd hwclock mkkickstart fbset
unalias SVGATextMode gpasswd
9、备份压缩
ar bunzip2 bzip2 bzip2recover
gunzip unarj compress cpio
dump uuencode gzexe gzip
lha restore tar uudecode
unzip zip zipinfo
10、设备管理
setleds loadkeys rdev dumpkeys
MAKEDEV poweroff

Linux bc 命令

bc 命令是任意精度计算器语言,通常在linux下当计算器用。

它类似基本的计算器, 使用这个计算器可以做基本的数学运算。

常用的运算:

  • + 加法
  • - 减法
  • * 乘法
  • / 除法
  • ^ 指数
  • % 余数

语法

bc(选项)(参数)

选项值

  • -i:强制进入交互式模式;
  • -l:定义使用的标准数学库
  • ; -w:对POSIX bc的扩展给出警告信息;
  • -q:不打印正常的GNU bc环境信息;
  • -v:显示指令版本信息;
  • -h:显示指令的帮助信息。

参数

文件:指定包含计算任务的文件。

实例

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2+3
5
5-2
3
2+3*1
5

输入 quit 退出。

通过管道符

$ echo "15+5" | bc
20

scale=2 设小数位,2 代表保留两位:

$ echo 'scale=2; (2.777 - 1.4744)/1' | bc
1.30

bc 除了 scale 来设定小数位之外,还有 ibase 和 obase 来其它进制的运算:

$ echo "ibase=2;111" |bc
7

进制转换

#!/bin/bash

abc=192 
echo "obase=2;$abc" | bc
<pre>
<p>
执行结果为:11000000,这是用bc将十进制转换成二进制。</p>


<pre>
#!/bin/bash 

abc=11000000 
echo "obase=10;ibase=2;$abc" | bc

执行结果为:192,这是用bc将二进制转换为十进制。

计算平方和平方根:

$ echo "10^10" | bc 
10000000000
$ echo "sqrt(100)" | bc
10

Linux nohup 命令

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

使用权限

所有使用者

语法格式

 nohup Command [ Arg … ] [ & ]

参数说明:

Command:要执行的命令。

Arg:一些参数,可以指定输出文件。

&:让命令在后台执行,终端退出后命令仍旧执行。

实例

以下命令在后台执行 root 目录下的 runoob.sh 脚本:

nohup /root/runoob.sh &

在终端如果看到以下输出说明运行成功:

appending output to nohup.out

这时我们打开 root 目录 可以看到生成了 nohup.out 文件。

如果要停止运行,你需要使用以下命令查找到 nohup 运行脚本到 PID,然后使用 kill 命令来删除:

ps -aux | grep "runoob.sh" 

参数说明:

  • a : 显示所有程序
  • u : 以用户为主的格式来显示
  • x : 显示所有程序,不区分终端机

另外也可以使用 ps -def | grep “runoob.sh“ 命令来查找。

找到 PID 后,就可以使用 kill PID 来删除。

kill -9  进程号PID

以下命令在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件:

nohup /root/runoob.sh > runoob.log 2>&1 &

2>&1 解释:

将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。

  • 0 – stdin (standard input,标准输入)
  • 1 – stdout (standard output,标准输出)
  • 2 – stderr (standard error,标准错误输出)

Linux xargs 命令

xargs(英文全拼: eXtended ARGuments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。

xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。

xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。

xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。

之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令,例如:

find /sbin -perm +700 |ls -l       #这个命令是错误的
find /sbin -perm +700 |xargs ls -l   #这样才是正确的

xargs 一般是和管道一起使用。

命令格式:

somecommand |xargs -item  command

参数:

  • -a file 从文件中读入作为 stdin
  • -e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。
  • -p 当每次执行一个argument的时候询问一次用户。
  • -n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
  • -t 表示先打印命令,然后再执行。
  • -i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。
  • -r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。
  • -s num 命令行的最大字符数,指的是 xargs 后面那个命令的最大命令行字符数。
  • -L num 从标准输入一次读取 num 行送给 command 命令。
  • -l 同 -L。
  • -d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。
  • -x exit的意思,主要是配合-s使用。。
  • -P 修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到的吧。

实例

xargs 用作替换工具,读取输入数据重新格式化后输出。

定义一个测试文件,内有多行文本数据:

# cat test.txt

a b c d e f g
h i j k l m n
o p q
r s t
u v w x y z

多行输入单行输出:

# cat test.txt | xargs
a b c d e f g h i j k l m n o p q r s t u v w x y z

-n 选项多行输出:

# cat test.txt | xargs -n3

a b c
d e f
g h i
j k l
m n o
p q r
s t u
v w x
y z

-d 选项可以自定义一个定界符:

# echo "nameXnameXnameXname" | xargs -dX

name name name name

结合 -n 选项使用:

# echo "nameXnameXnameXname" | xargs -dX -n2

name name
name name

读取 stdin,将格式化后的参数传递给命令

假设一个命令为 sk.sh 和一个保存参数的文件 arg.txt:

#!/bin/bash
#sk.sh命令内容,打印出所有参数。

echo $*

arg.txt文件内容:

# cat arg.txt

aaa
bbb
ccc

xargs 的一个选项 -I,使用 -I 指定一个替换字符串 {},这个字符串在 xargs 扩展时会被替换掉,当 -I 与 xargs 结合使用,每一个参数命令都会被执行一次:

# cat arg.txt | xargs -I {} ./sk.sh -p {} -l

-p aaa -l
-p bbb -l
-p ccc -l

复制所有图片文件到 /data/images 目录下:

ls *.jpg | xargs -n1 -I {} cp {} /data/images

xargs 结合 find 使用

用 rm 删除太多的文件时候,可能得到一个错误信息:/bin/rm Argument list too long. 用 xargs 去避免这个问题:

find . -type f -name "*.log" -print0 | xargs -0 rm -f

xargs -0 将 \0 作为定界符。

统计一个源代码目录中所有 php 文件的行数:

find . -type f -name "*.php" -print0 | xargs -0 wc -l

查找所有的 jpg 文件,并且压缩它们:

find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz

xargs 其他应用

假如你有一个文件包含了很多你希望下载的 URL,你能够使用 xargs下载所有链接:

# cat url-list.txt | xargs wget -c

Linux ip 命令

Linux ip 命令与 ifconfig 命令类似,但比 ifconfig 命令更加强大,主要功能是用于显示或设置网络设备。

ip 命令是 Linux 加强版的的网络配置工具,用于代替 ifconfig 命令。

语法

ip [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT 为常用对象,值可以是以下几种:

OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token }

常用对象的取值含义如下:

  • link:网络设备
  • address:设备上的协议(IP或IPv6)地址
  • addrlabel:协议地址选择的标签配置
  • route:路由表条目
  • rule:路由策略数据库中的规则

OPTIONS 为常用选项,值可以是以下几种:

OPTIONS={ -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size] }

常用选项的取值含义如下:

  • -V:显示命令的版本信息;

  • -s:输出更详细的信息;

  • -f:强制使用指定的协议族;

  • -4:指定使用的网络层协议是IPv4协议;

  • -6:指定使用的网络层协议是IPv6协议;

  • -0:输出信息每条记录输出一行,即使内容较多也不换行显示;

  • -r:显示主机时,不使用IP地址,而使用主机的域名。

  • help 为该命令的帮助信息。

实例

  ip link show                     # 显示网络接口信息
  ip link set eth0 up             # 开启网卡
  ip link set eth0 down            # 关闭网卡
  ip link set eth0 promisc on      # 开启网卡的混合模式
  ip link set eth0 promisc offi    # 关闭网卡的混个模式
  ip link set eth0 txqueuelen 1200 # 设置网卡队列长度
  ip link set eth0 mtu 1400        # 设置网卡最大传输单元
  ip addr show     # 显示网卡IP信息
  ip addr add 192.168.0.1/24 dev eth0 # 设置eth0网卡IP地址192.168.0.1
  ip addr del 192.168.0.1/24 dev eth0 # 删除eth0网卡IP地址

  ip route show # 显示系统路由
  ip route add default via 192.168.1.254   # 设置系统默认路由
  ip route list                 # 查看路由信息
  ip route add 192.168.4.0/24  via  192.168.0.254 dev eth0 # 设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口
  ip route add default via  192.168.0.254  dev eth0        # 设置默认网关为192.168.0.254
  ip route del 192.168.4.0/24   # 删除192.168.4.0网段的网关
  ip route del default          # 删除默认路由
  ip route delete 192.168.1.0/24 dev eth0 # 删除路由

用 ip 命令显示网络设备的运行状态:

  [root@localhost ~]# ip link list
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
      link/ether 00:16:3e:00:1e:51 brd ff:ff:ff:ff:ff:ff
  3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
      link/ether 00:16:3e:00:1e:52 brd ff:ff:ff:ff:ff:ff

显示更加详细的设备信息:

  [root@localhost ~]# ip -s link list
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      RX: bytes  packets  errors  dropped overrun mcast   
      5082831    56145    0       0       0       0      
      TX: bytes  packets  errors  dropped carrier collsns
      5082831    56145    0       0       0       0      
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
      link/ether 00:16:3e:00:1e:51 brd ff:ff:ff:ff:ff:ff
      RX: bytes  packets  errors  dropped overrun mcast   
      3641655380 62027099 0       0       0       0      
      TX: bytes  packets  errors  dropped carrier collsns
      6155236    89160    0       0       0       0      
  3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
      link/ether 00:16:3e:00:1e:52 brd ff:ff:ff:ff:ff:ff
      RX: bytes  packets  errors  dropped overrun mcast   
      2562136822 488237847 0       0       0       0      
      TX: bytes  packets  errors  dropped carrier collsns
      3486617396 9691081  0       0       0       0    

显示核心路由表:

  [root@localhost ~]# ip route list 
  112.124.12.0/22 dev eth1  proto kernel  scope link  src 112.124.15.130
  10.160.0.0/20 dev eth0  proto kernel  scope link  src 10.160.7.81
  192.168.0.0/16 via 10.160.15.247 dev eth0
  172.16.0.0/12 via 10.160.15.247 dev eth0
  10.0.0.0/8 via 10.160.15.247 dev eth0
  default via 112.124.15.247 dev eth1

显示邻居表:

  [root@localhost ~]# ip neigh list
  112.124.15.247 dev eth1 lladdr 00:00:0c:9f:f3:88 REACHABLE
  10.160.15.247 dev eth0 lladdr 00:00:0c:9f:f2:c0 STALE

获取主机所有网络接口:

  ip link | grep -E '^[0-9]' | awk -F: '{print $2}'

Linux killall 命令

Linux killall 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程。

kill 命令杀死指定进程 PID,需要配合 ps 使用,而 killall 直接对进程对名字进行操作,更加方便。

语法

  killall [选项]  name

参数说明

  • name : 进程名

选项包含如下几个参数:

  • -e | –exact : 进程需要和名字完全相符
  • -I | –ignore-case :忽略大小写
  • -g | –process-group :结束进程组
  • -i | –interactive :结束之前询问
  • -l | –list :列出所有的信号名称
  • -q | –quite :进程没有结束时,不输出任何信息
  • -r | –regexp :将进程名模式解释为扩展的正则表达式。
  • -s | –signal :发送指定信号
  • -u | –user :结束指定用户的进程
  • -v | –verbose :显示详细执行过程
  • -w | –wait :等待所有的进程都结束
  • -V |–version :显示版本信息
  • –help :显示帮助信息

实例

# killall -9 php-fpm          //结束所有的 php-fpm 进程

Linux pkill 命令

Linux pkill 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令。

kill 命令杀死指定进程 PID,需要配合 ps 使用,而 pkill 直接对进程对名字进行操作,更加方便。

语法

  pkill [选项]  name

参数说明

  • name : 进程名

选项包含如下几个参数:

  • -o 仅向找到的最小(起始)进程号发送信号 -n 仅向找到的最大(结束)进程号发送信号

  • -P 指定父进程号发送信号

  • -g 指定进程组

  • -t 指定开启进程的终端

实例

# pkill -9  php-fpm          //结束所有的 php-fpm 进程

Linux基本命令全拼

  • pwd: print work directory 打印当前目录 显示出当前工作目录的绝对路径

  • ps: process status(进程状态,类似于windows的任务管理器)

    常用参数:-auxf

    ps -auxf 显示进程状态

  • df: disk free 其功能是显示磁盘可用空间数目信息及空间结点信息。换句话说,就是报告在任何安装的设备或目录中,还剩多少自由的空间。

  • du: Disk usage

  • rpm:即RedHat Package Management,是RedHat的发明之一

  • rmdir:Remove Directory(删除目录)

  • rm:Remove(删除目录或文件)

  • cat: concatenate 连锁

  • cat file1file2>>file3 把文件1和文件2的内容联合起来放到file3中

  • insmod: install module,载入模块

  • ln -s : link -soft 创建一个软链接,相当于创建一个快捷方式

  • mkdir:Make Directory(创建目录)

  • touch: touch

  • man: Manual

  • su:Swith user(切换用户)

  • cd:Change directory

  • ls:List files

  • ps:Process Status

  • mkdir:Make directory

  • rmdir:Remove directory

  • mkfs: Make file system

  • fsck:File system check

  • uname: Unix name

  • lsmod: List modules

  • mv: Move file

  • rm: Remove file

  • cp: Copy file

  • ln: Link files

  • fg: Foreground

  • bg: Background

  • chown: Change owner

  • chgrp: Change group

  • chmod: Change mode

  • umount: Unmount

  • dd: 本来应根据其功能描述”Convert an copy”命名为”cc”,但”cc”已经被用以代表”CComplier”,所以命名为”dd”

  • tar:Tape archive (磁带档案)

  • ldd:List dynamic dependencies

  • insmod:Install module

  • rmmod:Remove module

  • lsmod:List module

  • 文件结尾的”rc”(如.bashrc、.xinitrc等):Resource configuration

  • Knnxxx /Snnxxx(位于rcx.d目录下):K(Kill);S(Service);nn(执行顺序号);xxx(服务标识)

  • .a(扩展名a):Archive,static library

  • .so(扩展名so):Shared object,dynamically linked library

  • .o(扩展名o):Object file,complied result of C/C++ source file

  • RPM:Red hat package manager

  • dpkg:Debian package manager

  • apt:Advanced package tool(Debian或基于Debian的发行版中提供)

其他 Linux 命令缩写

bin = Binaries (二进制文件)

/dev = Devices (设备)

/etc = Etcetera (等等)

/lib = LIBrary

/proc = Processes

/sbin = Superuser Binaries (超级用户的二进制文件)

/tmp = Temporary (临时)

/usr = Unix Shared Resources

/var = Variable (变量)

FIFO = First In, First Out

GRUB = GRand Unified Bootloader

IFS= Internal Field Seperators

LILO = LInux LOader

MySQL = My 是最初作者女儿的名字,

SQL = Structured QueryLanguage

PHP = Personal Home Page Tools = PHP HypertextPreprocessor

PS = Prompt String

Perl = “Pratical Extraction and Report Language”(实际的抽取和报告语言) =”Pathologically Eclectic Rubbish Lister”

Python 得名于电视剧Monty Python’s Flying Circus

Tcl = Tool Command Language

Tk = ToolKit

VT = Video Terminal

YaST = Yet Another Setup Tool

apache = “a patchy” server

apt = Advanced Packaging Tool

ar = archiver

as = assembler

awk = “Aho Weiberger and Kernighan”三个作者的姓的第一个字母

bash = Bourne Again SHell

bc = Basic (Better) Calculator

bg = BackGround

biff = 作者HeidiStettner在U.C.Berkely养的一条狗,喜欢对邮递员汪汪叫。

cal = Calendar (日历)

cat = Catenate (链接)

cd = Change Directory

chgrp = Change Group

chmod = Change Mode

chown = Change Owner

chsh = Change Shell

cmp = compare

cobra = Common Object Request BrokerArchitecture

comm = common

cp = Copy

cpio = CoPy In and Out

cpp = C Pre Processor

cron = Chronos 希腊文时间

cups = Common Unix Printing System

cvs = Current Version System

daemon = Disk And Execution MONitor

dc = Desk Calculator

dd = Disk Dump (磁盘转储)

df = Disk Free

diff = Difference

dmesg = diagnostic message

du = Disk Usage

ed = editor

egrep = Extended GREP

elf = Extensible Linking Format

elm = ELectronic Mail

emacs = Editor MACroS

eval = EVALuate

ex = EXtended

exec = EXECute (执行)

fd = file descriptors

fg = ForeGround

fgrep = Fixed GREP

fmt = format

fsck = File System ChecK

fstab = FileSystem TABle

fvwm = F*** Virtual Window Manager

gawk = GNU AWK

gpg = GNU Privacy Guard

groff = GNU troff

hal = Hardware Abstraction Layer

joe = Joe’s Own Editor

ksh = Korn SHell

lame = Lame Ain’t an MP3 Encoder

lex = LEXical analyser

lisp = LISt Processing = Lots of IrritatingSuperfluous Parentheses

ln = Link

lpr = Line PRint

ls = list

lsof = LiSt Open Files

m4 = Macro processor Version 4

man = MANual pages

mawk = Mike Brennan’s AWK

mc = Midnight Commander

mkfs = MaKe FileSystem

mknod = Make Node

motd = Message of The Day

mozilla = MOsaic GodZILLa

mtab = Mount TABle

mv = Move

nano = Nano’s ANOther editor

nawk = New AWK

nl = Number of Lines

nm = names

nohup = No HangUP

nroff = New ROFF

od = Octal Dump

passwd = Passwd

pg = pager

pico = PIne’s message COmposition editor

pine = “Program for Internet News &Email” = “Pine is not Elm”

ping = 拟声 又 = Packet Internet Grouper

pirntcap = PRINTer CAPability

popd = POP Directory

pr = pre

printf = Print Formatted

ps = Processes Status

pty = pseudo tty

pushd = PUSH Directory

pwd = Print Working Directory

rc = runcom = run command, rc还是plan9的shell

rev = REVerse

rm = ReMove

rn = Read News

roff = RunOFF

rpm = RPM Package Manager = RedHat PackageManager

rsh, rlogin, rvim中的

r = Remote

rxvt = ouR XVT

seamoneky = 我

sed = Stream Editor

seq = SEQuence

shar = Shell ARchive

slrn = S-Lang rn

ssh = Secure Shell

ssl = Secure Sockets Layer

stty = Set TTY

su = Substitute User

svn = SubVersion

tar = Tape ARchive

tcsh = TENEX C shell

tee = T (T形水管接口)

telnet = TEminaL over Network

termcap = terminal capability

terminfo = terminal information

tex = τέχνη的缩写,希腊文art

tr = traslate

troff = Typesetter new ROFF

tsort = Topological SORT

tty = TeleTypewriter

twm = Tom’s Window Manager

tz = TimeZone

udev = Userspace DEV

ulimit = User’s LIMIT

umask = User’s MASK

uniq = UNIQue

i = VIsual = Very Inconvenient

vim = Vi IMproved

wall = write all

wc = Word Count

wine = WINE Is Not an Emulator

xargs = eXtended ARGuments

xdm = X Display Manager

xlfd = X Logical Font Description

xmms = X Multimedia System

xrdb = X Resources DataBase

xwd = X Window Dump

yacc = yet another compiler compiler

Fish = the Friendly Interactive SHell

su = Switch User

MIME = Multipurpose Internet Mail Extensions

ECMA = European Computer ManufacturersAssociation

实用 Linux 运维命令及知识

1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录:

find . -name “*.tar” -exec mv {}./backup/ ;

注解:find –name 主要用于查找某个文件名字,-exec 、xargs可以用来承接前面的结果,然后将要执行的动作,一般跟find在一起用的很多,find使用我们可以延伸-mtime查找修改时间、-type是指定对象类型(常见包括f代表文件、d代表目录),-size 指定大小,例如经常用到的:查找当前目录30天以前大于100M的LOG文件并删除。

find  . -name "*.log" –mtime +30 –typef –size +100M |xargs rm –rf {};

2、批量解压当前目录下以.zip结尾的所有文件到指定目录:

for i  in  `find . –name “*.zip”–type f `

do

unzip –d $i /data/www/img/

done

注解:forI in (command);do … done为for循环的一个常用格式,其中I为变量,可以自己指定。

3、sed常用命收集:test.txt做测试

如何去掉行首的.字符: sed-i 's/^.//g' test.txt

在行首添加一个a字符: sed's/^/a/g'    test.txt

在行尾添加一个a字符: sed's/$/a/'     tets.txt

在特定行后添加一个c字符:sed '/wuguangke/ac' test.txt

在行前加入一个c字符: sed'/wuguangke/ic' test.txt

更多sed命令请查阅相关文档。

4、如何判断某个目录是否存在,不存在则新建,存在则打印信息。

if

[! –d /data/backup/];then

Mkdir–p /data/backup/

else

echo  "The Directory alreadyexists,please exit"

fi

注解:if…;then …else ..fi:为if条件语句,!叹号表示反义“不存在“,-d代表目录。

5、监控linux磁盘根分区,如果根分区空间大于等于90%,发送邮件给Linux SA

(1)、打印根分区大小

df -h |sed -n '//$/p'|awk '{print $5}'|awk –F ”%” '{print $1}'

注解:awk ‘{print $5}’意思是打印第5个域,-F的意思为分隔,例如以%分隔,简单意思就是去掉百分号,awk –F. ‘{print $1}’分隔点.号。

(2)、if条件判断该大小是否大于90,如果大于90则发送邮件报警

while sleep 5m

do

for i in `df -h |sed -n '//$/p' |awk '{print $5}' |sed 's/%//g'`

do

echo $i

if [ $i -ge 90 ];then

echo “More than 90% Linux of disk space ,Please LinuxSA Check Linux Disk !|mail -s “Warn Linux / Parts is $i%” 

XXX@XXX.XX

fi

done

done

6、统计Nginx访问日志,访问量排在前20 的 ip地址:

cat access.log |awk '{print $1}'|sort|uniq -c |sort -nr |head -20

注解:sort排序、uniq(检查及删除文本文件中重复出现的行列 )

7、sed另外一个用法找到当前行,然后在修改该行后面的参数:

sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

Sed冒号方式

sed -i ‘s:/tmp:/tmp/abc/:g’test.txt意思是将/tmp改成/tmp/abc/。

8、打印出一个文件里面最大和最小值:

cat a.txt |sort -nr|awk{}END{print} NR==1′

cat a.txt |sort -nr |awk ‘END{print} NR==1′

这个才是真正的打印最大最小值:

sed ‘s/ / /g’ a.txt |sort -nr|sed -n ’1p;$p

9、使用snmpd抓取版本为v2的cacti数据方式:

snmpwalk -v2c -c public 192.168.0.241

10、修改文本中以jk结尾的替换成yz:

sed -e ‘s/jk$/yz/g’ b.txt

11、网络抓包:tcpdump

tcpdump -nn host 192.168.56.7 and port 80 抓取56.7通过80请求的数据包。

tcpdump -nn host 192.168.56.7 or ! host 192.168.0.22 and port 80 排除0.22 80端口!

tcp/ip 7层协议物理层–数据链路层-网络层-传输层-会话层-表示层-应用层。

12、H3C配置团体名配置:首先设置snmp版本如下:

snmp-agent sys-info version v1 v2c ,然后设置团体名:snmp-agent community read public

13、显示最常用的20条命令:

cat .bash_history |grep -v ^# |awk ‘{print $1}’ |sort |uniq -c |sort -nr |head-20

14、写一个脚本查找最后创建时间是3天前,后缀是*.log的文件并删除。

find . -mtime +3  -name "*.log" |xargs rm -rf {} ;

15、写一个脚本将某目录下大于100k的文件移动至/tmp下。

find . -size +100k -exec mv {} /tmp ;

16、写一个防火墙配置脚本,只允许远程主机访问本机的80端口。

iptables -F

iptables -X

iptables -A INPUT -p tcp --dport 80 -j accept

iptables -A INPUT -p tcp -j REJECT

或者

iptables -A INPUT -m state --state NEW-m tcp -p tcp --dport 80 -j ACCEPT

17、写一个脚本进行nginx日志统计,得到访问ip最多的前10个(nginx日志路径:

/home/logs/nginx/default/access.log)cd /home/logs.nginx/default

sort -m -k 4 -o access.logok access.1 access.2 access.3 .....

cat access.logok |awk '{print $1}'|sort -n|uniq -c|sort -nr |head -10

18.替换文件中的目录

sed 's:/user/local:/tmp:g' test.txt

或者

sed -i 's//usr/local//tmp/g' test.txt

文章作者: 杰克成
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 杰克成 !
评论
  目录