前言
Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,再加上用户空间的应用程序之后,就成为了Linux操作系统,严格来讲,Linux只是操作系统内核本身,但通常采用”Linux内核“来表达该意思,而Linux则通常表示基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具
一、Linux基本指令
1. ls指令:对于目录,该命令列出该目录下的所有子目录与文件,对于文件,将列出文件名以及其他信息
ls [选项] [目录或者文件]
常用选项
- —a 列出目录下的所有文件,包括以。开头的隐含文件
- —d 将目录像文件一样显示,而不是显示其下的文件 ls-d 指定目录
- —k 以k字节形式表示文件的大小,ls—alk指定文件
- —l 列出文件的详细信息
- —r 对目录反向排序
- —t 以一时间排序
- —R 列出所有子目录下的文件(类似于递归形式)
2. pwd命令 显示用户当前所在目录
pwd
3. cd命令 改变工作目录,将当前工作目录改变到指定目录下
cd 目录名
cd..:返回上一级目录
cd ~:进入用户家目录
cd -: 返回最近访问目录
4. touch指令 :touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件
touch[选项] [文件]
touch test.txt
5. mkdir指令 :在当前目录下创建一个名为”dirname“的目录
mkdir [选项] dirname...
mkdir -p test/test1:递归建立多个文件
- -p:—parents 可以是路径名称,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些不存在的目录,即一次可以建立多级目录
6. rm指令 删除文件/目录
rm [-f-i-r-v][dirname/dir]
rm test.txt
- -f即使文件属性为只读(即写保护),亦可直接删除
- -i 删除前逐一询问确认是否删除
- -r 删除目录及其下所有目录
7. cp指令 复制文件或目录
cp[选项] 源文件/目录 目标文件/目录
cp text1.txt text2.txt
- -f 或-force 强行复制文件或目录,不论目的文件或目录已存在
- -i 或interactive 覆盖文件之前先询问用户
- -r 递归处理,将指定目录下的文件与子目录一并处理,若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
8. mv指令 1. 视mv命令中第二参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至新目录下 **2.**当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件/目录重命名为给定的目标文件名 **3.**当第二个参数是已存在的目录时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标文件
mv[选项] 源文件名/目录 目标文件名/目录
mv text1.txt text2.txt
- -f force强制的意思,如果目标文件已经存在,不会询问直接覆盖
- -i 若目标文件(destination)已经存在时,就会询问是否覆盖
9. cat指令 :查看文件内容
cat [选项] [文件]
cat text.txt
- -n对输出的所有行编号
10. man指令
man [选项] 命令
man ls(查看ls指令)
- -k 根据关键字搜索联机帮助
- num 指在第num章节找
- man man能够看到man手册中的若干个章节及其含义
- less指令:查看文件内容,不会立刻把所有文件内容加载到内存中,也能进行查找
less [参数] 文件
- j k /方向键:向上向下滚动屏幕
- -N 显示每一行的行号
- n:重复前一个搜索(与/或?有关)
- q:退出
12. head指令:head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行
head [参数 ] [文件]
- -n<行数>:显示的行数
13. tail指令: 用于显示文件末尾内容,不指定文件时,作为输入信息进行处理,常用于查看日志文件
tail [必要参数] [选择参数] [文件]
##有一个文件共有100行内容,请去除第50行内容
#方法一
head -n50 test > tmp #将前50行装入临时文件tmp
tail -n1 tmp #得到第50行
#方法二
head -n50 test | tail n1
- -f 循环读取
- -n<行数> 显示行数
**14. 关于| 管道:**将前一个指令标准输出的内容作为第二个指令标准输入的内容
15. date命令 : date指定格式显示时间:date+%Y:%m:%d
date [OPTION] [format]
#时间-》时间戳:date +%s
#时间戳-》时间:date -d@1508749502
16. yum命令
#1.查看软件包列表
yum list | grep [软件包关键字] #最好加上grep,否则结果太多,导致机器卡顿
#2.安装软件包
yum install [软件包名字]
#3.卸载软件包
yum remove [软件包名字]
yum 所有命令必须保证网络联通下,才能使用
yum install /yum remove 必须具备管理员权限(root用户)
可以使用ping www.baidu.com 来检测网络的畅通情况
17. chmod命令:设置文件的访问权限
chmod [参数] 权限 文件名
chmod u+w /home/abc.txt
chmod o-x /home/abc.txt
chmod a=x /home/abc.txt
- R->递归修改目录文件的权限
- 只有在文件的拥有者和root才可以改变文件的权限
用户标识符+/-=权限字符
- +:向权限范围增加权限代号所表示的权限
- -:向权限范围取消权限代号所表示的权限
- =:向权限范围赋予权限代号所表示的权限
- 用户符合
- u:拥有者
- g:拥有着同组
- o:其他用户
- a:所有用户
二、Linux目录结构(树形结构)
- /bin: bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
- /boot: 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev : dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux中访问设备的方式和访问文件的方式是相同的。
- /etc: etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- /home: 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的alice、bob 和 eve。
- /lib: lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL文件。几乎所有的应用程序都需要用到这些共享库。
- /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /media: linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
- /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /opt: opt 是 optional(可选)的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc: proc 是 Processes(进程) 的缩写,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
几个特殊的目录:
/称为根目录
.称为当前目录
…称为当前目录的上一级目录
关于vim
vim是一个古老的命令行下的开发工具,可以看作是高端的记事本
vim有多种模式:
- 普通模式:启动vim默认普通模式,此时键盘按键不是直接输入文本,而是各种功能的快捷键
- 插入模式:在普通模式下,按下i 进入插入模式,可以进行编辑
- 命令模式:编辑完毕,按 ESC返回到普通模式,然后输入:进入命令模式,此时光标在屏幕最下面。然后输入wq,表示保存并退出
如何查看端口号
netstat命令 可以搭配grep进行过滤 选择需要查看的端口号占用情况
查看进程并且杀死进程
查看进程 ps aux | grep …
例如 ps aux | grep program_filter_word,ps -ef |grep tomcat
如何查看进程个数
ps axu|wc -l
如何查看目录下的文件个数
1.查看当前目录下的文件个数
ls-l | grep “^-” | wc-l
2.查看当前目录下包括子目录的文件个数
ls-lR | grep “^-” | wc-l
3.查看当前目录下的目录个数
ls-l | grep “^d” | wc-l
4.查看当前目录下包含子目录的目录个数
ls-lR | grep “^d” | wc-l
top查看内存/CPU使用情况
结果里面有一列%CPU 上次更新到现在的CPU时间占用百分比
总结
关于Linux指令有很多很多,全部记住肯定是无法完成的,所以我们只需要记住上面这几种常见的常用的指令,并在有需要的时候利用man 查找指令,或者查阅相关手册。