Shell Commands

以下部分都是搬砖的节奏,也是我自己常用的常常去查的基本资料。在网上一搜一大把的,所以有什么不足的地方,记得留言给我咯

Shell命令

对于一位全栈工程师,shell commands是最基本的一项技能,很多时候我们都只需要记住一些最常用的mv,cp之类的简单命令,需要复杂一点的就自己上Google查一下就行。就比如说只想copy以html文件类型的,或者是想拷贝以png,jpg格式的图片

1
2
3
4
5
cp www/*html backup

ls *{jpg,png}

echo Short names: ?

虚拟机跑起来以后还需要对firewall进行配置,命令如下

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo ufw status

sudo ufw default deny incoming

sudo ufw default allow outgoing

sudo ufw allow ssh

sudo ufw allow 2222/tcp

sudo ufw allow www

sudo ufw enable

一些常用的命令及相应的解释

$ cp source dest ### 将 source 复制到 dest
$ cp folder/* dest ### 将 folder 下所有文件(不含子文件夹中的文件)复制到 dest
$ cp -r folder dest ### 将 folder 下所有文件(包含子文件夹中的所有文件)复制到 dest

$ mv source folder ### 将 source 移动到 folder 下,完成后则为 folder/source
$ mv -i source folder ### 在移动时,若文件已存在则提示 是否覆盖
$ mv source dest ### 在 dest 不为目录的前提下,重命名 source 为 dest

$ cat /etc/locale.gen ### 输出 locale.gen 的内容
$ cat -n /etc/locale.gen ### 输出 locale.gen 的内容并显示行号

more 与 cat 相似,都可以查看文件内容,所不同的是,当一个文档太长时, cat 只能展示最后布满屏幕的内容,前面的内容是不可见的。这时候可用 more 逐行显示内容。
less 与 more 相似,不过 less 支持上下滚动查看内容,而 more 只支持逐行显示。

$ more /etc/locale.gen
$ more +100 /etc/locale.gen ### 从 100 行开始显示
$ less /etc/locale.gen
$ less +100 /etc/locale.gen

tar 主要用于创建归档文件,和解压归档文件,其本身是没有压缩功能的,但可以调用 gzip 、 bzip2 进行压缩处理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
参数解释:
-c 创建归档
-x 解压归档
-v 显示处理过程
-f 目标文件,其后必须紧跟 目标文件
-j 调用 bzip2 进行解压缩
-z 调用 gzip 进行解压缩
-t 列出归档中的文件

$ tar -cvf filename.tar . ### 将当前目录所有文件归档,但不压缩,注意后面有个 ’.‘ ,不可省略,代表当前目录的意思
$ tar -xvf filename.tar ### 解压 filename.tar 到当前文件夹
$ tar -cvjf filename.tar.bz2 . ### 使用 bzip2 压缩
$ tar -xvjf filename.tar.bz2 ### 解压 filename.tar.bz2 到当前文件夹
$ tar -cvzf filename.tar.gz ### 使用 gzip 压缩
$ tar -xvzf filename.tar.gz ### 解压 filename.tar.gz 到当前文件夹
$ tar -tf filename ### 只查看 filename 归档中的文件,不解压

chown and chmod

chown 用于改变一个文件的所有者及所在的组。

chown user filename 改变 filename 的所有者为 user
chown user:group filename 改变 filename 的所有者为 user,组为 group
chown -R root folder 改变 folder 文件夹及其子文件的所有者为 root

chmod 永远更改一个文件的权限,主要有 读取 、 写入 、 执行 ,三种权限,其中 所有者 、 用户组 、 其他 各占三个,因此 ls -l 可以看到如下的信息

-rwxr–r– 1 locez users 154 Aug 30 18:09 filename

其中 r=read=4 , w=write=2 , x=execute=1

chmod +x filename 为 user ,group ,others 添加执行权限
chmod -x filename 取消 user , group ,others 的执行权限
chmod +w filename 为 user 添加写入权限
chmod ugo=rwx filename 设置 user ,group ,others 具有 读取、写入、执行权限
chmod ug=rw filename 设置 user ,group 添加 读取、写入权限
chmod ugo=— filename 取消所有权限

还有比如说修改可写的权限 chmod 766 文件名称 chmod 400 文件名称
就可以进行写操作了

自己由于学习需要,在Mac上配置了好几个虚拟机
ssh darcy@127.0.0.1 -p 2222 -i ~/.ssh/id_rsa

另外大家还可以参考一下这位童鞋写的东西,非常的实用