初学unix命令笔记

Vi 按esc命令和文本切换

   命令:o原有文本光标下一行写入
         O上一行写入,即原有文本下降一行,空个上行出来
          i光标字符前写入
         I光标行头写入
         a光标字符后写入
         A光标行尾写入
个人认为I和A比小写的有用。
         dd删除当前行
         x删当前字符
hjkl 左下上右
标准unix窗口只有24行。
多于一24行一个屏命令 ctrl+y e 上下,u d 上下半屏 b f 上下24行
u撤销上一次编辑命令              
U撤销光标所在行的命令
退出并保存ZZ 很管用
:w filename 将缓冲区的内容写入filename 继续
         J合并两个连续的行
通配符 ?* 匹配集合[ ] 反集合[ ! ]    用户根目录 ~ 工作目录 .  父目录 ..
 
无论何时,如果某个路径名以斜线开始,那么它一定是一个绝对路径名。
所谓相对路径就是如果目标目录或文件处于工作目录下,就是不用敲上工作目录的父目录了,直接敲子目录的名字到所要到的地方,如果目标目录不在他的子目录之列,就通过 .. 操作或加上~操作达到目的。
 ~/ 这种是代表本用户的根目录 ~文件名 这种是代表其他用户的根目录 文件名是其他用户的 id
unix 中,一个物理文件只有一个索引节点,但它可以有多个名称,硬链接只可用于文件,而软连接可以用于文件和目录(不过目录本身也是一种文件)。
ls -a 表示显示隐藏的文件, -i 表示显示文件名和它他的链接。 -ai -ia 该知道是什么了吧。
Pwd--------print work directory
文件类型标记:
- 常规文件 d 目录 c 字符特殊 还有其他不记了
ls –ld 只会显示当前工作目录 ll hp-ux -d 和它的功能一样。 ll –a 功能把上两者的功能都包括了,它把工作目录当作隐藏文件显示出来( -a 的功能),并显示目录下其他文件( ll 的功能) { d directory     a anonymous l list l long}   -r 逆序 –t 按最近到远的时间显示一般和长列表( -lt )一起(而 hp-ux ll –t ok 了)。 ls –p 解决了段列表不能看出是文件还是目录的问题。 -R 会将目录下的所有东西列出来,有子目录就分项把目录的东东列出,直到底层无子目录。 R-recursion (递归) ls -1 (数字一)一行只显示一个,呵呵, ll 本来就每行一个。
  mkdir 命令时,如果建两个以上的文件夹,即目录,并且这些目录都不存在,必须用 -p
P parent ,如 mkdir –p jiang/ahujyy/hehe. more 显示文件,自己 man 吧。
cp 时目标路径是文件的话就会把源 cp 到当前目录下以文件命名,如果是路径就会 cp 到路径下并路径最后那个文件命名。如果目标路径是以 / 结束,表示名字和源相同。使用 -p 能保持除了时间以外的属性都和源相同。(如果源是个文件夹,目标必须是个文件夹,即把源文件夹的内容考到目标文件夹下,虽然不是以 / 结束,但是源是目录,故目标也是目录名,而不是文件名,这种叫递归复制,要用命令 -r )。只要目标是目录,就可以用通配符。担心是否有文件被覆盖,用 -i
移动 mv 交互 -i ,强制 -f (即不管有没有写的权限,强制移入。 Force )同一个目录下,把文件移动到一个文件,后面的文件即重新命名文件的名字,这样完成重命名的功能。
ln 链接命令,将以文件链接至另一文件,如果目标文件存在,强制链接就会导致两者物理文件是新地址。原目标文件丢失。(链接使两东东指向同一物理地址)如果要链接到另一个文件系统时得用符号链接,硬链接不能实现。链接到目录也要符号链接。 -s sign 吧)我觉得是把目标链接到源,这点从符号链接看到。
rm –f  强制     -r 递归删除 所以有常用命令 rm –rf
find exec 组合
vi 里编辑状态 esc 进命令,按 r ,然后按你所要的字母,它会覆盖光标下的一个字母;光标处在一行字符串当中,如果你输入字母是添加不是修改,按 esc R+ 字母串,字母串会不断的覆盖后面的字,按 esc A 到句末。
esc S dd 区别是: S 是光标处在刚才一行变空行头, dd 一行没了,下一行跟着缩进,没空行。 s+ 字母,把一个字母替代,后面就是添加字母。
这么繁琐,不知道有什么实用。命令 X 删除后仍处命令状态。文本标记命令 m 不知道干嘛。
改变大小写命令~。对文本的操作,我觉得有对字符的操作就够了。修改 esc c+ 数字 +h (移动光标命令)。放置命令 p ,我看还不如手按字符。一行按 yy 命令,到其他地方按 p ,是复制和粘贴的功能。 ex 是地址 + 命令
 
 
正则表达式:
 
