
the linux command line
阳明阳明
这个作者很懒,什么都没留下…
展开
-
36,奇珍异宝
组命令和子 shellbash允许命令组合到一起。组命令{ command1; command2; [command3; ...] } { 后、} 前必须有空格或换行。子shell(command1; command2; [command3;...])组命令和子shell用于管理重定向。{ ls -l; echo "Listing of foo.txt";...翻译 2019-10-18 22:37:01 · 135 阅读 · 0 评论 -
35,数组
bash只支持一维数组。可以用 declare -a 声明,也可以直接赋值,下标有的从1开始,有的shell从0开始。赋值name[subscript]=valuesubscript 是整数,新版shell从0开始。多个值,可以用下面方式赋值:name=(value1 value2 ...)例如:days=(Sun Mon Tue Wed Thu Fri Sat)...翻译 2019-10-18 19:26:42 · 130 阅读 · 0 评论 -
34, 字符串和数字
1,参数展开空变量${parameter:-word}如果parameter没有设置或者为空,该展开会给出一个值word。如果parameter不空,该展开会给出parameter的值。注意:不会把word的值赋给parameter。${parameter:=word}展开的规则跟${parameter:-word}一样,如果parameter没有设置或者为空,该展开会给...翻译 2019-10-18 16:58:15 · 157 阅读 · 0 评论 -
33, for
for有两种形式。1,传统的shell格式。for variable [in words]; do // 此处[ ] 表示可选的意思。 commandsdone例如:for i in A B C D; do echo $i; donefor i in {A..D}; do echo $i; donefor i in distros*.txt; do ech...翻译 2019-10-18 00:05:17 · 176 阅读 · 0 评论 -
32,位置参数
1, 从命令行获取参数$0 表示脚本文件名$1 表示第一个参数$2,...,$9, ${10}, ${11}...$# 表示参数个数每执行一次shift,the value of $2 is moved to $1, the value of $3 is moved to $2 and so on.$# 也会自减1。2,函数参数$0 仍然表示命令行脚本文件名$# ...翻译 2019-10-17 19:10:52 · 141 阅读 · 0 评论 -
31,case语句
case word in [pattern [| pattern]...) commands ;;]...esac一旦一个case被匹配到,其他的case就不会执行。bash4.0之后,可以使用;;&继续匹配后续case。还可以用|表示或,连接多个pattern。例如:q|Q)。...翻译 2019-10-17 17:04:40 · 149 阅读 · 0 评论 -
30,疑难排解
1,好的习惯:给变量名和命令替换加双引号。cd $dir_namerm *改进:cd "$dir_name" && rm *如果dir_name空,仍有隐患,继续改进:[[ -d "$dir_name" ]] && cd "$dir_name" && rm *还可以加上交互提示:# Delete files in direc...翻译 2019-10-17 14:21:02 · 138 阅读 · 0 评论 -
28,read
read 从标准输入赋值给变量。read [-options] [variable...]如果read接收到的值比预期的少,那么后面的变量会是空,如果过多,最后一个变量会接收所有的值。如果没有变量提供,默认采用 REPLY 作为变量名。一些选项:IFS输入分隔符是由shell变量IFS(Internal Field Separator)控制的,默认的IFS包含空格、ta...翻译 2019-10-17 00:00:14 · 117 阅读 · 0 评论 -
27,if
语法:if commands; then commands[elif commands; then commands...][else commands]fi命令执行之后,会返回0~255整数,0表示成功,其他表示失败。echo $?有趣的命令,true,总是返回0,表示成功,false总是返回1,表示失败。如果if后面跟着一串命令,那...翻译 2019-10-16 12:01:56 · 141 阅读 · 0 评论 -
25,启动一个项目
变量名:1,数字,字母,下划线。2,第一个字符必须是字母或下划线。3,不允许使用空格和标点符号。shell对常量和变量没有区别。一般把常量名大写,变量名小写。有时也用declare -r(read only)来强制声明一个常量,declare -r TITLE="Page Title"但这很少用到。shell不关注变量值得类型,所有都当做字符串看待。赋值的时候,...翻译 2019-10-15 12:55:39 · 112 阅读 · 0 评论 -
21,格式化输出
1,fold将文本折行。-w 宽度,字符数-s 在达到最大字符数前的空白处折行。2, fmt-c 默认地,空行、空格、缩进会在输出中保留,连续的行如果有不同的缩进就不会合并,tab键保留。-c会改变这种行为。-w width3,printf不接受标准输入,不能用于管道。...翻译 2019-10-12 23:48:17 · 99 阅读 · 0 评论 -
20,文本处理
pastehttps://www.unix.com/shell-programming-and-scripting/161826-how-combine-2-files-into-1-file-2-columns.html将文件按列合并。例如:inputfile1.txtCode:123456789024580inputfile2.txtCode:AAA...翻译 2019-10-10 16:30:56 · 136 阅读 · 0 评论 -
19,正则表达式
grep-i 不区分大小写-v --invert-match 反选-c--count 匹配次数-l--files-with-matches 打印文件名-L--files-without-match 打印出不匹配的文件名-n--line-number 打印出匹配行的行号-h--no-filename 不打印文件名元字符^ $...翻译 2019-10-08 19:22:33 · 162 阅读 · 0 评论 -
18,归档和备份
1,tartar [options] pathname...optionsc 创建x 释放r 添加到尾部t 列出归档内容v verbose,显示详情一般来说,tar不支持通配符,要想支持需要加上--wildcards 选项,例如tar xf ../playground2.tar --wildcards 'home/me/pla yground/dir...翻译 2019-10-07 14:51:43 · 174 阅读 · 0 评论 -
17, 搜索文件
1,locatelocate是通过数据库的方式搜索的,所以速度更快,要先安装locate,新系统都是mlocate或者slocate,locate命令通过符号链接过去。所以可以yum install mlocate查找文件如果报错[root@minimal html]# locate mysql.loglocate: 无法执行 stat () `/var/lib/mlocate...翻译 2019-09-26 18:50:46 · 86 阅读 · 0 评论 -
4,管理文件和路径
Wildcards * Matches any characters ? Matches any single character [characters] Matches any character that is a member of the set characters...原创 2019-09-04 10:08:20 · 96 阅读 · 0 评论 -
5, 使用命令行 重定向
1, aliasTo see all the aliases defined in the environment, use the alias command without argu- ments.2, type3, info1,type2,help help cd3, whatisDisplay One-line Manual Page Descript...原创 2019-09-09 15:14:07 · 273 阅读 · 0 评论 -
7, 从shell的角度看世界
1,Pathname Expansion 路径扩展用已有文件路径来填充,例如:echo *secho [[:upper:]]*echo /usr/*/shareecho *echo .*echo .[!.]*2,Tilde Expansion 波浪号扩展~代表用户,例如echo ~ 当前登录用户家目录~后面还可以跟用户名,例如[me...翻译 2019-09-10 11:47:19 · 131 阅读 · 0 评论 -
8, 键盘的高级trick
1,命令行编辑windowd系统是Alt键,mac系统是 esc键移动光标ctrl-a 移动光标到行首ctrl-e 移动光标到行尾Alt-f 移动光标到单词后面Alt-b 移动光标到单词前面Ctrl-l 相当于clear命令,清屏。修改文本ctrl-d 删除光标处字符ctrl-t 将光标处字符和光标前一个字符互换 Tra...翻译 2019-09-10 20:20:59 · 118 阅读 · 0 评论 -
9, 权限
id – Display user identity ls -l重点是对于文件夹的理解2, chmod符号表示的权限,包含三部分,受影响的人、操作类型、权限。受影响的人,用u、g、o、a表示。u既user,表示owner。g表示group。o表示others。a表示all,既u+g+o。默认如果什么都不写,那么这项为a。操作类型有+、-、=。+既添加。-既删除...翻译 2019-09-10 21:44:03 · 135 阅读 · 0 评论 -
10, 进程
1, ps[me@linuxbox ~]$ ps PID TTY TIME CMD显示当前终端会话的进程。tty 代表 teletype,指进程的控制终端。TIME 指进程耗费的cpu时间。[me@linuxbox ~]$ ps x PID TTY STAT TIME COMMANDx显示所有进程,不管由哪个终端控制。TTY 中的 ?表示,没有控制终端。...翻译 2019-09-14 23:11:03 · 695 阅读 · 0 评论 -
11, 环境变量
1,setset同时显示环境变量和shell变量,printenv仅展示环境变量。2, printenvprintenv 变量名 <=> 等价于 echo $变量名printenv 显示所有的变量3, alias展示所有的alias名。4,读取配置文件的顺序先是系统的,所有用户共享的配置文件,然后是位于家目录下的自定义的配置文件。具体的顺序依赖于s...翻译 2019-09-15 14:31:27 · 94 阅读 · 0 评论 -
12 vi
1, 移动光标^ 移动到当前行的首个非空字符上0 移到行首w 移到下一个标点符号或者单词开头W 移到下一个单词开头,忽略标点符号b 移到前一个标点符号或者单词开头B 移到前一个单词开头,忽略标点符号2, 编辑dW 删除从当前光标位置到下一个单词开头d$ 删除从当前光标位置到当前行尾d0...翻译 2019-09-15 22:53:48 · 358 阅读 · 0 评论 -
13,配置命令行提示
配置命令行提示符,只需要修改 PS1环境变量echo $PS1shell prompts里的转义符。\h hostname\u username\w 当前路径\W 当前路径的最后一部分\$ 当前用户是root时,显示为#,当前用户非root时,显示为$,亲测在centos下应该用 \\$ 才行\[ 非打印字符开始标记\] 非打印字符的结束...翻译 2019-09-15 23:04:59 · 118 阅读 · 0 评论 -
14, 包管理
rpm -qa显示安装到系统中的所有软件包列表.rpm -q package_name显示是否安装了一个指定的软件包。yum info package_name如果知道了所安装软件包的名字,使用这个命令可以显示这个软件包的说明信息。rpm -qf file_name确定哪个软件包对所安装的某个特殊文件负责,使用此命令。...转载 2019-09-16 19:41:35 · 148 阅读 · 0 评论 -
16, 网络
ssh remote-sys command可以在远程机器remote-sys上面执行一条command命令,而不是登录到远程remote-sys上面去,将结果在本地屏幕输出。例如:ssh remote-sys free如果command包含空格,需要command整体加上引号,例如:ssh remote-sys 'ls * > dirlist.txt'sftp 命令...翻译 2019-09-20 15:49:15 · 103 阅读 · 0 评论 -
3, 探究系统 tldr
tldr1, ls-A--almost-all Like the -a option above except it does not list . (current directory) and .. (parent directory)-d --directory 显示目录本身-F--classify This option will ...转载 2019-09-03 13:27:29 · 105 阅读 · 0 评论