文章目录
- 使用XShell登录Linux
- 1.Linux常用基本命令:
- 1.1 ls(列出当前的目录下都有哪些文件和目录)
- 1.2 cd (change directory 切换目录)
- 1.3 pwd(查看当前目录的绝对路径)
- 1.4 touch(创建文件)
- 1.5 cat(查看文件内容)
- 1.6 mkdir (创建目录)
- 1.7 rm (删除文件或者目录)
- 1.8 mv(移动文件) cp(复制文件)
- 1.9 man (查看帮助文档)
- 1.10 less vim
- 1.11 date 查看/设置/格式化时间
- 1.12 ps 得到正在运行的进程信息
- 1.13 netstat 查看网络状态
- 2.Linux权限:
使用XShell登录Linux
通过XShell登录到Linux之后,只有一行命令,我们要通过命令行来操作Linux,其实Linux和Windows都是一个操作系统,只不过Windows是通过图形化界面来操作的,通过对话框,窗口,键盘,鼠标来操作。
Linux服务器不太适合使用图形化界面
图形化界面是比较消耗资源(硬件资源),虽然以后我们以后见到的是一些配置比较更高的服务器,即便如此,也不会安装图形化界面,主要就是要把配置用到刀刃上。
- 图形化界面存在一些Bug,不稳定,容易崩溃,服务器则是要求要非常稳定的
- 服务器是通过网络远程操控的,如果是图形化界面。就需要让你的客户端和服务器之间传输画质(一帧一帧的图片)是非常占用带宽的,这个要比传输字符界面要复杂的多
- 命令行如果要使用熟练的话,操作效率是要远远高于图形化界面的,更不必说,命令行方便通过脚本来批量执行重复的任务
1.Linux常用基本命令:
1.1 ls(列出当前的目录下都有哪些文件和目录)
ls的功能就相当于Windows上的"‘文件资源管理器’"。
但是我们经常使用的不是这个ls,而是ls - l
ls -l
: -后面个的指令,表示的是命令的选项。在Linux中的每个命令,都可以支持一些选项,通过这些选项来影响到命令的行为。
在Linux中输入ls -l
此处在ls 后跟的 -l 的作用就是 把查到的文件按照列表的方式显示,每个结果都占一行,这里显示的信息都更加详细了。
但是这个ls -l 还是比较麻烦的,我们可以直接使用ll指令,效果的ls -l 是一样的
额外补充:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
- -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
- -l 列出文件的详细信息。
- -r 对目录反向排序。
- -t 以时间排序。
- -R 列出所有子目录下的文件。(递归) 图形化界面是比较消耗资源(硬件资源),虽然以后我们以后见到的是一些配置比较更高的服务器,即便如此,也不会安装图形化界面,主要就是要把配置用到刀刃上。
还有就是 我们直接输入 ls 执行的时候,相当于是查看当前目录中的内容
如果我们在ls 后面添加一个指定的目录,此时就是在查看其他目录里的信息
通过 / 就是查看
/` 目录中的内容 / 就相当于windows上的此电脑,Linux上是没有盘符这个概念的。
/ 也叫作根目录
1.2 cd (change directory 切换目录)
cd 后面跟上一个具体的目录,这个目录就表示要切换到哪里
cd往往是和ls 搭配使用的,连着结合们就可以完成Windows一样的查看文件和目录的效果。
这个操作,就是切换好了mysql 目录,我们也可以看到命令提示符由 ~ 变成了mysql
在这个cd命令后填写的目录,可以是绝对路径,也可以是相对路径。
在Linux上认为以 / 开头的就是绝对路径,从根目录这里往下数,获取到的完整路径,以 … 开头的就是相对路径,从当前目录开始往下找,找到一个不太完整的目录
当前命令行所在的目录就称为工作目录,指定相对路径,都是以工作目录为基准的。如果当前的工作目录不同,要找到同一个文件的相对路径,也就是不同的。
如果是以 .开头的人,此处的 . 就表示当前目录。./aaa 就是找当前目录中的aaa目录
如果是以 … 开头的,此处的 … 就表示当前目录的上级目录
cd ./root
和 cd root
的效果是一样的,都是在找当前目录中的root目录
还有一个技巧就是 当我们要 cd到具体的目录的时候,不一定非得把整个目录都写完,我们可以通过键盘上的tab键,来进行自动补全。
1.3 pwd(查看当前目录的绝对路径)
这个操作就相当于如果此时我们不知道在那个目录中操作的时候,使用pwd就可以知道自己此时处于当前的那个目录中操作
1.4 touch(创建文件)
在我们windows操作系统中的文件资源管理器中还有一些功能,我们在Linux中也是有相应的实现的。比如:创建文件,查看文件,创建目录,删除文件/目录
touch [文件名]
就能创建出一个空的文件出来
在root目录下创建一个aaa.txt文件,文件大小是为0的。
1.5 cat(查看文件内容)
cat [文件名]
就可以查看文件的具体内容。
查看root目录下的aaa.txt文件的内容
因为此时文件中没有任何消息所以没有打印文件信息
我们可以使用echo
命令在aaa.txt 文件中写入信息,但是这种操作只能写入简单的数据,我们在后文中会介绍到如何简单的使用vim
使用vim我们就可以进行复杂性的输入。
>
文件名:表示的是重定向,本来写到的数据是要写到标准输出上,但是此时重定向到aaa.txt文件中
1.6 mkdir (创建目录)
mkdir [目录名]
在ddd目录
下创建 aaa,bbb,ccc 三个目录
,在aaa目录
中创建111.txt
,在bbb目录
下创建222.txt
,在ccc目录
下创建333.txt
。
mkdir 后面填写的目录也是可以是绝对路径,也可以是相对路径。
在Linux中有一个专门的tree命令,博主上面就是使用了这个命令,它可以让我们看到每个文件的所属目录。了解目录结构
这个tree命令不是Linux自带的,而是一个第三方的工具,我们可以通过命令yum install tree -y
通过这个操作就可以安装tree命令,这个yum也是Linux上的一个命令(包括管理器,相当于手机的应用商店)
1.7 rm (删除文件或者目录)
rm [文件名]
删除ddd目录
下的aaa目录中的111.txt文件
当我们在删除的时候,可能有这个提示,是否要真的删除,输入y(yes) 表示确认,输入其他值都表示取消。
这里的删除,不是说一定有提示的,有的时候可能不提示就直接删了
并且在Linux中是没有像windows中的回收站的,rm删除的文件,删了就是删了,就真的没有了 ,所以我们在删除的时候一定会要谨慎
rm也可以用来删除目录
但是我们此时是无法只是用rm进行删除的,我们可以通过 rm -r 进行删除
这里的-r
表示的是递归,要删除的目录下可能还有文件,或者其他的目录,要删除这个目录,就要先删除这个目录中的文件或者是子目录
但是我们在删除bbb目录的时候,可以看到我们删除一个目录要反复的输入好几次 y 才能把这个目录给删除了,这样是不是很麻烦,于是我们在添加一个使用rm -rf [目录]
就可以很快的删除目录,不需要来回的确认输入y
删除ccc目录
这个命令是一个更加快捷的删除操作,但是我们如果在删除的时候,一旦不小心删错了,就可能无法恢复了。
尤其是我们执行一个rm -rf /
的时候,这个时候很可能就会酿成大错。
这个
/
表示的就是此电脑,一个系统上所有的文件和目录都是在这个此电脑中的,就会把所有的系统文件和用户文件都给删除了,不光把你一些重要文件给删了,同时也把系统的文件给删了,此时就相当于一切都灰飞烟灭了,这个系统就挂了。
但是对于这个删除操作。每个学过Linux的童鞋都知道是一个非常危险的操作,但是还是有人不停的犯这个错误。
很多时候都是误操作,一不小心多加了一个空格,就把这个系统给删了。
rm -rf /root/aaa
我们其实是想删除root目录中的aaa目录中的文件。很不巧我们中间手一滑多加了一个空格。rm -rf / root/aaa
如果这里多加了一个空格 rm 就会以为你要删除两个目录,rm操作支持一个命令删除多个目录或者多个文件,多个文件之间使用空格隔开,第一个目录就是 /
第二个目录就是相对路径下的root/aaa
如果已经成了这样,那么删除root下的aaa文件已经无关紧要了,因为我们此时已经把整个系统给删了,何况root目录下的aaa目录,那不也是没了吗?
其实我们的CentOS为了应对这里的手误操作,专门的做出了一个保护机制,如果我们直接输入rm -rf /
此时会被提醒这是一个非常危险的操作,如果真的想 zuo si 那么就要输入一个no-preserver-root
那么此时就把这个系统中的目录和文件就全部删了
1.8 mv(移动文件) cp(复制文件)
mv 原路径 目标路径
cp 原路径 目标路径
将aaa目录下的111.txt文件移动到bbb目录中,使用mv 命令(没有给新的文件名,那么移动之后的文件名和移动之前的文件名是一样的)
在移动的时候,给移动文件重新起名字
mv命令不光可以移动文件,还可以修改文件的名称
cp命令的使用:
复制aaa目录中的555.txt文件到bbb文件
一边拷贝,一边重命名,把aaa目录中的555.txt文件复制到ccc文件中,并且改名为111.txt
mv和cp都是可以针对文件操作,也可以针对目录操作。对于mv来说 针对文件操作和对目录操作,没有区别,对于co来说,针对文件操作和针对目录操作,有点区别。
如果我们直接赋值目录,复制好的目录放到其他目录中
使用cp没法拷贝目录,这其实和rm类似,要想在目录中还有子目录或者文件。所以我们加上-r指令,就可以把目录拷贝到其他地方
1.9 man (查看帮助文档)
上面在介绍各种命令的时候,同时我们也知道了命令还有一些对应的选项
给一个命令,这个命令中都有哪些选项,每个选项都有什么意思,因为很多我们是记不来的。那么我们如果也到了就可以到网上查找。但是Linux中也提供了一个非常方面的查询工具,输入man + [你要查找的命令] 就可以在帮助文档中显示这个命令的功能和对应选项的功能,我们使用键盘中的上下键进行翻读,使用Q退出帮助文档
1.10 less vim
前面介绍的都是和文件和目录相关的操作,缺少一个非常重要的功能,就是能够查看和编辑文件
虽然我们前面的cat也可以查看文件信息,echo可以编辑文件,但是这两个只可以对简单的文件进行查看和编辑
less
主要用来查看文件,尤其是查看一些大的文件
vim
可以查看文件,同样也可以编辑文件
less [文件名]
当使用less 打开一个大的文件的时候,就可以通过上下箭头来翻页,按Q就能退出。
这里的less是不能编辑文件的,但是他有一个最大的优势就是在于能够秒开大文件,尤其是需要查看日志的时候,可以使用,可能这里的日志会累计很大。
less打开文件的时候,只是把当前的一个屏幕里的内容给显示出来(显示多少就从磁盘中读取多少数据)
很多编辑器,都是把整个文件读取完,才进行显示的,如果文件特别大,就会很慢,并且也很吃内存
vim
相当于Linux中的记事本。
我们在这里只需要了解vim的简单使用即可
打开vim
vim的初始界面 如果没有指定文件名,就是这个页面
vim [文件名]
那么此时就进入到了该文件的编辑页面
打开aaa目录下的555.txt文件
输入vim aaa/555.txt
如何进行编辑
打开编辑页面之后,此时还不能直接编辑,进入vim之后,默认处在normal node普通模式之下,普通模式中任何的键盘操作都不能直接输入文本,而是不同含义的快捷键,要想进行编辑,就要进入insert mode 插入模式,按小写的字母i 进入到insert mode 模式
输入123456789
使用键盘中的esc键退出insert模式
如何保存退出
使用:wq进行保存文件信息退出
1.11 date 查看/设置/格式化时间
在Linux中直接输入date 进可以显示出当前的时间
借助date可以用来转化时间戳
得到当前时间戳
把当前时间戳传回成可读的时间
1.12 ps 得到正在运行的进程信息
使用 ps -aux
就可以得到进程的信息
grep
对输出的结果进行筛选
ps -aux | grep vim
此处的 |
在Linux中叫做管道符,它的效果就是把前一个命令的输出,作为后一个命令的输入。ps -aux
输出了一对内容,通过管道,导入grep命令中,grep命令就根据vim这个关键字记性查找,把包含vim这个字符串的行给留下
1.13 netstat 查看网络状态
我们经常在部署项目的是时候使用这个命令,查看端口是否被占用。
此时的8080端口被占用。
如果想要把这个进程结束,不让这个进程占用这个端口那么就是用kill -9 [进程Id]
结束这个进程
2.Linux权限:
其实权限就是约束你可以干什么,不可以干什么
Linux的权限主要体现在针对文件的操作上,针对文件,Linux体现除了三种操作,可读
,可写
,可执行
r:read 表示可读
w:write 表示可写
x:execute 表示可执行
d:表示这是一个目录,如截图中的ddd目录,-:表示一个普通文件
那么权限中的rwx为什么会出现3次?
因为Linux上针对用户,分为3类
1.文件拥有者
2.文件拥有者的同组人员
3.其他人员
Linux权限的基本盘,这个基本盘也是和公司的组织结构是有关的
在公司中会有很多项目组,其中你负责维护一个模块的代码,你就可以读,可以写
其他和你一组的同事,可以看你的代码,但是不一定能修改
其他组的同事,可能看都看不了。
但是还有一个特例,就是管理员用户(root就是管理员用户)管理员拥有最高的权限,无视以上的规则。