本文是刚刚接触HTML的菜鸟突然跑偏回顾一下之前看过的The Linux Command Line,本文主要是Part 1部分的些许笔记,一些简单的命令集合。尚未完成,等待更新。
ls 命令 ls -a –all 显示 . 开头的隐藏文件 ls -A –almost-all 不显示 . 和 .. 其他和ls -a 一样 ls -d –directory list directories themselves not their contents ex. - input : ls -d output : . - input : ls ~ -d output : /home/yourusername (类似直接进入某文件夹使用pwd) 与-l合用可以观察当前文件夹属性 ls -F –classify 所有文件夹显示时后加/ ls -h –human-readable 在加-l的情况下把size变为可读性高的(有单位的) ls -l 详细点儿 ls -r –reverse 升序显示变为降序显示 ls -S 按文件大小排序 ls -t 按修改时间排序 P.S. 当上面两个连着用的时候,只有靠后的选项才会生效 ls -i 打印文件的索引号(用于硬链接辨识)
less 显示一个文件中的一些jumping和search操作,具体可在less中输入h查看 PageUp == b PageDown == space G == 跳至文档末尾 1G or g == 跳至文档开始 /characters == search characters - n 下一个匹配characters的结果 h == help screen
wildcards 通配符 * Matches any characters ? Mathces any single character [characters] 匹配括号内的字符 [!characters] 匹配除了括号内的字符 [[:class:]] - [:alnum:] - [:alpha:] - [:digit:] - [:lower:] - [:upper:]
cp 命令,mv 命令, rm命令,ln命令 cp -a –archive 默认选项,属性,所有权,权限全部拷贝 cp -i –interactive 在覆盖同名文件前交互 cp -r –recursive 复制文件夹 ex. - cp -r dir1 dir2 - 如果dir2不存在,则创建dir2,dir2 == dir1 - 如果dir2存在,则dir1创建在dir2目录下 dir2/dir1 == dir1 - cp dir1/* dir2 - 并不能复制dir1所有内容,只能匹配非文件夹files cp -u –update 仅复制更新的或不存在的文件 cp -v –verbose 复制中显示复制的信息 mv命令与cp的常用选项基本相同,但没有-r rm命令与cp的常用选项基本相同,添加一个 rm -r –force 强制删除 ln file link 创建硬链接(只能链接文件) ln -s item link 创建symbolic链接 - 此时使用ls -l显示的是链接文件名字符串的长度而非文件内容
命令查看 type 命令回显结果 1. /usr/bin executable program ‘cp’, ‘mv’, ‘less’, ‘mkdir’, ‘ln’, ‘touch’ etc. 2. built into the shell itself ‘type’, ‘cd’ etc. 3. shell function 4. alias ‘ls’ is ‘ls –color=auto’ which 命令 标示可执行命令的路径位置,即type的第一种命令,对于第二种,第三种(第三种未测试)均不返回 help 命令 对built-in函数显示帮助 –help 命令 很多程序提供的帮助选项 man 命令 使用less显示man页面,故可使用less命令进行jumping or searching man page 一般由八个部分组成,如下表所示。 可以直接使用man 1~8 command_name 跳转到该命令man page对应的section上 apropos 命令 显示相近的命令 whatis 命令 介绍性的显示一下命令的功能,如果它的man page里面有写的话 info 命令 info ‘command_name’ 可以进入该command的介绍,所有的命令的介绍以树的形式存储,有几个命令可以在各个节点中移动。 - n next-node - p previous-node - u parent node - ? help(然而实测是搜索,h 才是help - q 退出 直接输入info也能进入info的树节点 我们提到的大部分的命令(来自于GNU Project’s “coreutils” package)都可以通过info coreutils来查询。 帮助文档 可以直接在/usr/share/doc文件夹中阅读 一些以.gz结尾的文件(代表文件类型是gzip package),可以用zless查看压缩文件内容。 alias, unalias 命令 直接在命令行使用alias命令,关闭该命令行后就无法再使用该别名,且只适用于一个命令行窗口 alias name = ‘string’ unalias 同理 在命令行中输入alias可以输出当前的所有别名。
重定向 < 重定向输入 > 重定向输出,会覆盖文件 >> 重定向输出,会续写文件 | 串联前者输出至后者输入 0 标准读入 1 标准输出 2 标准错误流 - ls -l /bin/usr 2> ls-error.txt - ls … > ls-output.txt 2>&1 同时将输出和错误重定向至ls-output.txt - 上述命令还可以表述为 ls … &> ls-output.txt - 如果想续写文件,则使用 ls … &>> ls-output.txt /dev/null 虚无之地,接收一切(暂时可以这么理解吧?) 故当错误不重要时可以将错误重定向到/dev/null ls -l /bin/usr 2> /dev/null cat 命令 串联文件,默认输出至stdout,默认输入stdin sort, uniq 命令 sort排序, 一般是配合别人出现的,只打sort好像会卡住(uniq同理)? uniq除重,uniq -d只看重复的 wc 命令 word count: lines, words, bytes contained -l 只返回行数 grep 命令 -i 无视大小写匹配 -v 输出不匹配的 head, tail 命令 显示头 尾10行 -n number改变行数 -f 持续关注文件(适用于不断更新的文件) tee 命令 从stdin读入到输出到Stdout和一个或多个文件中。
echo 命令 与 正则表达式 echo * = ls (注意没有autocolor) echo .* = ls -d .* echo .[!.]* = ls -A 1. ~ Tilde Expansion (会展开为当前用户的home文件夹路径) 2. ArithmeticExpansion(会展开为一个可以计算的算式)−echo (($((5 * 2)) 3)) - echo $(((5 * 2) 3)) - echo $((5 * 2 3)) 注意一定是双括号 3. {} Brace Expansion - echo Front-{A, B, C}(或者 {1..5})-Back 注意{}中不能再有{} 4. Parameter Expansion - echo USER(迷之插入,printenv打印环境变量)5.CommandSubstitution可以用与命令嵌套 (),用“(back-quotes)也可以,注意不是单引号 - echo (ls)−ls−l (which cp) 引用 double quotes ” ” 使除 ,\,‘之外的字符功能无效化,并保留多余空格singlequotes″使所有expansions失效转义字符$!& BackslashEscapeSequencesASCII码中前面的32个控制字符想在shell中启用,可以使用echo−e或将它们放置在 ’ ‘中 - sleep 10; echo -e “Time’s up\a” - sleep 10; echo “Time’s up” $’\a’
高级键盘技巧