======Bash & Shell====== //常用的 bash 命令// ---- ====Navigation==== ##ls # 查看当前目录下所有的文件夹和文件 ls # 查看所有文件夹和文件,包括隐藏 ls -a # 查看详细信息 ls -l # 查看文件,按上次修改时间排列 ls -t ##pwd # 打印当前目录的路径 pwd ##cd # 切换到指定文件夹 cd cd # 返回上级目录 cd .. ##mkdir #创建文件夹 mkdir ##touch #创建文件 touch === ls -l 的详细信息解释=== ''ls -l'' 之后会出现如下的详细信息: drwxr-xr-x 5 cc eng 4096 Jun 24 16:51 action 具体的解释见下图: {{ :linux:ls_l_detail.svg?500 |}} ==access right== 背景知识:Linux 中: * premission group 分为三类:// owner, group, all users// * premission type 也分为三类://read, write, excute// //access right// 是详细信息中的 10 位字母,结构如下: * 头一位字母是 special permission flag * 2-4 位代表了 owner 的权限 * 5-7 代表了 group 的权限 * 8-10 代表了 all user 的权限 权限中,read 权限标记为 ''r'', write 为 ''w'', excute 为 ''x''。因此,上面例子中的 2-4 为字母为 ''rwx'',意思是 owner 拥有读,写,执行文件的权限。 ====Viewing and Changing File System==== ===Manipulation=== * ''cat + file_name'':读取文件中的内容 * ''cp + file_name + path'':拷贝文件到目标位置 * ''cp + file_name + file_name + path'':拷贝多个文件到目标位置 * ''cp * path'' :wildcard 通配符拷贝 * ''mv file_name + path'' 移动文件到指定位置 * ''mv file file + path'' 移动多个文件到指定位置 * ''mv file rename'' 重命名文件并移动到指定位置 * ''rm -f filename'' 删除文件 * ''rm -r folder'' 删除文件夹以及其目录底下所有文件 ===REDIRECTION=== * ''echo + string'' 打印 str * ''> file name'' (重定向)输出文件 * '' cat + >'' 覆盖文件 * " >> " append 文件 * " < " 输入文件到左边 * ''|'' 接受左边的 Input 输出到右边的 output * ''wc'' : 输出 lines | words | character 的数量 * ''sort'' 接受一个 Input, 对文件内容进行 alphabet 排序 * ''uniq'' 对相邻的两个相同的内容消除掉一个 * ''grep'' global regular expression print, 按 pattern 搜索。默认区分大小写, ''-i'' 取消区分大小写, ''-R'' 搜索所有匹配的关键字文件,''-Rl'' 搜索匹配的文件名 * ''sed'' 查找并且替换:s/snow/rain/g s 代表 substitution 替换, 查找的关键词是 snow, 替换的关键词是 rain, g 代表 global,意思是替换所有。如果只需要在终端打印的时候替换,使用 ''-i'' ===Environment=== Nano 的操作 ==Bash profile== * ''~'' 代表 Home 目录 * ''.'' 代表影藏文件 * 重要的文件 ~/.bash_profile ''nano ~/.bash_profile'' 修改该文件, 在里面写 ''echo'' 会在 terminal 打开的时候打印 * 激活 profile ''source ~/.bash_profile'' 立刻激活,不用关闭终端 * 类型 ''alias'' : 可以配置快捷键 * ''alias pd = "pwd" '' pd 会具有 pwd 的功能 ==Environment Variables==