VIM常用命令整理ubuntu 配置 jdk 环境常用打包压缩命令

文件属性相关命令

chgrp:该命令用于改变文件所属用户组

chown:该命令用于改变文件的所有者

chmod:该命令用于改变文件的权限

-R:进行递归的持续更改,即连同子目录下的所有文件都会更改

rm命令

常用参数:

  1. -f :就是force的意思,忽略不存在的文件,不会出现警告消息
  2. -i :互动模式,在删除前会询问用户是否操作
  3. -r :递归删除,最常用于目录删除,它是一个非常危险的参数

mv命令

常用参数:

  1. -f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  2. -i :若目标文件已经存在,就会询问是否覆盖
  3. -u :若目标文件已经存在,且比目标文件新,才会更新

ls命令

常用参数:

  1. -l :列出长数据串,包含文件的属性与权限数据等
  2. -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
  3. -d :仅列出目录本身,而不是列出目录的文件数据
  4. -h :将文件容量以较易读的方式(GB,kB等)列出来
  5. -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

cp命令

常用参数:

  1. -a :将文件的特性一起复制
  2. -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
  3. -i :若目标文件已经存在时,在覆盖时会先询问操作的进行
  4. -r :递归持续复制,用于目录的复制行为
  5. -u :目标文件与源文件有差异时才会复制

grep命令

grep [-acinv] [--color=auto] '查找字符串' filename

它的常用参数如下:

  1. -a :将binary文件以text文件的方式查找数据
  2. -c :计算找到‘查找字符串’的次数
  3. -i :忽略大小写的区别,即把大小写视为相同
  4. -v :反向选择,即显示出没有‘查找字符串’内容的那一行

# 例如:

# 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色

grep --color=auto 'MANPATH' /etc/man.config

# 把ls -l的输出中包含字母file(不区分大小写)的内容输出

ls -l | grep -i file

crontab命令

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

  minute hour day month week command

其中:

  minute: 表示分钟,可以是从0到59之间的任何整数。

  hour:表示小时,可以是从0到23之间的任何整数。

  day:表示日期,可以是从1到31之间的任何整数。

  month:表示月份,可以是从1到12之间的任何整数。

  week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

  command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在以上各个字段中,还可以使用以下特殊字符:

  星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

  逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

  中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

  正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

cron在3个地方查找配置文件:

  1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。

  2、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。

  3、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。

使用者权限文件:

  文件:/etc/cron.deny,该文件中所列用户不允许使用crontab命令

  文件:/etc/cron.allow,该文件中所列用户允许使用crontab命令

  文件:/var/spool/cron/,所有用户crontab文件存放的目录,以用户名命名

crontab命令详解

  1.命令格式:

    crontab [-u user] [ -e | -l | -r ]

  2.命令参数:

    -u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。

    -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

    -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

    -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

-i:在删除用户的crontab文件时给确认提示。

watch命令

命令格式:watch[参数][命令]

可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令

命令参数:

  -n或--interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。

  -d或--differences 用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。

如:每隔一秒高亮显示网络链接数的变化情况

  watch -n 1 -d netstat -ant

文本过滤

^ 只匹配行首

$ 只匹配行尾

* 一个单字符后紧跟*,匹配0个或多个此单字符

?       匹配其前面的字符0或1次

+       匹配其前面的字符至少1次

[] 匹配[]内字符。可以是一个单字符,也可以是字符序列,用-表示范围

如用[1-5]代替[12345]

\ 用来屏蔽一个元字符的特殊含义。如$ . ' " * ^ | ( ) \ + ?

. 匹配任意单字符

pattern\{n\} 用来匹配前面pattern出现次数。n为次数

pattern\{n,\}m 含义同上,但次数最少为n

pattern\{n,m\} 含义同上,但pattern出现次数在n与m之间

例:

^$ 匹配一个空行

^.$ 匹配只包含一个字符的行

compu*t 匹配字符u 0次或多次,这个可匹配computer,

A\{2\}B 匹配字母A出现两次,并以B结尾

