shell常用命令笔记
从去年大数据云计算课开始按着帮助文档粘指令,在啥也不懂啥也不会的情况下弄出了Hadoop集群也跑了MapReduce实例,弄了zookeeper也跑了kafka,耍了hbase也弄了hdfs和hive。结果最后考完试自己才去学的shell都是个啥。。。
其实真正发现自己shell命令知识匮乏还是刚开始实习的时候。。。。
要说shell命令,首先得从Linux开始
大概Linux上的文件都显示这几种颜色,基本白色的都可以用vi打开。
以下是Linux系统根目录的文件解释
接下来就是怎么vi的指令,注意还有个很好用的gedit指令,是以写字板【文本编辑器】的方式打开文本内容,比vi更傻瓜,但还是得学好vi,毕竟没有图形界面的时候咋办呢
复制:Ctrl+shift+C
粘贴:Ctrl+shift+V
vim下的查找命令: 首先输入斜杠 / 然后输入要查找的内容,回车查找,n查找下一个,N查找上一个
vim 显示行数命令: set nu
当然在编辑完了文件就得再文件间来回移动遍历
注意 cd ./ 是当前目录,cd . . 是上级目录 ,以及,cd . ./. . 是往上两级目录
接下来是剪切【重命名、移动】
复制【拷贝】命令
删除【直接删除,不是回收站】想起最著名的 删除指令 : rm -rf /*,此处rm即删除指令,r即以递归方式,可以删除文件夹,f即强制性
文件查看命令可以查看文件相关信息
文件读写执行权限如下:
然后是shell命令下的查找指令:
除此之外还有文件内容查看指令:
此处是创建文件的命令
以下介绍Linux解压缩命令,tar,zip,rar
然后是软硬链接的使用与原理
最近还会用到,从GitHub上直接下载代码的指令:git clone 【下载链接,一般在GitHub上会有相应复制的文本框】
下载某个链接文件的指令:wget 【下载链接】
检查连接指令,发送数据检查两机之间是否联机畅通 :ping 【目的主机域名或IP地址,一般测试联网会ping baidu.com】
当然上面的指令在某些情况下可能测不出来是否链接外网,就使用:curl 【目的主机域名或ip地址,类似http的方式发送请求,返回的也是html】
ssh 【目的主机IP或hostname】 用于远程控制目的主机。需要密钥,或登录密码
ssh还可以对对方的端口“打洞”,当对方主机不接受外网请求时,通过远程连接可以利用ssh来在某个端口进行通信。
ssh -N -L 本机端口【如8080】:目的主机端口【如localhost:8888】 【目的主机IP或hostname】
还有一些好玩的命令,比如tree,当然需要安装,可以用树形图的形式查看文件结构
一些安装指令 yum install 【要安装的应用程序名,一般要带su】
apt install 【要安装的应用程序名,一般要带sudo】
是apt-get -f install=apt-get install -f ,是修复依赖关系(depends)的命令,就是假如你的系统上有某个package不满足依赖条件,这个命令就会自动修复,安装那个package依赖的package。
top、ps,jps显示当前运行进程
netstat -antp 显示当前端口占用
which 【应用程序名】 当前使用的应用程序所在位置,如which python
~/.bashrc表示当前bash下的配置,因为是脚本文件,是在每次登入bash或zsh时运行,那么每次修改这个脚本,要么exit退出,重新登入bash运行脚本,要么使用source ~/.bashrc立即使脚本生效
bash可以用来安装或运行.sh后缀结尾的文件
whoami 表示当前使用的有效用户名,【英文 who am i】
$PATH可以表示一段路径,在~/.bash中,有的程序执行路径有多个,系统会按其书写顺序一个个尝试,要想让其先执行想要执行的路径,要手动将其改到首位。防止出现错误,如python不同版本有不同模块,此时要选择自己常用的或想要使用的python路径
ll 查看目录是 ls 的扩展,同时 l 也是可用的,当加上 -a参数时,可以查看所有文件,包括隐藏的文件,你也许会发现一些带.前缀的文件,如/.bashrc之类的配置文件。甚至还包括 ./ 和 . ./ 这说明上级文件以及当前路径也被作为了一个文件链接到其他目录
scp指令:
当主机1可以ssh通主机2,而主机2不能ssh到主机1时,可以通过scp将主机1的文件传输到主机2中,而因为主机1可以ssh到主机2,这条通路可以利用,scp中两条路径说明了原路经和目标路径,但是并未规定原路经一定要在操作端上,因此我们可以在主机1上操作,原路经上写主机2的地址,目标路径写主机1的地址,将主机2的文件传输到主机1.
1.命令格式:
scp [参数] [原路径] [目标路径]
2.命令功能:
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
3.命令参数:
-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
Ubuntu切换输入法快捷键:Ctrl+space
一些实用小程序:tmux , z shell , tree