Linux命令

有个用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 <shell>][-u <uid>][用户帐号]

-c<备注>  修改用户帐号的备注文字。 
 -d登入目录>  修改用户登入时的目录。 
 -e<有效期限>  修改帐号的有效期限。 
 -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。 
 -g<群组>  修改用户所属的群组。 
 -G<群组>  修改用户所属的附加群组。 
 -l<帐号名称>  修改用户帐号名称。 
 -L  锁定用户密码,使密码无效。 
 -s<shell>  修改用户登入后所使用的shell。 
 -u<uid>  修改用户ID。 
 -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 号码= 1000GID 号码= 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) 卸载软件

<span style="color:#333333">sudo apt-get purge 软件名</span>

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 目录结构 

35)linux打开文件并定位到指定行

vim +行数 文件名

比如说test.xml文件里第10行是我要修改的内容  我就直接vim +10 test.xml 就能直接定位到所在行
 

36) 统计目录(包括子目录)的磁盘大小及排序

       du -lh --max-depth=1|sort -r

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值