A\{2,4\}B 匹配字母A出现2到4次之间

命令执行顺序&& ,||

&&

格式:命令1 && 命令2

说明:命令1返回真(即返回0,成功被执行)后,命令2才能够被执行

例:/apps/bin目录将会被移到/apps/dev/bin目录下,如果它没有被成功的执行,就不会删除/apps/bin目录

mv /apps/bin /apps/dev/bin && rm -r /apps/bin

||

格式:命令1 || 命令2

说明:命令1未执行成功,那么就执行命令2

例: 拷贝文件没成功的话,就显示错误.

cp word.txt word.bak || echo "cp file failed!"

iproute2命令

一、IP地址管理

1、显示 IP 地址

  ip addr show [dev eth0]

2、增加删除 IP 地址

  ip addr add 192.0.2.1/24 dev eth0

  ip addr del 192.0.0.1/24 dev eth0

3、显示接口统计

  ip -s link [ls eth0]

二、网卡和链路配置

1、显示链路

  ip link show [eth0]

2、修改接口状态

  ip link set eth0 up|down

三、路由表管理

1、显示路由表

  ip route [show dev eth0]

2、新增路由

  ip route add 10.2.2.128/27 dev eth0

3、增加默认路由

  ip route add default via 192.168.1.1

4、修改默认路由

  ip route chg default via 192.168.1.2

5、删除默认路由

  ip route del default

条件测试

格式:test condition

文件测试状态

-d 目录

-s 文件长度大于0,非空

-f 正规文件

-w 可写

-l 符号链接

-u 文件有suid位设置

-r 可读

-x 可执行

字符串测试 string_operator 可为=(相等) !=(不相等) -z(空串) -n(非空串)

数值测试 numeric_operator可为 -eq(相等),-ne(不相等),-gt(大于),-lt(小于),-le(小于等于),-ge(大于等于)

组合测试: -a 逻辑与 -o逻辑或 !逻辑否

wc命令

命令参数:

-c 统计字节数。

-l 统计行数。

-m 统计字符数。这个标志不能与 -c 标志一起使用。

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

cal命令

显示当前月份日历

  命令:cal

显示指定月份的日历

  命令:cal 9 2012

显示2016年日历

  命令:cal 2016

date命令

显示当前时间:

  命令:

  focus@ubuntu:~$ date

  Thu Aug 31 03:01:17 PDT 2017

  focus@ubuntu:~$ date '+%x'

  08/31/2017

显示日期和设定时间:

  命令:date --date 08:42:00

date -d参数使用:

  date -d "nov 22" 今年的 11 月 22 日是星期三

  date -d '2 weeks' 2周后的日期

  date -d tomorrow +%Y%m%d

  date -d yesterday +%Y%m%d

  date -d last-month +%Y%m(上个月是几月)

  date -d next-month +%Y%m(下个月是几月)

  使用 ago 指令,您可以得到过去的日期:

  date -d '30 days ago' (30天前的日期)

  使用负数以得到相反的日期:

  date -d 'dec 14 -2 weeks' (相对:dec 14这个日期的两周前的日期)

  date -d '-100 days' (100天以前的日期)

ln命令

给文件创建软链接

  命令:ln -s log2013.log link2013

给文件创建硬链接

  命令:ln log2013.log ln2013

wget命令

使用wget下载单个文件

  命令:wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip

使用wget -c断点续传

  命令:wget -c http://www.minjieren.com/wordpress-3.1-zh_CN.zip

使用wget -b后台下载

  命令:wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip

scp命令

从本地服务器复制到远程服务器:

  (1) 复制文件:

    命令格式:

      scp local_file remote_username@remote_ip:remote_folder

  (2) 复制目录:

    命令格式:

      scp -r local_folder remote_username@remote_ip:remote_folder

从远程服务器复制到本地服务器:

  从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。

find命令常用用法

命令格式:

  find path -option [-print] [-exec -ok]

-print:find 命令将匹配的文件输出到标准输出

-exec:find 命令对匹配的文件执行该参数所给出的 shell 命令,相应命令格式为:command {} \;

