shell常用18式

作者: 买不起扁担的沙和尚 | 来源:发表于2018-07-23 23:07 被阅读61次

应用场景:Linux下python/c++和shell编写程序(玩Linux运维的大神求放过...)

1.cd命令(用于切换目录)
    cd /root/Moon      # 切换到目录/用于切换的指定目录  
    cd ./Moon          # 切换到当前目录下的Moon目录中,“.”表示当前目录    
    cd ../Moon         # 切换到上层目录中的Moon目录中,“..”表示上一层目录 
2.ls命令(作用类似windows下的dir,用于查看文件或目录)
    -l :列出长数据串,包含文件的属性与权限数据等  
    -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)  
    -d :仅列出目录本身,而不是列出目录的文件数据  
    -h :将文件容量以较易读的方式(GB,kB等)列出来  
    -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来  
3.grep命令(按行查找匹配的信息,常配合管道符‘|’使用)

简单语法如下:

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

常用参数:

-a :将binary文件以text文件的方式查找数据  
-c :计算找到‘查找字符串’的次数  
-i :忽略大小写的区别,即把大小写视为相同  
-v :反向选择,即显示出没有‘查找字符串’内容的那一行
4.cp命令(用于复制文件)
    -a :将文件的特性一起复制  
    -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份  
    -i :若目标文件已经存在时,在覆盖时会先询问操作的进行  
    -r :递归持续复制,用于目录的复制行为  
    -u :目标文件与源文件有差异时才会复制  
5.mv命令和rm命令(mv用于移动文件、目录或更名,rm用于删除文件或目录)
-f :强制执行,不会询问  
-i :若目标文件已经存在,就会询问 

(若是坚持看到这里,呵呵,那你算是看对了,重点马上就来了)

6.find命令(用于查找,额这个用的最多,也有点多)

它的基本语法如下:

 find [PATH] [option] [action]  
  
# 与时间有关的参数:  
-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;  
-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;  
-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;  
-newer file : 列出比file还要新的文件名  
# 例如:  
find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件  
  
# 与用户或用户组名有关的参数:  
-user name : 列出文件所有者为name的文件  
-group name : 列出文件所属用户组为name的文件  
-uid n : 列出文件所有者为用户ID为n的文件  
-gid n : 列出文件所属用户组为用户组ID为n的文件  
# 例如:  
find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件  
  
# 与文件权限及名称有关的参数:  
-name filename :找出文件名为filename的文件  
-size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件  
-tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、  
             目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);  
-perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;  
-perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示  
-perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
7.ps命令(用于将某个时间点的进程运行情况选取下来并输出)

敲到手疼其实也就这几条

ps aux # 查看系统所有的进程数据  
ps ax # 查看不与terminal有关的所有进程  
ps -lA # 查看系统所有的进程数据  
ps axjf # 查看连同一部分进程树状态 
8.kill命令(用于向%jobnumber或PID传送一个signal)

它的基本语法如下:

kill -signal PID  #或者kill -signal %jobnumber
signal的常用参数如下:
SIGHUP            #启动被终止的进程  
SIGINT            #相当于输入ctrl+c,中断一个程序的进行  
SIGKILL           #强制中断一个进程的进行  
SIGTERM           #以正常的结束进程方式来终止进程  
SIGSTOP           #相当于输入ctrl+z,暂停一个进程的进行
9.killall命令
它的一般语法如下:
killall [-iIe] [command name] 
它的参数如下:
 -i                #交互式的意思,若需要删除时,会询问用户  
-e                 #表示后面接的command name要一致,但command name不能超过15个字符  
-I                 #命令名称忽略大小写 
10.file命令(用于判断接在file命令后的文件的基本数据)
简单却要重点注意:
file filename 
11.vim命令

该命令主要用于文本编辑,它里面有很多非常好用的命令,你可以下载vim常用操作的详细说明。

12.chmod命令(用于改变文件的权限)
一般的用法如下:
chmod [-R] xyz 文件或目录     #[-R]递归处理
13.chgrp命令(用于改变文件所属用户组)
 chgrp [-R] dirname/filename   #-R 进行递归的持续对所有文件和子目录更改
14.chown命令(用于改变文件的所有者)
同上
15.tar命令(该命令用于对文件进行打包,默认不压缩,可指定解压或压缩)
它的常用参数如下:
    -c   #新建打包文件  
    -t   #查看打包文件的内容含有哪些文件名  
    -x   #解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中  
    -j   #通过bzip2的支持进行压缩/解压缩  
    -z   #通过gzip的支持进行压缩/解压缩  
    -v   #在压缩/解压缩过程中,将正在处理的文件名显示出来  
    -f   #filename :filename为要处理的文件  
    -C dir #指定压缩/解压缩的目录dir  
常用组合为:
    压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称  
    查询:tar -jtv -f filename.tar.bz2  
    解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录 
16.cat命令(用于查看文本文件的内容,通常可用管道与more和less一起使用)
    cat text | less # 查看text文件中的内容    # 注:这条命令也可以使用less text来代替  
17.time命令(用于测算一个命令(即程序)的执行时间,使用在命令的前面加入一个time即可)
    time ./process  
    time ps aux 
    在程序或命令运行结束后,在最后输出了三个时间,它们分别是:
    user:用户CPU时间,命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;
    system:系统CPU时间,命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和;
    real:实际时间,从command命令行开始执行到运行终止的消逝时间;
    real = user + system
18.gcc命令(用于将C源程序文件,编译成可执行程序)
    -o     #output之意,用于指定生成一个可执行文件的文件名  
    -c :  #用于把源文件生成目标文件(.o),并阻止编译器创建一个完整的程序  
    -I     #增加编译时搜索头文件的路径  
    -L     #增加编译时搜索静态连接库的路径  
    -S     #把源文件生成汇编代码文件  
    -lm    #表示标准库的目录中名为libm.a的函数库  
    -lpthread #连接NPTL实现的线程库  
    -std=  #用于指定把使用的C语言的版本 

相关文章

网友评论

    本文标题:shell常用18式

    本文链接:https://www.haomeiwen.com/subject/kblsmftx.html