有个用tab键的小技巧,比如说你切换到tomcat的logs目录下,想要用tail 来看某个文件的目录,但你只记得这个文件的首字母,你就可以按下tab键
如 tail -f t 按了之后就变成 tail -f catalina.了
1)wget 用来下载文件 比如 wget http://download.redis.io/releases/redis-2.8.9.tar.gz
发现我要是在这个目录 执行wget命令,下载的文件似乎也会放在这个目录
2) tar命令 这命令可以压缩文件也可以解压文件
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
但好像我不把f放最后也没事 比如说 tar xvfz redis-2.8.9.tar.gz
压缩文件:
tar -zcvf cc.tar cc.txt
上面这句的代码意思是将cc.txt压缩,名字就叫cc.tar
3) apt-get 一个下载的命令
参数有install 安装 update 更新 remove 移除 check 检查
如sudo apt-get install make
4) sudo 主要是为了提高权限,有时候你权限不够无法执行这个命令。但是你用了sudo就可以
5) ps 它是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程,也可以用kill来杀死进程
如杀死进程PID为30732的进程,则可以执行:$ kill-9 30732 ,若需要批量杀死进程,则可执行:$ ps aux | grep test | awk ‘{print $2}’ | xargs kill -9
命令参数:
a 显示所有进程
-a 显示同一终端下的所有程序
-A 显示所有进程
c 显示进程的真实名称
-N 反向选择
-e 等于“-A”
e 显示环境变量
f 显示程序间的关系
-H 显示树状结构
r 显示当前终端的进程
T 显示当前终端的所有程序
u 指定用户的所有进程
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-C<命令> 列出指定命令的状况
--lines<行数> 每页显示的行数
--width<字符数> 每页显示的字符数
--help 显示帮助信息
--version 显示版本显
6) grep 它是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
文本搜索工具就是说它可以在文件中找某个关键词
格式 : 如从test.txt文件中查找android关键词,则为:grep -n ‘android’ test.txt . 也可以同时从多个文件中查找关键词,如:grep -n ‘android’ test1.txt test2.txt
grep -v grep 就是筛选掉包含grep的文本,可以看这个笔记 拿到tomcat的进程号
grep可以跟很多个命令相结合使用
例如 ps -aux|grep redis 我估计它的作用就是先找出行程,然后再redis为搜索条件。搜索出redis这个行程
grep -v -E '(^#|^$)' redis-6379.conf 这样写可以隐藏那些注释的文档,直接显示没注释的资料如下所示
7)ls 显示当前目录内容
常用的是ls -lrg 目录名
8) rm 删除文件 如 rm a.txt
新建文件用vi,touch命令都可以,不过用vi创建会进入编辑页面,并且要:wq那文件才会存在
-r 递归删除,可删除子目录及文件
-f 强制删除
批量删除
9) mkdir 创建文件夹 rmdir 删除文件夹
如果要创建目录A并创建目录A的子目录B,没有用-p的情况下是mkdir 2次
如果用-p 可以直接创建2个目录 mkdir -p 目录A/子目录B就可以
rmdir只能删除空文件夹,假如说文件夹下还有文件的话就要用rm了
还可以这样批量创建文件夹 mkdir {1,2}
10)mv 源文件或目录 目标文件或目录
移动文件(若将文件xx.yy移动到目录tt中,则为mv xx.yy tt)或将文件改名(若将文件名xx.yy改为aa.bb,则为mv xx.yy aa.bb):
要移动多个文件,只需要这样写 mv a文件 b文件 目标文件目录
11)cp 源文件或源目录 目的目录
复制多文件到某一目录下
如 cp 文件1 文件2 目录
复制这个
12)cat 显示文件内容 cat a.txt
13)find 目录名 -name “*.txt” 注意目录名要从根目录写 比如说我a目录路径是/home/mytest/a
则如果我这样写find /a -name "*.txt"
在当前目录查找文件名后缀为txt的所有文件(若从系统根目录查找,则为find / -name “*.txt”;若从你的$HOME目录查找,则为find ~ -name “*.txt”;在/etc目录查找,则为find /etc -name “*.txt”;若要在当前目录查找文件名以一个小写字母开头,最后是4到9加上.log结束的文件,则为find . –name “[a-z]*[4-9].log”)
find / -name '*' | xargs grep 'route'
在根文件夹下查找含有关键字route的文件,列出文件名和route所在行
14)chmod命令用于改变linux系统文件或目录的访问权限
有三种不同类型的用户可对文件或目录进行访问,文件所有者(一般是文件的创建者),同组用户,其他用户。每一文件或目录的访问权限都有三组,每组用三位来表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。第一列共有10个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。确定了一个文件的访问权限后,用户可以利用chmod命令来重新设定不同的访问权限。权限代号:r:读权限,用数字4表示;w:写权限,用数字2表示;x:执行权限,用数字1表示;-:删除权限,用数字0表示;s:特殊权限。如对目录test及其子目录所有文件添加可读可写可执行权限,则为:chmod 777 test
15)ll 查看文件权限
如果后面没接文件名,则是查看该目录下所有文件权限,如果后面接文件名则是看这文件的。
16)echo命令是内建的shell命令,用于显示变量的值或者打印一行文本,如可以通过输入echo $PATH ,查看由哪些文件目录加入到了系统环境变量中(PATH前面的$表示后面接的是变量),可以通过输入echo 2 >/home/spring/1.txt ,将2写入到1.txt文件中
17)rar命令可以解压缩在windwos下生成的rar文件,如test.rar,则可以执行:$rar x test.rar
18)chown
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。
命令格式:
chown 参数 用户:群组 文件
命令参数:
必要参数:
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身
选择参数:
--reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组
--from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变
--help 显示帮助信息
--version 显示版本信息
19)查看用户属于哪个群组
groups 用户名
20)usermod
usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s
-u
-U 解除密码锁定。
添加用户附加组-g-G的区别:
例
usermod-g[groupnameorgid]username设置主要隶属组
usermod-G[groupnamesorgids]username设置非主要组(可以是多个)
如 usermod -g root mytest就是将mytest设为root
21)id 命令
只需要在你的控制台输入id。不带选项输入 id 会显示如下。结果会使用活跃用户。通过下图那个命令,我们可以看到mytest已经被加进root了
$ id
用户mytest的 UID 号码= 1000, GID 号码= 0
用户 mytest 是下面的组成员
mytest的 GID 号码=0
adm 的 GID 号码= 4
cdrom 的 GID 号码= 24
sudo 的 GID 号码= 27
dip 的 GID 号码= 30
plugdev 的 GID 号码= 46
lpadmin 的 GID 号码= 110
sambashare 的 GID 号码= 111
22) useradd 添加用户
useradd 选项 用户
其中各选项含义如下:
代码:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。=
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名 指定新账号的登录名。
useradd –d /usr/sam -m sam
此命令创建了一个用户sam,
其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录).
23)source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。
24) && 和 ||
用来执行多个命令
比如说下面这句的意思是 先cd到这个目录后 再 执行tar这个命令。
cd /usr/src && tar xzf apache-tomcat-6.0.30.tar.gz
25) vmstat
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数.
26) dpkg -s 查看这个软件是否安装
有出现这样信息的,就是这个软件已经安装的
像这样子的,就是没安装的.
dpkg -L(注意是大写) 软件名
可以查看软件的安装路径
27)awk 命令
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
awk还有一种 begin end的写法,如下所示(这一句的意思就是累加每行的第5列的那个值
ls -l /oradata2/oracle10/backup/JOB1701121034134fac678_*.DMP |awk 'BEGIN{sum=0}{sum+=$5}END{print sum}'
28) du -sb 文件名 | awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'
查看指定文件大小
上面是linux的查法,如果是aix的话就是du -sk 开头
29) find 查找文件 比如说
30)用curl 来监控网页
31) xargs 命令
看这篇笔记 管道命令和xargs的区别
32) wc命令 wc可以用来计数 -l (小写L)是统计行数
下面这个例子就是用wc这个命令来判断进程存不存在
32) 卸载软件
sudo apt-get purge 软件名
33) nohup命令 它的作用是关闭终端时 程序还可以继续在后台运行,这里的终端其实就是SecureCRT的一个窗口
请看这篇笔记 nohup命令
34) envsubst 将环境变量传递给文件
格式 envsubst 复制文件某字段值(可为空) < 复制文件 > .目标文件
redis-cluster.tmpl文件
port ${PORT} ##节点端口
cluster-enabled yes ##cluster集群模式
cluster-config-file nodes.conf ##集群配置名
cluster-node-timeout 5000 ##超时时间
cluster-announce-ip 172.18.0.1 ##实际为各节点网卡分配ip 先用上网关ip代替
cluster-announce-port ${PORT} ##节点映射端口
cluster-announce-bus-port 1${PORT} ##节点总线端
appendonly yes ##持久化模式
现在用envsubst 命令把模版的东西复制到配置文件里去
for port in `seq 7010 7015`; do \
mkdir -p ./${port}/conf \
&& PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
&& mkdir -p ./${port}/data; \
done
命令译为 循环7010 - 7015 在当前目录下创建 701*/conf 目录结构 (mkdir -p 递归创建目录)
设置701*为PORT变量 将当前目录下 模版文件 复制到 701*/conf/redis.conf 文件中
在当前目录下创建 701*/data 目录结构