-ok:作用同 -exec ,每一步需要用户确认

-option:

  -name:按名查

  -perm:按权限查

  -user:按用户查

  -group:按照组查找

  -mtime -n +n:文件更改时间查找,-n 是 n 天内,+n 是 n 天前,-atime -ctime类似

  -type:某一类型的文件

  -size n[c]:查找文件长为 n 块的文件

MOUNT

mount [-t vfstype] [-o options] device dir

-o options: 主要用来描述设备或档案的挂接方式

  1)loop:用来把一个文件当成硬盘分区挂上系统

  2)ro:只读

  3)rw:读写

  4)iocharset:指定访问文件系统所用字符集

device:连接设备

DUDF

du(disk usage)搜索文件统计文件大小

1、显示指定文件所占空间

  du file1 file2

2、显示指定目录占的空间

  du dir

3、只显示总和大小

  du -s

4、以方便格式显示

  du -h

5、文件目录全显示

  du -ah

6、显示几个文件或目录各自占用磁盘空间大小并统计总和

  du -c

df(disk free)文件系统磁盘空间占用情况,如没有文件名指定,所有当前挂载的文件系统可用空间将被显示

1、显示磁盘使用情况

  df

2、以inode情况显示

  df -i

文件名的匹配

特殊的匹配符号:

* 匹配文件名中的任何字符串,包括空字符串

? 匹配文件名中的任何单个字符串

[...] 匹配[]中包含的任何字符

[!...] 匹配[]中非感吧号!之后的字符

tee命令

作用:把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中

格式:tee filename

例:who | tee who.out 使用who命令,结果输出到屏幕上,同时保存在who.out文件中

文件隐藏属性

chmod u+s xxx 设置setuid(4775)

chmod g+s xxx 设置gid(2775)

chmod o+t xxx 设置stick bit,针对目录(1775)

read命令

作用:读入值给变量

1、read 从键盘读入字符到name变量

2、read -p 'msg' var... 输入提示

3、read -s vars 隐藏输入

4、read读取文件时,每次调用会读取文件中“一行”文本,文本没可读行时,以0状态退出

#!/bin/bash

count=1

cat aa | while read line

do

  echo "$count:$line"

  count=$[ $count + 1 ]

done

重定向:<,<<,>,>>

command>filename 把标准输出重定向到一个新文件中

command>>filename 把标准输出重定向到一个文件中(追加)

command 1>filename 把标准输出重定向到一个新文件中

command>filename 2>&1 把标准输出和标准错误一起重定向到一个文件中

command 2>filename 把标准错误重定向到一个新文件中

command 2>>filename 把标准错误重定向到一个文件中(追加)

command >>filename 2>&1 把标准输出和标准错误一起重定向到一个文件中(追加)

command <filename >filename 2 command命令以filename文件作为标准输入,以filename2文件作为标准输出

command <&m 把文件描述符m作为标准输入

command >&m 把标准输出重定向到文件描述符m中

command <&- 关闭标准输入

/dev/null: 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。

/dev/zero: 在类UNIX 操作系统中, /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)

ps命令

使用该命令能确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.2 119816 5628 ? Ss 04:37 0:09 /sbin/init auto noprompt

root 2 0.0 0.0 0 0 ? S 04:37 0:00 [kthreadd]

root 4 0.0 0.0 0 0 ? S< 04:37 0:00 [kworker/0:0H]

root 6 0.0 0.0 0 0 ? S 04:37 0:02 [ksoftirqd/0]

root 7 0.2 0.0 0 0 ? S 04:37 2:07 [rcu_sched]

root 8 0.0 0.0 0 0 ? S 04:37 0:00 [rcu_bh]

root 9 0.0 0.0 0 0 ? S 04:37 0:00 [migration/0]

root 10 0.0 0.0 0 0 ? S< 04:37 0:00 [lru-add-drain]

root 11 0.0 0.0 0 0 ? S 04:37 0:00 [watchdog/0]

%CPU 进程的cpu占用率

%MEM 进程的内存占用率