由原子和运算符组成。 原子分为:单个字符,点,类,锚,向后引用。
把要比较的文本和正则表达式匹配,只要文本中包括符合匹配的信息就会返回 true
  单个字符不用说。点,一个点匹配除了换行符( /n )外的任意单个字符。类原子定义了一个 ASCII 字符集。其中任意一个都要匹配文本中的任意字符。就是说里面有一个匹配文本中一个就 ok 了。 [ ABF ] 文本 ai 匹配。 - 表示范围, [a-d], ^ 表示非, [^0-9] 注意:在类原子括号集内的 ^ 符号表示余集,它被解释除了集合中标出字符之外的任意 ascii 字符。(/)转义字符。
[^/^]表示除了^之外的任意字符,[0-9/-]表示数字或破折号。
锚 行首(^)行尾($)单词开头(/<)单词结尾(/>)表示找出以g结尾的单词 g/>
注意: 正则表达式开头的^字符是一个锚,含义为当前行当行首,而在其他的地方,它作为一个文本字符与自己进行匹配,如果在[]中那就是余集了;正则表达式结尾的$字符是一个锚,含义为当前行的行尾,而在其他的地方,它作为一个文本字符与自己匹配。
向后引用用于将当前或目标缓冲区内的文本和保存在系统的9个缓冲区其中之一种的文本进行匹配。/1/2…/9
 运算符:序列 空,交换 | ,重复/{m,n/}, 组(…),保存/(…/)
 例子:dog 匹配dog , a..b匹配amhb, UNIX|unix 匹配UNIX或unix;A/{3,5/}匹配AAA,AAAA,AAAAA. BA/{3,5/}匹配BAAA ,BAAAA,BAAAAA. /{3/}精确3次,/{3,/} 3次以上。/{,3/} 0到3次。
 缩写形式:*    /{0,/}
           +   /{1,/}
           ?   /{0,1/}
正则表达式中的星号*与通配符*的意义不同,前者表示将前面的字符或字符组重复0次或多次,而后者则用在文件名中,表示0个或多个字符,在正则表达式中,星号预符不能独立使用,必须跟在一个原子或原子组织之后。
? 也一样。前者表示重复0或1次。
加号有些系统不可用,用* 代替a+ = aa*
匹配时会贪婪模式匹配 a.*hjj 匹配 adfa hjjdfsshjjeed.最大的匹配。
组运算符 A(BC)/{3/} 匹配 ABCBCBC 
保存运算符/(…/)     在一个表达式内,第一个被保存的文本被复制到缓冲区1,第二个被复制到缓冲区2,最多到第九个缓冲区。
/( [A-Z a-z]/).*/1表示以相同的字符开头和结尾的字符或字符串 /1表示和存在一中的内容匹配,它是个向后引用。
/b匹配一个单词边界,也就是指单词和空格间的位置。例如‘er/b’可以匹配nerver,但不匹配verb中的er 后者匹配er/B. /d匹配一个数字字符,等价于[0-9]./D匹配一个非数字字符,等价于[^0-9]. /f 匹配一个换页符。等价于 /x0c 和 /cL。/n 匹配一个换行符。等价于 /x0a 和 /cJ。 /r 匹配一个回车符。等价于 /x0d 和 /cM。/s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ /f/n/r/t/v]。/S 匹配任何非空白字符。等价于 [^ /f/n/r/t/v]。
grep(global regular expression print)fgrep 快grep egrep扩展grep用到组操作符时用它。
          每一行前加上所在的文件块编号
          -c 只打印匹配模式的行编号计数。grep –c “^$” file 查空行的行数。
          -i 在匹配文本是忽略大小写。
          -n 在每行前显示其行编号。
           -v逆向输出,打印不匹配模式的行。如grep –vn “….” File 表示输出小于等于三个字符的行。
