1.前言
1.1 定义
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
1.2 特点
Linux系统下一切皆文件,他/目录中存放这系统文件如下图。Linux系统主要是使用命令来操作系统的,这样的好处是,Windows系统上需要几步的操作,在Linux系统上可能就需要一行命令就搞定了,大大的提高工作效率。
2.常用命令介绍
2.1 ls
语法: ls [选项] [目录或文件]
功能: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-r 对目录反向排序。
-t 以时间排序。
-R 列出所有子目录下的文件。(递归)
举例:
2.2 pwd
语法:pwd
功能:显示用户当前所在的目录
举例:
2.3 cd
语法: cd 目录名
功能: 改变工作目录。将当前工作目录改变到指定的目录下.
其他选项:
cd … : 返回上级目录
cd ~:进入用户家目
cd -:返回最近访问目录
举例: cd /root/ 这就进入到root目录下了 。
Linux的目录结构,它类似一个N叉树的形式。
2.4 touch
语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
举例: touch test.txt
2.5 cat
语法: cat [选项] [文件]
功能: 查看目标文件的内容
常用选项:
-n 输入所在行号
举例:cat test.txt
2.6 mkdir
语法:mkdir [选项] dirname
功能:在当前目录下创建一个名为 “dirname”的目录。
常用选项:
-p,–parents 可以是一个路径名称;此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好哪些尚不存在的目录,即一次可以建立多级目录。
举例:mkdir –p test/test1
解读: 递归建立多个目录
2.7 rm
语法:rm [选项] [dirName/dir]
功能: 删除文件或目录
**常用选项:
-f 即使文件属性为只读(即写保护),仍直接删除
-i 删除前逐一询问确认
-r 删除目录及其以下全部文件
举例: rm test.txt
这里删除的时候,它下面有一个提示语,我们需要输入y/yes来确认。
重要注意事项❗❗❗
千万不要运行 rm -rf / , 尤其是在公司的生产服务器上,他会将系统中的所有文件全部删除。
2.8 cp
语法: cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则他会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
常用选项:
-f或 --force 强行复制文件或目录,无论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
r 递归处理,将指定目录下的文件于子目录一并处理。若源文件或目录的形态不属于目录或符号链接,则一律视为普通文件处理
-R 或 -recursive 递归处理,将指定目录下的文件及子目录一并处理
举例: cp test1.txt test2.txt
解读:将test1.txt 文件拷贝一份成为test2.txt文件
2.9 mv
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
1.视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
2.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3.当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
-f force 强制的意思,如果目标文件已经存在,不会询问而是直接覆盖
-i 若目标文件已经存在时,会询问是否覆盖
举例:mv test1.txt test2.txt
解读:test1.txt会被test2.txt覆盖。
2.10 man(联机手册)
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
语法: man [选项] 命令
常用选项:
-k 根据关键字搜索联机帮助
num 只在第num章节找
man man 能够看到 man 手册中的若干个章节及其含义
举例: man ls
2.11 vim
vim 是一个知名的文本编辑器. 前面学习的 cat命令只能查看文本, 不能编辑文本. 使用vim 就可以进行编辑了。
vim 就相当于 Windows 的记事本. 只不过功能比记事本强大一些.
1)创建文件 / 打开文件
vim [文件名]
2)进入插入模式
vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键. (例如按下 j 并不是输入字母 “j”, 而是表示光标往下移动一行). 需要进入插入模式才能进行文本编辑.
使用 i 键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.
3)保存
在插入模式下不能保存文件, 需要先回到 普通模式 . 按下 Esc 回到普通模式.
在普通模式下输入 :w , 再按下回车, 即可保存文件
4)退出
在插入模式下不能退出, 需要先回到 普通模式.
在普通模式下输入 :q , 再按下回车, 即可退出。
也可以直接使用 :wq 同时执行保存和退出
vim模式切换图:
2.12 grep
语法: grep [参数] [文件]
功能: 用于查找文件中是否包含指定字符串,并显示对应的行。
选项:
-n<行数> 显示的行数
-w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分
-r 递归查找. 可以搜索多级目录下的所有文件
–color 高亮查找到的结果
–include 指定查找某些文件
–exclude 指定排除某些文件
举例:grep "hello" Hello.java
2.13 ps
语法:ps [参数] …
功能:用于查看当前系统上运行的进程
选项:
a 显示一个终端的所有进程
u 以用户为主的格式来显示程序状况
x 显示所有程序,不以终端机来区分
举例:
ps aux #显示系统上所有的进程 ps aux | grep "进程名" ps aux | grep "进程id"
2.14 netstat
语法:netstat [参数] …
功能:查看系统上的网络状态
选项:
- -a 显示所有正在或不在侦听的套接字
- -n 显示数字形式地址而不是去解析主机、端口或用户名
- -p 显示套接字所属进程的
PID
和名称
举例:
netstat -anp netstat -anp | grep "进程名" netstat -anp | grep "端口号"