Linux常用命令

点进来你就是我的人了
博主主页:戳一戳,欢迎大佬指点!

欢迎志同道合的朋友一起加油喔Linux常用命令_第1张图片


目录

用户操作

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 这样的发行版。)

Linux常用命令_第2张图片

控制台中蓝色的表示目录,白色表示普通文件,绿色表示可执行文件,红色表示压缩包。 

  • Linux 下有两种用户:管理员(root)、普通用户。
  • 管理员:可以在 Linux 下做任何事情,不受限制。
  • 普通用户:在 Linux 下做有限的事情。
  • 管理员的命令提示符是 " # ",普通用户的命令提示符是 " $ "。
  • 我们的服务器买好了,默认就是 root 用户,但 root 用户权力比较大,一旦使用不当可能会造成严重后果 ( 例如 rm -rf / 操作)。
  • 因此我们在公司中工作的时候,不会直接使用 root 用户来操作服务器。
  • 如果在学习的过程中,一台云服务器属于个人私有,那其实就无所谓 root 的使用。
  • 如果在学校中,几个同学一起使用一台云服务器,那么建议,每个人都要创建一个用户和对应的密码,以此来做到互不干扰。

用户操作

声明:创建某个用户、配置 / 修改某个用户的密码 都仅只可由 root 用户来操作。

1. 创建用户

useradd 用户名

2. 配置密码

passwd 用户名

注意,往命令行输入密码的时候,在控制台中不会有提示,但已经输入进去了。

3. 切换用户

su 用户名

例如:从 root 用户切换到 Jack 用户 【su Jack】
例如:从 Jack 用户切换到 root 用户 【su】/ 【su root】

一般情况下,从 root 切换成 普通用户,不需要输入密码;
从 普通用户切换成 root,需要输入管理员对应的密码。

1. ls 命令 (查看目录/文件)

ls 目录/文件
  • " ls " 这个命令既可以对目录使用,又可以对文件使用。
  • 对于目录,该命令列出该目录下的所有子目录与文件。
  • 对于文件,将列出文件名以及其他信息。
  • 一般来说," ls " 这个命令只用于目录。

ls 后跟的选项

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-r 对目录反向排序。
-t 以时间排序。
-R 列出所有子目录下的文件。(递归)
  • ls -l " 与 " ll " 用法等价。
  • 像上面的 ls 命令后面跟的 " -l “,” -a “,” -r " 这些称为选项,这表示,这些选项基于 ls 命令下的一些衍生操作。

Linux常用命令_第3张图片

 此外,ls 的选项可以搭配使用Linux常用命令_第4张图片

2. pwd 命令 (显示当前所在目录)

能告知我们当前处于哪个目录,因为当我们操作过多的时候,很容易不知道自己所在的目录,使用这个操作就可以解决这个问题Linux常用命令_第5张图片

 此时就显示了当前目录的绝对路径,这里我们需要注意的是,在Windows上,我们的绝对路径是以盘符开头的,而在linux里,我们的绝对路径,是以/(根目录)开头的 。

 3. cd 命令 (切换目录)

cd 目录/路径

 cd " 表示改变当前的工作目录,也就说,切换文件夹。

cd .  // 进入当前的目录,原地不动
cd .. // 返回上级目录
cd /  // 切换至根目录
cd ~  // 切换至用户家目录 (用户登录时显示的默认目录)

Linux 的目录 与 Windows 的文件夹

实际上,Linux 中的 " cd " 命令和 Windows 的切换文件夹是一个道理,只不过前者是基于命令行实现的,后者是基于图形化界面实现的。

几个特殊的目录 :

/ 称为根目录

. 称为当前目录

.. 称为当前目录的上级目录

(1)绝对路径:

/usr/share/tomcat/logs/ 以根目录开头的, 称为绝对路径.

(2)相对路径:

./logs 以 . 或者 .. 开头的, 称为相对路径.

(3)linux的目录结构:(树形目录结构)Linux常用命令_第6张图片

 小tips:

  1. 在敲命令的时候,是可以使用tab键补全的,不用把每个字符都输入进去。
  2. 如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令(Linux终端中,ctrl + c不是复制)
  3. 如果需要复制,使用ctrl+insert;如果需要粘贴,使用shift+insert
  4. 如果使用的是笔记本,发现按ctrl+insert或者是shift+insert不管用,那么可以尝试着搭配fn来一起使用;如果还是不管用或者嫌太麻烦,可以更改xshell的快捷键:点击工具➡️选项➡️键盘和鼠标➡️按键对应那里的编辑按钮。
  5. 如果界面上的内容过多,可以按ctrl+l进行清屏

4. touch (创建一个空文件)

Linux常用命令_第7张图片

 5. cat (显示文件内容)

cat 文件:显示文件内容,-n可以对输出的所有行进行编号

Linux常用命令_第8张图片

6.  echo (写入文件)

echo 用来写文件, 但是并不是方便, 后面会介绍更方便的命令
echo 本身的效果是显示内容到控制台, 但是可以通过重定向, 输出到文件中

Linux常用命令_第9张图片

7. mkdir (创建目录)

  • " mkdir " 表示创建一个目录,即表示创建一个文件夹。
  • " mkdir " => " make directory "
mkdir 目录

Linux常用命令_第10张图片

当使用mkdir连续的创建很多目录之后,就容易搞不清楚目录结构,可以通过一个tree这样的命令,来直观的看到目录是如何构成的! 

Linux常用命令_第11张图片

 注意:当第一次使用这个命令的时候可能会报错,找不到这个命令,那是因为tree是属于第三方提供的命令,要单独下载安装!!所以我们可以通过yum install -y tree 下载tree命令(云服务器有效联网状态)。——yum相当于“应用商店”,称为“包管理器”。