Shell简介 unix操作系统包含四种不同的部分:内核,shell,实用程序和应用程序。
包括两主要部分:解释程序,开发shell(命令)脚本的程序设计功能。
                 Bourne shell     C shell Korn shell
                系统变量SHELL,它标识至你登录shell的路径。查看    echo $SHELL
          Echo $0 0是零。显示当前shell。切换$bash $ksh $csh 回到上个shell 用exit。
   标准输入流描述符0    标准输出1 标准错误2
   重定向:改变默认的输入出错对象。输入重定向 命令 0<file 或命令 <file
 输出 命令 1>file    命令>file 命令>| file(强制覆盖 ) 命令>>file 在文件后继续写。
例子:$ls file1 noFile 2>myErrFile 1>myOut.    $ls file1 noFile 1>| mystdOut 2>|&1 (重定向到同一个文件 )其中1可以不写。管道是一个运算符不是一个命令。 tee 命令复制标准输入至标准输出。
命令执行:顺序命令 中间用分号。$echo “/n Goblins&Ghosts/n    Month”>Oct2000; cal 10 2000>>Oct2000
$more Oct2000
                       Goblins&Ghosts
                         Month
                       October 2000
S    M   Tu   W   Th   F   S
1     2    3    4    5   6    7
分组命令:$(echo “/n Goblins&Ghosts/n    Month”;cal 10 2000)>Oct2000链式命令 | 管道
条件命令:&& 前成功后才执行。|| 钱失败后才执行
命令编辑 esc h在命令中左移一个字符 j下翻k往用过的上翻 l右移。I i a A x 不说了。、
元字符 拥有特殊的解释的字符 三种被称为引号的元字符 “ ‘ /
             /    ex: $echo /< /> /” /’ // /$   <>”’/$
             还有是命令接命令时 ,第一个命令完 ;/ 按回车 接着下一行命令。前一个命令不会被马上执行。
“     双引号去掉大多数元字符的特殊解释。但$除外。 Ex: $ x=hello $echo “<>$x ‘y’ ? &”
                   结果:<>hello ‘y’ ? & 双引号保留诸如空格,制表符和换行等空白符。
              ‘    类似“ 效果更强 $ 也搞定。 上试结果<>$x”y”?&.(‘’----“”)
              命令代替$() $echo Hello! The date and time are: $(date)
             作业控制:前台作业 终端只能同时运行一个,一个交互。 后台作业和前台作业共享标准输入输出(键盘屏幕)后台作业要输入参数要变为前台作业。它也会输出输出信息到屏幕上。后台处理命令时 结尾加个& 要想终端断了仍在运行在命令前加nohup
             前台作业 挂起ctrl+z 恢复fg 终止ctrl+c
             后台作业 $longJob.scr&
                      [1]     172990       前面是作业号右边是进程标识符PID;
                      挂起stop %作业号 恢复 bg %1( 作业号) 终止 kill %作业号
             jobs 显示当前作业及状态。
             进程ID PID 命令ps –ef
别名: $alias dir=ll =要紧跟dir。dir就有了ll功能。直接dir 变量时$AA=BB用时还要echo$ $AA
            删除别名例子 unalias dir
变量:用户定义 预定义两种 用户就如上AA,
预定义(ksh): CDPATH cd 命令时搜索的路径。
           EDITOR 命令行编辑器的路径名 如vi
           ENV     环境文件路径名 每次启动新用户都会加载。
           HOME   用户和目录 每次空cd参数时用到。
           PATH    命令搜索路径 如cd ll 等命令的搜索路径
           PS1      主要提示符 常用的是$. 还有%一般都是$。不过一行没输入完如等’或”时,
                    是提示符<
           SHELL   登录shell的路径名 如查看它 $echo $SHELL
        其他我不太熟,看profile文件慢慢了解吧。
选项:常见的 noglob 禁用通配符展开
             verbose 在命令执行之前显示他们
             xtrace emacs ignoreeof noclobber vi 等
        设置 set –o 选项    取消设置 set +o option 显示全部 set -o
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值