======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==