unix命令行的个人心得


unix命令行的个人心得
 
shell 命令行的转意字符是\  www.2cto.com  
echo $PATH    //获得系统环境变量的当前值
include一个文件(类) 要: 1.4.#ifndef _ALARM_    #define _ALARM_  #endif
解压复制方法:(cp  /home/allen/materials/code-linux.tar.gz  ./)  tar zxvf code-linux.tar.gz
pwd 路径
mkdir 创建文件夹
ls -a -f -l(权限)
man 命令  查询命令使用方法
删除文件夹 rm -drf rmdir
cp 复制 mv name1 name2 修改名字  复制文件夹 -R
touch a.txt 创建文件  www.2cto.com  
设置权限chmod +x hello.c(添加)-wrx hello.c(少掉) a+wrx hello.c (全部)
查看进程 ps ux(自己) ps aux(全部)
cat hello.c 打开hello.c    less hello.c more hello.c
kill -9(强制) 进程id 杀死进程   kill all 名字
cat hello.c>hi.c(覆盖)  cat hello.c>>hi.c(添加)
vim程序下 n yy p(复制黏贴多行)  n dd(删除多行) u(后退) ctrl+r(前进)
vim程序下 set nu (有行号) set mouse=a (启动对鼠标支持)w 写入 q退出 q!强制退出
df -h (文件系统 挂载点 k块已用  可用 已用%)
cp 文件路径+文件名 ~(路径名)
跟踪程序 strace pwd
./hello & (运行并获取进程id)
cd . .. ~ 改变路径
vim程序下 要自当前光标位置向上搜索,请使用以下命令:  /pattern   Enter  (末行模式)要取消就输入没有的模式。
vim程序下 要自当前光标位置向下搜索,请使用以下命令:  ?pattern   Enter
如上的搜索下 请按   n   或   N或 place ;      n:继续朝同一方向搜索 :place。       N:反方向进行搜索。  
要查找仅出现在行首的   place,请在该单词前加一个插字符号   (^):       /^place   Enter
要查找仅出现在行尾的   place,请在该单词后加一个货币符号   ($):       /place$   Enter     转义字符\ 使\$ 的$变成普通字符  
find 路径 -name 文件名字  whereis 文件名
退出执行 ctrl+/ 、ctrl+c 、ctrl+q
gcc aa.c error2e.c -i ../include/(main文件include的apue.h的具体位置) -o shellm
echo $path 打印变量
调试工具:gdb
start next(n 下一条) s(进入函数内部) p 变量名 打印变量 c(continue) break 188 设置断点 finash 退出函数 q退出gdb l列出源码
在 find 命令找出的文件中查询某一关键字(管道符)
find ./ -name Makefile | xagrs grep GCC  如果不行则去掉xagrs 如果没有找到会报错 不是命令写错了
grep 'abc 文件夹名字   结果:显示匹配个数
grep -n "sdkfj" 文件夹名 显示匹配的行号及内容
-b,--byte-offset   打印匹配行前面打印该行所在的块号码。
rm -rf 文件夹名       强制删除非空目录
mv 原名 后来的名字      修改名字
diff 文件名1 文件名2 -y -w (查看两个文件的差别)
还有一处经常出错:stdlib.h stdiol.h 等的原因是因为include顺序问题
vim程序下 :vs 新文件名 (用于打开多个窗口) ctrl+w(切换窗口)
   www.2cto.com  
一,grep:全面搜索正则表达式并打印出来
    grep(最常用),egrep(扩展的grep),fgrep
    用法:grep [options] ‘PATTERN’ file...
    eg:grep ‘root’ /etc/passwd
    
 选项:
 
       -i不区分大小写
          -v反向显示,只显示没匹配到的
          -n显示匹配到的行在原文中所处的行号
          -An(after)把匹配到的行后的n行也显示出来
          -Bn(before)把匹配到的行前的n行也显示出来
          -Cn(context)把匹配到的行前行后的n行也显示出来
    
 模式:由正则表达式组成
       ^脱字符 ---行首定位符
       &---行尾匹配符
       .---用于匹配单个字符
       *---匹配0或多个位于*号前的字符 root*  匹配roo,roott,roottt,,,
       \<词首定位符
       \>词尾定位符
       \<root\>词首词尾同时定位
       \{root\{1\}
       \( \)  eg:\(root\).*\1able   \1引用了root
       []匹配一组字符中任一个   eg:/[Ll]ove/
       [x-y]匹配指定范围内的一个字符  eg:/[A-Z]ove/
       [^]匹配不在指定组内的字符 eg:[^A-Z]
        \ 用来转义元字符 ,去除其后紧跟的元字符或通配符的特殊意义。eg: love\.
       \<  词首定位符 eg:\<love 表示以单词love开头的词的行
       \>词尾定位符 eg:love\>
       \(...\)匹配稍后将要使用的字符的标签 
              eg:\(love\)able\1able 匹配的是loveableloveable字符串
       x\{m,\} 字符x重复出现至少m次
       x\{m,n} 字符x重复出现m到n次 
egrep新增的元字符 
  1. +   匹配一个或多个加号前的字符 eg:‘[a-z]+ove'匹配一个或多个小写 
         字母后跟ove的字符串  
  2. ?   匹配另个或一个前导字符,即它前面的那个字符可有可无
  3. a|b 匹配a或b  eg :’love|hate‘ 匹配love或hate
  4.() 字符组   eg:love(able|ly)匹配loveable或lovely
 
二,cut命令
    cut命令是用来剪下文本文件里的数据,文本文件可以是字段类型或是字符 
           类型,后一种数据类型在遇到需要从文件里剪下特定的列时特别方便。
    
    语法:
 
     cut -c list [file ...]
          cut -f list [-d delim] [file...]
    用途:
 
  从输入文件中选择一或多个字段或者一组字符,配合管道,可再做进一步处理
    -c list
      以字符为主,做剪下的操作。list为字符编号或一段范围的字符
    -d delim
      通过-f选项,使用delim作为定界符。
        eg:
 
        cut -d: -f1 /etc/passwd(以冒号为定界符切割)
               cut -d" " /etc/passwd(以空格作为定界符切割)
    -f list
      以字段为主,做剪下的操作
 
三,管道 |  
    管道:将前一个命令的输出结果作为后一个命令的输入内容。
    使用方法:command1 | command2 | command3 | ……
    eg:echo redhat | passwd –stdin student(将student的密码改为redhat)
        tee
      功能说明:读取标准输入的数据,并将其内容输出成文件。
     eg: ls /etc |tee /tmp/ls.out|less
        (tee将ls /etc出来的内容变成两份,一份输出到/tmp/ls.out ,一份 
         使用less查看)

相关内容

    暂无相关文章