VSZ 进程所使用的虚存的大小

RSS 进程使用的驻留集大小或者是实际内存的大小

TTY 与进程关联的终端(tty)

STAT 检查的状态:进程状态使用字符表示的,如R(running正在运行或准备运行)、S(sleeping睡眠)、I(idle空闲)、Z (僵死)、D(不可中断的睡眠,通常是I/O)、P(等待交换页)、W(换出,表示当前页面不在内存)、N(低优先级任务)T(terminate终 止)、W has no resident pages

START (进程启动时间和日期)

TIME ;(进程使用的总cpu时间)

COMMAND (正在执行的命令行命令)

NI (nice)优先级

PRI 进程优先级编号

PPID 父进程的进程ID(parent process id)

SID 会话ID(session id)

WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。

FLAGS 与进程相关的数字标识

常用参数:

  1. -A :所有的进程均显示出来
  2. -a :不与terminal有关的所有进程
  3. -u :有效用户的相关进程
  4. -x :一般与a参数一起使用,可列出较完整的信息
  5. -l :较长,较详细地将PID的信息列出

常用组合:

  1. ps aux # 查看系统所有的进程数据
  2. ps ax # 查看不与terminal有关的所有进程
  3. ps -lA # 查看系统所有的进程数据
  4. ps axjf # 查看连同一部分进程树状态

netstat命令

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

netstat参数虽然很多,但是常用的不多,主要是下面几个参数:

netstat -[atunlp]

  • -a :all,表示列出所有的连接,服务监听,Socket资料
  • -t :tcp,列出tcp协议的服务
  • -u :udp,列出udp协议的服务
  • -n :port number, 用端口号来显示
  • -l :listening,列出当前监听服务
  • -p :program,列出服务程序的PID

查看端口占用时,使用:netstat -anp|grep 80

top命令

top命令经常用来监控linux的系统状况,比如cpu、内存的使用。

top - 08:16:55 up 1 day, 1:09, 2 users, load average: 0.00, 0.01, 0.00

Tasks: 252 total, 1 running, 250 sleeping, 0 stopped, 1 zombie

%Cpu(s): 0.5 us, 0.3 sy, 0.0 ni, 98.6 id, 0.4 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 4025440 total, 858884 free, 1388728 used, 1777828 buff/cache

KiB Swap: 4192252 total, 4192252 free, 0 used. 2260048 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1 root 20 0 119788 5980 4020 S 0.0 0.1 0:11.81 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:00.06 kthreadd

4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

6 root 20 0 0 0 0 S 0.0 0.0 0:00.86 ksoftirqd/0

7 root 20 0 0 0 0 S 0.0 0.0 1:16.12 rcu_sched

8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh

9 root rt 0 0 0 0 S 0.0 0.0 0:00.07 migration/0

10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain

11 root rt 0 0 0 0 S 0.0 0.0 0:00.29 watchdog/0

12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0

13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1

14 root rt 0 0 0 0 S 0.0 0.0 0:00.37 watchdog/1

15 root rt 0 0 0 0 S 0.0 0.0 0:00.08 migration/1

16 root 20 0 0 0 0 S 0.0 0.0 0:13.69 ksoftirqd/1

18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H

19 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kdevtmpfs

20 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns

21 root 20 0 0 0 0 S 0.0 0.0 0:00.16 khungtaskd

22 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper

23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback

24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kcompactd0

25 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd

26 root 39 19 0 0 0 S 0.0 0.0 0:13.78 khugepaged

27 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto

28 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd

29 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset

30 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd

33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff

34 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md

35 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 devfreq_wq

36 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 watchdogd

39 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd

40 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0

第一行:

  系统负载,即任务队列的平均长度。

  三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第三行:

cpu状态

  us — 用户空间占用CPU的百分比。

  sy — 内核空间占用CPU的百分比。

  ni — 改变过优先级的进程占用CPU的百分比

  id — 空闲CPU百分比

  wa — IO等待占用CPU的百分比

  hi — 硬中断(Hardware IRQ)占用CPU的百分比

  si — 软中断(Software Interrupts)占用CPU的百分比

