点进来你就是我的人了
博主主页:戳一戳,欢迎大佬指点!
目录
用户操作
1. ls 命令 (查看目录/文件)
ls 后跟的选项
2. pwd 命令 (显示当前所在目录)
3. cd 命令 (切换目录)
Linux 的目录 与 Windows 的文件夹
4. touch (创建一个空文件)
5. cat (显示文件内容)
6. echo (写入文件)
7. mkdir (创建目录)
8. rm (删除文件/目录)
(1) 删除文件
(2) 删除目录
9. cp (复制文件/目录)
10. mv 命令(移动文件/目录)
11. less 命令 (查看文件)
12. vim 命令 (编辑文件)
13. man (获取帮助)
14. ps (查看进程)
15. find (目录中查找文件)
16. grep (文件中查找特定文本)
17. Shell 脚本相关命令:
要想学习 Linux,在这之前,我们需要先有一个 Linux 的环境,这里推荐的方式是:使用云服务器,可以直接在 【 腾讯云、或阿里云、或华为云 】等服务器厂商处直接购买一个云服务器。
使用云服务器这样的方式,环境搭建简单。最主要的是,我们部署在云服务器上的项目可以直接被外网访问到,这就和一个公司发布一个正式的网站没有任何区别,也就是说,我们自己通过代码写出来的项目,能够真正地让别人用。(本篇博客主要对应的 CentOS 7 这样的发行版。)
控制台中蓝色的表示目录,白色表示普通文件,绿色表示可执行文件,红色表示压缩包。
声明:创建某个用户、配置 / 修改某个用户的密码 都仅只可由 root 用户来操作。
1. 创建用户
useradd 用户名
2. 配置密码
passwd 用户名
注意,往命令行输入密码的时候,在控制台中不会有提示,但已经输入进去了。
3. 切换用户
su 用户名
例如:从 root 用户切换到 Jack 用户 【su Jack】
例如:从 Jack 用户切换到 root 用户 【su】/ 【su root】
一般情况下,从 root 切换成 普通用户,不需要输入密码;
从 普通用户切换成 root,需要输入管理员对应的密码。
ls 目录/文件
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-r 对目录反向排序。
-t 以时间排序。
-R 列出所有子目录下的文件。(递归)
能告知我们当前处于哪个目录,因为当我们操作过多的时候,很容易不知道自己所在的目录,使用这个操作就可以解决这个问题
此时就显示了当前目录的绝对路径,这里我们需要注意的是,在Windows上,我们的绝对路径是以盘符开头的,而在linux里,我们的绝对路径,是以/(根目录)开头的 。
cd 目录/路径
cd " 表示改变当前的工作目录,也就说,切换文件夹。
cd . // 进入当前的目录,原地不动
cd .. // 返回上级目录
cd / // 切换至根目录
cd ~ // 切换至用户家目录 (用户登录时显示的默认目录)
实际上,Linux 中的 " cd " 命令和 Windows 的切换文件夹是一个道理,只不过前者是基于命令行实现的,后者是基于图形化界面实现的。
几个特殊的目录 :
/ 称为根目录
. 称为当前目录
.. 称为当前目录的上级目录
(1)绝对路径:
/usr/share/tomcat/logs/ 以根目录开头的, 称为绝对路径.
(2)相对路径:
./logs 以 . 或者 .. 开头的, 称为相对路径.
小tips:
cat 文件:显示文件内容,-n
可以对输出的所有行进行编号
echo 用来写文件, 但是并不是方便, 后面会介绍更方便的命令
echo 本身的效果是显示内容到控制台, 但是可以通过重定向, 输出到文件中
mkdir 目录
当使用mkdir连续的创建很多目录之后,就容易搞不清楚目录结构,可以通过一个tree这样的命令,来直观的看到目录是如何构成的!
注意:当第一次使用这个命令的时候可能会报错,找不到这个命令,那是因为tree是属于第三方提供的命令,要单独下载安装!!所以我们可以通过yum install -y tree 下载tree命令(云服务器有效联网状态)。——yum相当于“应用商店”,称为“包管理器”。
" rm " => " remove "
rm 文件
rm -f 文件
rm -r 目录
rm -rf 目录
注意事项 ( 重要 )
针对上面的删除操作,我们应该谨慎行之。
因为,大多数情况下,Linux 系统默认就是没有回收站的,一旦执行删除命令,就直接将数据直接从服务器上彻底删去。所以说,rm 是一个很危险的操作,只有在我们再三确认后,才能删去文件。此外,永远不要尝试 " rm -rf / " 这个命令。
这个命令会直接将根目录下所有的数据删除掉,也就是说,系统本身预装的东西,也会因为这个命令,随之消失。特别是在公司的时候,如果执行此操作,就会带来不可逆的影响。
" cp " 表示能够 复制 文件或目录。
cp 文件 文件
cp 文件 路径
cp -r 目录 目录
mv 文件 文件
mv 文件 路径
mv 目录 目录
如果操作的目标文件比较大:
mv , 整体速度极快, 不会涉及到数据的搬运, 只是把文件路径做出修改 O(1).
cp , 整体速度会较慢, 需要进行数据的搬运, 大量读写磁盘. O(n)
less 文件
" less " 命令最大的优势在于,能够对于大文件进行 " 秒开 "。
正常的一个编辑器打开文件的时候,就是直接将文件内容都读到内存中,这就涉及到大量的磁盘 IO. 此时,如果文件很大 ( 几个G ),就会打开的很慢,甚至打开失败。比方说,我们前面介绍的 " cat " 命令,就是一下子将所有的数据读出来并显示。
然而," less " 命令只是将当前屏幕显示的这一块给加载到内存中,随着用户的手动翻页,就会不断地加载新的部分,这其实就是懒加载的思想,类似于单例模式中的懒汉模式。( 需要用到了数据,才会执行 )
综上所述,在日常开发中,若我们在服务器上需要打开一个大文件,使用 " less " 命令就是一个明智的选择。
vim 文件
vim " 命令就是 Linux 上的记事本,既能读,也能编辑。
然而," vim " 又不仅仅是一个记事本,它也能作为 " 代码开发工具 “,学习 C++ 的小伙伴,就都是用 " vim " 来写代码的。实际上,” vim " 能够支持很多的插件,通过插件,可以对 " vim " 本身进行扩展,例如:语法高亮、代码补全、变量重命名…
然而,不管 " vim " 再怎么配置,很难达到 " IDEA " 编译器那样的水准。因为," vim " 本身就是很多年前的东西了。
作为 Java 开发人员,学习 " vim ",就只需要能够使用 " vim " 在服务器上进行一个简单的文件编辑即可,后面在工作中,通过它来改一改服务器的配置文件就行了。
(1) 通过 " vim " 命令打开一个文件,若文件不存在,就创建文件。
(2) 一般情况下,通过 " vim " 打开一个文件后,是不能直接对文件进行文本编辑的。这是因为 " vim " 是分模式的,刚开始打开文件的时候,是 Normal 模式,这个模式下,暂时只能读,只有点击一些特殊快捷键的时候,才能对模式进行改变。
作为 Java 程序员,我们只需要知道点击 字母 " i ",即可进入 INSERT 模式,那么我们就可以像 Windows 的记事本进行编辑了。此时,左下角就会显示 " INSERT ".
(3) 如何退出 " vim " ?
① 先点击键盘左上角的 " Esc " 键
② w 表示 written,q 表示 quit.
- 如果你需要保存并退出,按下 ( :wq )
- 如果你需要退出但不保存,按下 ( :q ),但是一般系统会提示你未保存。
- 如果你需要强制退出不保存,按下 ( :q! )
- 如果你需要保存但不退出,按下 ( :w )
在 xshell 控制台复制粘贴:
复制: ctrl + insert 或者 ctrl + Fn + insert
粘贴: shift + insert 或者 shift + Fn + insert
Linux 的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
语法: man [ 选项 ] 命令 ( manual 的缩写)
常用选项:
- -k 根据关键字搜索联机帮助
- num 只在第num章节找
- man man 能够看到 man 手册中的若干个章节及其含义
语法: ps [ 参数 ]...
功能 :用于查看当前系统上运行的进程
选项 :
a 显示一个终端的所有进程
u 以用户为主的格式来显示程序状况
x 显示所有程序,不以终端机来区分
- ps aux # 显示系统上所有的进程, 相当于 Windows 的任务管理器
- grep : 用于搜索文本或文件中的内容
- ps aux | grep "进程名"
- ps aux | grep "进程id"
- | 的意思是管道, 把前一个命令的输出, 作为后一个命令的输入.
- netstat -anp: 列出所有的网络连接,以及正在监听的端口和使用这些连接的程序
find
是一个用来在目录中查找文件的命令。你可以根据各种条件来查找文件,例如文件的名称、大小、修改日期等等。
//可以通过通配符查了所有同类型的文件
find 文件名 /(*.文件后缀)
grep
是一个用来在文件中查找特定文本的命令。你可以使用普通的字符串或正则表达式来进行搜索。例如,下面的命令会在 "my_file.txt" 中查找所有包含 "hello" 的行:
grep "hello" my_file.txt
sh
或 bash
:运行 shell 脚本。exit
:退出当前 shell。echo
:输出文字或变量。read
:读取用户输入。