8. rm (删除文件/目录)

" rm " => " remove "

(1) 删除文件

rm 文件
rm -f 文件
  • " -f " 表示强制操作,不会询问。
  • " rm 文件 " 表示删除单个文件,删除前会询问,y 表示 yes,n 表示 no. 
  • " rm -f 文件 " 表示删除单个文件,删除不会询问。

Linux常用命令_第12张图片

 (2) 删除目录

rm -r 目录
rm -rf 目录
  • " -r " 表示递归," -f " 表示强制操作,不会询问。
  • " rm -r 目录 " 表示递归指定目录,一个个删文件,删除前会询问。
  • " rm -rf 目录 " 表示删除指定目录以及其对应的所有文件,删除前,不会询问。

Linux常用命令_第13张图片

注意事项 ( 重要 )

针对上面的删除操作,我们应该谨慎行之。
因为,大多数情况下,Linux 系统默认就是没有回收站的,一旦执行删除命令,就直接将数据直接从服务器上彻底删去。所以说,rm 是一个很危险的操作,只有在我们再三确认后,才能删去文件。

此外,永远不要尝试 " rm -rf / " 这个命令。
这个命令会直接将根目录下所有的数据删除掉,也就是说,系统本身预装的东西,也会因为这个命令,随之消失。特别是在公司的时候,如果执行此操作,就会带来不可逆的影响。

9. cp (复制文件/目录)

" cp " 表示能够 复制 文件或目录。

cp 文件 文件
cp 文件 路径
cp -r 目录 目录

  (1) 复制文件到指定路径Linux常用命令_第14张图片

 (2) 复制文件并重命名Linux常用命令_第15张图片

 (3) 复制目录并重命名Linux常用命令_第16张图片

 10. mv 命令(移动文件/目录)

  • " mv " 表示能够 移动 / 重命名 文件或目录。
  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖 
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
mv 文件 文件
mv 文件 路径
mv 目录 目录

 如果操作的目标文件比较大: 

mv , 整体速度极快, 不会涉及到数据的搬运, 只是把文件路径做出修改 O(1).
cp , 整体速度会较慢, 需要进行数据的搬运, 大量读写磁盘. O(n)

11. less 命令 (查看文件)

less 文件
  • " less " 表示查看文件,使用 " less " 命令查看文件,通过【方向键】上下 可以实现翻页功能。键盘输入 " q ",表示退出查看文件的界面。
  • 此外," less " 命令只能进行文件的查看,不能进行文件的编辑。

" less " 命令最大的优势在于,能够对于大文件进行 " 秒开 "。

正常的一个编辑器打开文件的时候,就是直接将文件内容都读到内存中,这就涉及到大量的磁盘 IO. 此时,如果文件很大 ( 几个G ),就会打开的很慢,甚至打开失败。比方说,我们前面介绍的 " cat " 命令,就是一下子将所有的数据读出来并显示。

然而," less " 命令只是将当前屏幕显示的这一块给加载到内存中,随着用户的手动翻页,就会不断地加载新的部分,这其实就是懒加载的思想,类似于单例模式中的懒汉模式。( 需要用到了数据,才会执行 )

综上所述,在日常开发中,若我们在服务器上需要打开一个大文件,使用 " less " 命令就是一个明智的选择。

12. vim 命令 (编辑文件)

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 ".Linux常用命令_第17张图片

 (3) 如何退出 " vim " ?

① 先点击键盘左上角的 " Esc " 键
② w 表示 written,q 表示 quit.

  • 如果你需要保存并退出,按下 ( :wq )
  • 如果你需要退出但不保存,按下 ( :q ),但是一般系统会提示你未保存。
  • 如果你需要强制退出不保存,按下 ( :q! )
  • 如果你需要保存但不退出,按下 ( :w )

在 xshell 控制台复制粘贴:

复制: ctrl + insert 或者 ctrl  + Fn + insert
粘贴: shift + insert 或者 shift + Fn + insert

13. man (获取帮助)

Linux 的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。

语法:  man [ 选项 ] 命令 ( manual 的缩写)

常用选项: 

  • -k 根据关键字搜索联机帮助
  • num 只在第num章节找
  • man man 能够看到 man 手册中的若干个章节及其含义

14. ps (查看进程)

语法: ps [ 参数 ]...

功能 :用于查看当前系统上运行的进程

选项 :

a 显示一个终端的所有进程
u 以用户为主的格式来显示程序状况
x 显示所有程序,不以终端机来区分
  • ps aux     # 显示系统上所有的进程, 相当于 Windows 的任务管理器
  • grep : 用于搜索文本或文件中的内容
  • ps aux | grep   "进程名"
  • ps aux | grep   "进程id"
  • | 的意思是管道, 把前一个命令的输出, 作为后一个命令的输入.
  • netstat -anp: 列出所有的网络连接,以及正在监听的端口和使用这些连接的程序

15. find (目录中查找文件) 

find 是一个用来在目录中查找文件的命令。你可以根据各种条件来查找文件,例如文件的名称、大小、修改日期等等。

//可以通过通配符查了所有同类型的文件
find 文件名 /(*.文件后缀)

 16. grep (文件中查找特定文本)

grep 是一个用来在文件中查找特定文本的命令。你可以使用普通的字符串或正则表达式来进行搜索。例如,下面的命令会在 "my_file.txt" 中查找所有包含 "hello" 的行:

grep "hello" my_file.txt

17. Shell 脚本相关命令:

  • shbash:运行 shell 脚本。
  • exit:退出当前 shell。
  • echo:输出文字或变量。
  • read:读取用户输入。

你可能感兴趣的:(linux,运维,服务器)