第七行以下:各进程(任务)的状态监控

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

常用参数:

  在键盘上输入大写字母M 以达到以内存占用率大小顺序排列。另外输入大写字母P可以按CPU使用率排序。

  每两秒钟更新一次top,观察整体信息,-d参数:top -d 2

  假设9999是一个已经存在的PID,用top命令仅观察指定pid的程序的-p参数用法:top -d 2 -p 9999

iostat命令

显示CPU和I/O统计信息

  iostat的不带参数的显示CPU和I/ O的所有分区的统计信息

    -c Display the CPU utilization report.

    -d Display the device utilization report

Linux 4.10.0-32-generic (ubuntu) 08/31/2017 _x86_64_ (2 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

0.50 0.04 0.38 0.44 0.00 98.64

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn

sda 1.07 11.15 23.80 1007641 2150292

avg-cpu段:

%user: 在用户级别运行所使用的CPU的百分比.

%nice: nice操作所使用的CPU的百分比.

%sys: 在系统级别(kernel)运行所使用CPU的百分比.

%iowait: CPU等待硬件I/O时,所占用CPU百分比.

%idle: CPU空闲时间的百分比.

Device段:

tps: 每秒钟发送到的I/O请求数.

Blk_read /s: 每秒读取的block数.

Blk_wrtn/s: 每秒写入的block数.

Blk_read: 读入的block总数.

Blk_wrtn: 写入的block总数.

vmstat命令

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

1 0 0 858612 160236 1617384 0 0 6 12 63 124 1 0 99 0 0

Procs

r: The number of runnable processes (running or waiting for run time).

b: The number of processes in uninterruptible sleep.

Memory

swpd: the amount of virtual memory used.

free: the amount of idle memory.

buff: the amount of memory used as buffers.

cache: the amount of memory used as cache.

Swap

si: Amount of memory swapped in from disk (/s).

so: Amount of memory swapped to disk (/s).

IO

bi: Blocks received from a block device (blocks/s).

bo: Blocks sent to a block device (blocks/s).

System

in: The number of interrupts per second, including the clock.

cs: The number of context switches per second.

CPU

These are percentages of total CPU time.

us: Time spent running non-kernel code. (user time, including nice time)

sy: Time spent running kernel code. (system time)

id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.

wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.

st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.

free命令

free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。

focus@ubuntu:~$ free -h

total used free shared buff/cache available

Mem: 3.8G 1.3G 928M 27M 1.7G 2.2G

Swap: 4.0G 0B 4.0G

total:Total installed memory (MemTotal and SwapTotal in /proc/meminfo)

used:Used memory (calculated as total - free - buffers - cache)

free:Unused memory (MemFree and SwapFree in /proc/meminfo)

shared:Memory used (mostly) by tmpfs (Shmem in /proc/meminfo, available on kernels 2.6.32, displayed as zero if

not available)

buffers:Memory used by kernel buffers (Buffers in /proc/meminfo)

cache:Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)

buff/cache:Sum of buffers and cache(A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the disk and stored for later use.)

available:Estimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the cache or free fields, this field takes into account page cache and also that not all reclaimable memory slabs will be reclaimed due to items being in use (MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as free)

配置默认程序

update-alternatives 命令用于配置默认程序,版本切换

1、display 命令,查看命令链接信息

  update-alternatives --display name

2、install 命令,增加命令链接

  update-alternatives --install link name path priority

  link:链接原目录

  name:链接符名称

  path:链接新目录

  priority:优先级

3、remove 命令,删除命令链接

  update-alternatives --remove name path

4、config 配置命令链接

  update-alternatives --config name

5、auto 和 manual模式切换,默认为 auto,将 manual 切至 auto

  update-alternatives --auto name

软件管理

dpkg

安装

  dpkg -i package.deb

卸载

  dpkg -r packagename

彻底卸载

  dpkg -P packagename

apt-get

搜查包

  apt-cache serach packagename

安装

  apt-get install packagename

重新安装包

  apt-get install packagename --reinstall

