预备知识
速记表
#
号在Shell中是注释符号,其后面的内容不会被执行
cd ~ # 进入用户的home目录
pwd # 列出当前目录的绝对路径
ls # 列出当前目录的内容
mkdir ~/father/son # 创建一文件夹
mv ~/father/son ~/father/daughter # 改名/移动文件(夹)
cp ~/father/daughter ~/father/daughter2 # 复制文件(夹)
rm -r ~/father/daughter # 删除目录(删除文件不用-r)
基本命令
假设你已经用Shell客户端进入了VPS的后台,那么下一步要做些啥呢? :sunglasses:
首先应该是观察一下你的用户名。一个典型的名字是:
用户名@主机名
比如这样:
root@VM-123:~
那么主机名就是VM-123
,而用户名则是root
。
很多VPS主机的初始化用户就是root
用户,有一些却不是。root
用户与文件权限及安全管理有重要关系,但现在并不是深入讨论它的时机。
因为此时你应该先运行人生的第一个linux命令:
cd ~
是不是感觉好像没有发生什么?这就对了,哈哈哈 :yum:
这个命令的意思是:进入当前用户的home目录。这个~
在Linux中就是代表你的home目录。你可以通过下面的命令看看你的home目录的绝对路径:
pwd
如果是root用户,一般会输出/root
。如果是非root,一般是/home/用户名
。其实这里也体现出root用户确实是比较特别的,它住在系统更加上层的目录中。:stuck_out_tongue:
那么,下面应该做些啥呢?
可以试试这个命令:
ls
它会列出当前文件夹,也就是root
用户的home目录的所有文件(夹),但不包括隐藏文件。
比如我的目录里的非隐藏文件就有:
aliyunpan Downloads mybackup rImages.zip wordpress
aliyun_recnerd_backup legacy rImages virt-sysprep-firstboot.log wordpress2
接下来,我们要尝试一下ls
命令的变种:
l
我没有少打,就是一个字母l
。我输出的内容是这样的:
total 321M
drwx------ 16 root root 4.0K Apr 17 22:42 .
drwxr-xr-x 27 root root 4.0K Apr 14 18:53 ..
drwxr-xr-x 2 root root 4.0K Apr 13 19:13 aliyunpan
drwxr-xr-x 2 root root 4.0K Apr 14 08:54 aliyun_recnerd_backup
-rw------- 1 root root 4.2K Apr 12 14:06 .bash_history
-rw-r--r-- 1 root root 3.1K Apr 9 2018 .bashrc
drwx------ 2 root root 4.0K Apr 30 2018 .cache
drwx------ 3 root root 4.0K Apr 14 19:16 .config
drwxr-xr-x 3 root root 4.0K Apr 14 08:09 Downloads
drwx------ 3 root root 4.0K Apr 6 07:35 .gnupg
drwxr-xr-x 2 root root 4.0K Apr 17 10:56 legacy
drwxr-xr-x 3 root root 4.0K Apr 30 2018 .local
drwxr-xr-x 6 root root 4.0K Apr 17 12:31 mybackup
drwxr-xr-x 12 root root 4.0K Apr 12 14:05 .oh-my-zsh
-rw-r--r-- 1 root root 148 Aug 17 2015 .profile
drwxr-xr-x 5 root root 4.0K Apr 17 10:48 rImages
-rw-r--r-- 1 root root 320M Apr 17 10:44 rImages.zip
-rw-r--r-- 1 root root 10 Apr 12 14:05 .shell.pre-oh-my-zsh
drwxr-xr-x 2 root root 4.0K Apr 13 14:27 .vim
-rw------- 1 root root 27K Apr 17 17:30 .viminfo
-rw-r--r-- 1 root root 929 Apr 5 23:47 virt-sysprep-firstboot.log
-rw-r--r-- 1 root root 260 Apr 14 08:11 .wget-hsts
drwxr-xr-x 4 root root 4.0K Apr 13 08:40 wordpress
drwxr-xr-x 4 root root 4.0K Apr 15 19:35 wordpress2
-rw------- 1 root root 244 Apr 17 16:48 .Xauthority
-rw-r--r-- 1 root root 42K Apr 12 14:05 .zcompdump
-rw-r--r-- 1 root root 43K Apr 12 14:05 .zcompdump-racknerd-cffc5f-5.4.2
-rw------- 1 root root 55K Apr 17 22:42 .zsh_history
-rw-r--r-- 1 root root 3.8K Apr 12 14:07 .zshrc
我简单地解释一下这些东西,你不想现在了解也没关系。
我们以drwxr-xr-x 2 root root 4.0K Apr 14 08:54 aliyun_recnerd_backup
这一个记录为例:
drwxr-xr-x
:文件权限。前面的d
表明它是一个文件夹(document)。后面那些乱七八糟暂时不解释。2
:硬链接数?不重要,之前没了解过 :stuck_out_tongue_winking_eye:root
: 所属用户名root
: 所属的用户组4.0K
: 文件夹的大小。不包括里面的内容。Apr 14 08:54
:创建/修改时间aliyun_recnerd_backup
:文件名。
感觉好像也没啥特别的对吧?确实没啥特别 :grinning:
值得一提的是,第一个.
代表的是当前目录,而..
代表的是上一层目录。这和windows是一样的。
此外,凡是有.
在前面的,一般属于系统的隐藏文件
,正常情况下是不显示的。
更加常用的一个ls
类命令是:
ls -hl
有些系统还可以用:
ll
显示结果如下:
total 320M
drwxr-xr-x 2 root root 4.0K Apr 13 19:13 aliyunpan
drwxr-xr-x 2 root root 4.0K Apr 14 08:54 aliyun_recnerd_backup
drwxr-xr-x 3 root root 4.0K Apr 14 08:09 Downloads
drwxr-xr-x 2 root root 4.0K Apr 17 10:56 legacy
drwxr-xr-x 6 root root 4.0K Apr 17 12:31 mybackup
drwxr-xr-x 5 root root 4.0K Apr 17 10:48 rImages
-rw-r--r-- 1 root root 320M Apr 17 10:44 rImages.zip
-rw-r--r-- 1 root root 929 Apr 5 23:47 virt-sysprep-firstboot.log
drwxr-xr-x 4 root root 4.0K Apr 13 08:40 wordpress
drwxr-xr-x 4 root root 4.0K Apr 15 19:35 wordpress2
是不是感觉要干净许多?
这时你可能会发现一个恼人的事,特别是有强迫症的人。那就是:命令的输出结果占了一大屏。
怎么快速清屏呢?有两种常用方式:一般是在键盘上用Ctrl+L
;一种是使用命令clear
。两者效果类似,可以试试看。用哪个就看个人喜好。我一般喜欢在键盘上用Ctrl+L
。
好的,下面接着玩。创建一个文件夹吧:
mkdir abcdefghijklmnopqrst
然后进入这个文件夹:
cd abcdefghijklmnopqrst
这时,敏锐的小伙伴可以还发现一个事,那就是:如果我要进入一个有着很长名字的文件夹,不是要打好多字?你可以先在Shell中打出cd
加个空格,然后按一下键盘上的TAB
键,它会有自动补全提示。再打几个前面的字母,接着按TAB
键,最后可以精准地定位到目录文件夹。自己试试看。是不是很好玩?
你还可以多建立几个文件夹:
mkdir abcdefghijklmnopqrst2
mkdir abcdefghijklmnopqrst3
mkdir abcdefghijklmnopqrst4
然后随便玩一下,比如:
# 进入目录
cd abcdefghijklmnopqrst2
# 返回目录上层
cd ..
# 再回到home目录
cd ~
复制(copy)一个文件夹试试看:
cp abcdefghijklmnopqrst2 test
这样会生成一个和abcdefghijklmnopqrst2
内容一模一样的test
(如果里面有内容的话)。
我想改个好点的名字,怎么改?
mv abcdefghijklmnopqrst4 iloveyou
此时abcdefghijklmnopqrst4
的文件名就变成了iloveyou
了。
如果我要删除一些文件或者文件夹怎么办呢?
cd ~
rm -r abcdefghijklmnopqrst2 abcdefghijklmnopqrst3
或者干脆两个命令一起运行:
cd ~ && rm -r abcdefghijklmnopqrst2 abcdefghijklmnopqrst3
cd ~
对于此时不是必需的,只是让你明白在这个moment,你要在~
,即自己的home目录里进行文件夹的删除操作。
关于rm命令
对于rm
命令值得多说几句。
linux默认没有内置回收站功能,所以你rm
过的内容将无法恢复(据说有一些方法可以恢复,但我从来没有用过)。你执行rm
命令时要三思而后行。有一些方法可以创建类似windows的回收站机制,不过现在不作讨论。
此外,偶尔网络上也会出现一些“删库跑路”的新闻,有一些还与官司有关。
他们多数是通过root
用户运行这个命令:
# rm -rf /*
永远不要使用这个命令!这可不是开玩笑的!
rm
就是删除的意思,-rf
就是要安静地、不加确认地将文件(夹)执行命令,而/*
代表系统根目录所有文件。这一条命令下去,整个世界都清净了 :sleeping: 。文件都无了还怎么玩嘛!
这里你应该可以感受到,root
用户确实是特别的。以后我们会更加了解它的!
到这里,你基本上已经学完linux日常使用70%左右的命令。怎么会这样子? :fearful:
就是这样子。
linux本质上就是一些文件管理的过程,所以这些命令用得最频繁了。其它命令按需学习就行 :stuck_out_tongue: 。
基础命令的学习到此结束啦!多多练习,相信很快就可以掌握。没有什么速记法,惟手熟尔。
root用户
对于新手来说,还是有必要再隆重地介绍一下root
用户。
如果谁掌握了root
,他就掌握了这个linux机器的一切,可以为所欲为。
你以后也会慢慢体会到,有了root
的权限,你可以随意修改文件的内容、归属用户(组),甚至是删除它。
另外,root
的用户名一般都是root
,这对于有公网ip的VPS来说可能是一个隐患。别人知道你的公网ip和root这个名字,就可以通过一些手段登陆你的主机。如果你使用了弱密码,分分钟就被破解了(~ ̄▽ ̄)~
当然,在现阶段的学习中,其实不用太过在意安全问题,毕竟你的主机里啥也没有。大不了重装系统嘛,VPS不是有后台吗?现在你只要知道,它和你主机的安全有很大关系就行了。
在新手熟悉linux命令的过程中,我觉得用root
用户还是有一定的好处的,因为它不用频繁地使用sudo
和输入密码去操作某些命令,降低了学习难度。也算是利弊参半吧。
如果你熟悉了基本命令,还是要尽快减少使用root
用户,转用非root用户
作为平时使用的用户。
且听下回分解喽!
---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍
其实有一个chattr命令可以阻止任何用户改动文件,强制锁定文件。当然,这个还是比较罕见的情况。
如果一直ubuntu系统可能会没什么感觉,但是,用过centos系统就回不去了,ubuntu现在的地位很尴尬,可能在docker中作为测试系统的比较多
还行吧,一直我都是主力使用,哈哈!
我一个月以前也是主要使用ubuntu,而且有些东西在ubuntu上apt是装不了的,虽然ubuntu也可以装yum
喔喔,这种倒不怎么试过。我的应用场景是蛮简单,偶尔有类似frp这种“素人”应用,绝大多数都是Docker应用。暂时还没遇见类似的困难 ?
谢谢老师 为啥我的执行 l 命令提示bash: l: command not found…
你用的是哪个Linux发行版?Ubuntu一般都有。
这主要是系统默认设置,有的系统默认l后面带参数,有的默认不带参数
正解!谢谢解答!