修复安装

  apt-get --f install packagename

删除

  apt-get remove packagename

删除,包括配置文件

  apt-get remove packagename --puge

更新源

  apt-get update

更新安装包

  apt-get upgarde

更新系统

apt-get dis-upgrade

特定shell变量

$# 传递到脚本的参数个数

$* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个

$$ 脚本运行的当前进程ID号

$! 后台运行的最后一个进程的进程ID号

$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数

$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

其他:$0(脚本名字) $1 $2 $3 ...$9

1、进入insert模式

  o:当前行后

  O:当前行前

  r:替换当前字符

  R:替换当前字符直到ESC

2、删除命令

  #dw:删除#个word

  d^:删除至行尾

  d$:删除至行首

3、 u:撤消

  ctrl+r:反撤消

4、搜索替换

  /pattern:前往后查找

  ?pattern:后往前查找

  n:同方向查找下一个

  N:反方向查找下一个

  :s/p1/p2/g:当前行替换

  :n1,n2 s/p1/p2/g:n1至n2行替换

  :% s / old / new / g:全文替换

5、行命令

  :n1,n2 co n3

  :n1,n2 m n3

  :n1,n2 d

  : e file:打开文件

  :!command:执行命令

  :n1,n2!command:输出替换nq到n2

  :n1,n2w ! command:n1到n2间作为command输入

ubuntu 配置 jdk 环境

在 /etc/profile 文件尾添加
JAVA_HOME=/opt/jdk1.8.0


JRE_HOME=${JAVA_HOME}/jre PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
:$JRE_HOME/bin


export JAVA_HOME export JRE_HOME export PATH


常用打包压缩命令

1、将所有.jpg文件打成一个名为all.tar的包

  tar -cf all.tar *.gif

2、将所有.gif文件追加到all.tar

  tar -rf all.tar *.gif

3、更新原来tar包中logo.gif文件

  tar -uf all.tar logo.gif

4、列出all.tar中文件

  tar -tf all.tar

5、解包文件

  tar -xf all.tar

6、tar调用gzip

  tar -czf all.tar.gz *.jpg

  tar -xzf all.tar.gz

7、调用bzip2

  tar -cjf all.tar.bz2 *.jpg

  tar -xjf all.tar.bz2

8、调用xz

  tar -cJf all.tar.xz *.jpg

  tar -xJf all.tar.xz

在 /etc/profile 文件尾添加
JAVA_HOME=/opt/jdk1.8.0


JRE_HOME=${JAVA_HOME}/jre PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
:$JRE_HOME/bin


export JAVA_HOME export JRE_HOME export PATH


常用打包压缩命令

1、将所有.jpg文件打成一个名为all.tar的包

  tar -cf all.tar *.gif

2、将所有.gif文件追加到all.tar

  tar -rf all.tar *.gif

3、更新原来tar包中logo.gif文件

  tar -uf all.tar logo.gif

4、列出all.tar中文件

  tar -tf all.tar

5、解包文件

  tar -xf all.tar

6、tar调用gzip

  tar -czf all.tar.gz *.jpg

  tar -xzf all.tar.gz

7、调用bzip2

  tar -cjf all.tar.bz2 *.jpg

  tar -xjf all.tar.bz2

8、调用xz

  tar -cJf all.tar.xz *.jpg

  tar -xJf all.tar.xz

1、将所有.jpg文件打成一个名为all.tar的包

  tar -cf all.tar *.gif

2、将所有.gif文件追加到all.tar

  tar -rf all.tar *.gif

3、更新原来tar包中logo.gif文件

  tar -uf all.tar logo.gif

4、列出all.tar中文件

  tar -tf all.tar

5、解包文件

  tar -xf all.tar

6、tar调用gzip

  tar -czf all.tar.gz *.jpg

  tar -xzf all.tar.gz

7、调用bzip2

  tar -cjf all.tar.bz2 *.jpg

  tar -xjf all.tar.bz2

8、调用xz

  tar -cJf all.tar.xz *.jpg

  tar -xJf all.tar.xz