文章目录
- 一、Linux 文件与目录结构
- 二、VI、VIEW、VIM编辑器
- 三、系统管理
- 四、常用基本命令
- 1、帮助命令
- 2、文件目录类
- 2.1、pwd 显示当前工作目录的绝对路径
- 2.2、ls 列出目录的内容
- 2.3、cd 切换目录
- 2.4、mkdir 创建一个新的目录
- 2.5、rmdir 删除一个空的目录
- 2.6、touch 创建空文件
- 2.7、cp 复制文件或目录
- 2.8、rm 删除文件或目录
- 2.9、mv 移动文件与目录或重命名
- 2.10、cat 查看文件内容
- 2.11、more 文件内容分屏查看器(了解即可,less更强大)
- 2.12、less 分屏显示文件内容
- 2.13、echo
- 2.14、head 显示文件头部内容
- 2.15、tail 输出文件尾部内容
- 2.16、 > 输出重定向(覆盖)和 >> 追加
- 2.17、ln 软链接
- 2.18、history 查看已经执行过历史命令
- 3、时间日期类
- 4、用户管理命令
- 5、用户组管理命令
- 6、文件权限类
- 7、搜索查找类
- 8、压缩和解压类
- 9、进程管理类
一、Linux 文件与目录结构
linux系统中一切皆文件
目录结构
目录结构简介
- /bin:存放最经常使用的命令(快捷方式,真正存储在/usr/bin)
- /sbin:存放的是系统管理员使用的系统管理程序
- /home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账户命名的
- /root:该目录为系统管理员,也称为超级权限者的用户主目录
- /lib:系统开机所需要基本的动态连接共享库,其作用类似于Windows里的DLL文件,集合所有的应用程序都需要用到这些共享库
- /lost+found:这个目录一般情况是空的,当系统非法关机后,这里就存放一些文件
- /etc:所有的系统管理员所需要的配置文件和子目录
- /usr:这个一个非常重要的目录,用户的很多应用程序和文件都在这个目录,类似windows下的program files目录
- /boot:存放的是穷Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里
- /proc:一个虚拟目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统的信息
- /srv:service缩写,存放一些服务启动之后需要提取的数据
- /sys:这是linux2.6内核的一个很大的变化,该目录安装了2.6内核中新出现的一个文件系统sysfs
- /tmp:这个目录是用来存放一些临时文件的
- /dev:类似于windows的设备管理器,把所有的硬件用文件的形式存储
- /media:linux系统会自动识别一些设备,如U盘、光驱等,当识别后,linux会把识别的设备挂载到这个目录下
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了
- /opt:给主机额外安装软件所摆放的目录,比如安装一个MySQL数据库就放到这个目录下,默认是空的
- /var:这个目录存放这在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件
二、VI、VIEW、VIM编辑器
简介
- VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。即VIEW。
- VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM 与 VI 编辑器完全兼容。
1、vi打开文件
2、vim打开文件
一般模式
- 以 vi 打开一个档案就直接进入一般模式了(默认的模式)
- 在这个模式中, 你可 以使用『上下左右』按键来移动光标
- 可以使用『删除字符』或『删除整行』来处理档 案内容
- 也可以使用『复制、粘贴』来处理你的文件数据
编辑模式
- 在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!
- 按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式
- 按下这些按键时,在画面的左下方会出现『INSERT或 REPLACE』的字样,此时才可以进行编辑
- 如果要回到一般模式时, 则必须要按下 『Esc』这个按键即可退出编辑模式
指令模式
- 在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那 一行
- 在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、 离开 vi 、显示行号等动作是在此模式中达成的
模式间转换
三、系统管理
1、防火墙
- 查看防火墙服务的状态:systemctl status firewalld
- 停止防火墙服务:systemctl stop firewalld
- 启动防火墙服务:systemctl start firewalld
- 重启防火墙服务:systemctl restart firewalld
2、设置后台服务的自启配置
- 查看服务开机启动状态:systemctl list-unit-files
- 关掉指定服务的自动启动:systemctl disable service_name
- 开启指定服务的自动启动:systemctl enable service_name
例如(开启防火墙开机自启):systemctl enable firewalld.service
3、关机重启命令
- 重启:reboot
- 停机(不断电):halt
- 关机(断电):poweroff
四、常用基本命令
1、帮助命令
man 获得帮助信息
基础语法:man [命令或配置文件]
常用快捷键
- ctrl + c:停止进程
- ctrl+l:清屏,等同于 clear;彻底清屏是:reset
- tab 键:提示
- 上下键:查找执行过的命令
2、文件目录类
2.1、pwd 显示当前工作目录的绝对路径
基本语法:pwd(显示当前工作目录的绝对路径)
2.2、ls 列出目录的内容
基本语法:ls [选项]
ll:单位的默认大小是字节;ls -h:人性化显示文件大小m,g
ls -l 命令每行列出的信息依次是:
- 文件类型与权限
- 链接数
- 文件属主
- 文件属组
- 文件大小用byte 来表示
- 建立或最近修改的时间
- 文件名字
2.3、cd 切换目录
基本语法:cd [参数]
1、使用绝对路径切换到 root 目录
2、使用相对路径切换到“公共”目录
3、表示回到自己的家目录,亦即是 /root这个目录
4、cd- 回到上一次所在目录
5、表示回到当前目录的上一级目录
2.4、mkdir 创建一个新的目录
基本语法:mkdir [选项] 要创建的目录
1、创建一个或多个目录
2、创建一个多级目录
2.5、rmdir 删除一个空的目录
基本语法:rmdir 要删除的空目录
e 不是空文件夹,删除失败,b是空文件夹
2.6、touch 创建空文件
基本语法:touch 文件名称
创建的文件不加后缀,则默认为文本
2.7、cp 复制文件或目录
基本语法:cp [选项] source dest (功能描述:复制source文件到dest)
1、复制文件
2、复制文件夹(不论是否嵌套文件夹都必须加-r)
- cp -r 命令复制的数据会使用新的时间戳等信息
- cp -a 命令复制的数据会保留元数据的时间戳和文件属性等信息
2.8、rm 删除文件或目录
基本语法:rm [选项] deleteFile
1、删除文件
2、删除目录(不论是否嵌套文件夹都必须加-r)
2.9、mv 移动文件与目录或重命名
基本语法:
- 重命名:mv oldNameFile newNameFile
- 移动文件:mv /temp/movefile /targetFolder
1、重命名
2、移动文件
3、移动目录
2.10、cat 查看文件内容
基本语法:
- cat [选项] 要查看的文件
- 将内容全部展示出来(一般查看比较小的文件,一屏幕能显示全的)
查看文件内容并显示行号
2.11、more 文件内容分屏查看器(了解即可,less更强大)
-
more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件 的内容。
-
基本语法:more 要查看的文件
2.12、less 分屏显示文件内容
- less 指令用来分屏查看文件内容,它的功能与 more 指令类似
- 但是比 more 指令更加 强大,支持各种显示终端
- less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示
- 而是根据显示需要加载内容,对于显示大型文件具有较高的效率
- 基本语法:less 要查看的文件
shitf + g文件最后,g文件开头
2.13、echo
- echo 输出内容到控制台
- 基本语法:echo [选项] [输出内容]
- -e: 支持反斜线控制的字符转换
- \\ :输出\本身
- \n :换行符
- \t :制表符,也就是Tab键
2.14、head 显示文件头部内容
- head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
- head 文件 (功能描述:查看文件头10行内容)
- head -n 文件 (功能描述:查看文件头n行内容)
显示文件头5行内容
2.15、tail 输出文件尾部内容
- tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容
- tail 文件 (功能描述:查看文件尾部10行内容)
- tail -n 文件 (功能描述:查看文件尾部n行内容)
- tail -f 文件(功能描述:实时追踪该文档的所有更新)
实时监控最后20行文件内容
2.16、 > 输出重定向(覆盖)和 >> 追加
- ls -l > 文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))
- ls -al >> 文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)
- cat 文件1 > 文件2 (功能描述:将文件 1 的内容覆盖到文件 2)
- echo “内容” >> 文件
举例
1、将 ls 查看信息写入到文件中
2、将 ll 查看信息追加到文件中
3、采用 echo 将 hello world单词追加到文件中
4、采用 echo 将 hello linux单词覆盖到文件中
2.17、ln 软链接
- 软链接也称为符号链接,类似于 windows 里的快捷方式,有自己的数据块,主要存放 了链接其他文件的路径
- ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
- 删除软链接: rm -rf 软链接名,而不是 rm -rf 软链接名/
- 如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉
- 查询:通过 ll 就可以查看,列表属性第 1 位是 l,尾部会有位置指向
1、创建软连接
2、删除软连接(注意不要写最后的/)&&(原来的目录文件依然在)
3、进入软连接实际物理路径
2.18、history 查看已经执行过历史命令
基本语法:history (功能描述:查看已经执行过历史命令)
3、时间日期类
3.1、date 显示当前时间
- date:显示当前时间
- date +%Y:显示当前年份
- date +%m:显示当前月份
- date +%d:显示当前是哪一天
- date “+%Y-%m-%d %H:%M:%S”:显示年月日时分秒
3.2、date 显示非当前时间
- date -d ‘1 days ago’:显示前一天时间
- date -d ‘-1 days ago’:显示明天时间
3.3、date 设置系统时间
- 设置系统当前时间
- 恢复本地当前时间
3.4、cal 查看日历
- cal:查看当月日历
- cal 2017:查看 2017 年的日历
4、用户管理命令
4.1、useradd 添加新用户
- useradd 用户名:添加新用户
- useradd -g 组名 用户名:添加新用户到某个组
添加一个用户
4.2、passwd 设置用户密码
- passwd 用户名:设置用户密码
4.3、id 查看用户是否存在
- id 用户名
4.4、cat /etc/passwd 查看创建了哪些用户
。。。
4.5、切换用户(swith user)
- su 用户名称:切换用户,只能获得用户的执行权限,不能获得环境变量
- su - 用户名称:切换到用户并获得该用户的环境变量及执行权限
4.6、userdel 删除用户
- userdel 用户名:删除用户但保存用户主目录
- userdel -r 用户名:用户和用户主目录,都删除
4.7、who 查看登录用户信息
- whoami:显示自身用户名称
- who am i:显示登录用户的用户名以及登陆时间
4.8、sudo 设置普通用户具有 root 权限
直接使用root权限失败,需要修改配置文件
修改 /etc/sudoers 文件如下
或者配置成采用 sudo 命令时,不需要输入密码
4.9、usermod 修改用户
- usermod -g 用户组 用户名
5、用户组管理命令
- 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理
- 不同 Linux 系统对用户组的规定有所不同
- 用户组的管理涉及用户组的添加、删除和修改
- 组的增加、删除和修改实际上就是对 /etc/group文件的更新
1、groupadd 新增组
2、groupdel 删除组
3、groupmod 修改组
4、cat /etc/group 查看创建了哪些组
。。。
6、文件权限类
6.1、文件属性
在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属 的用户和组
1)如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:
- 0 首位表示类型,在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
- - 代表文件
- d 代表目录
- l 链接文档(link file)
- 第1-3位确定属主(该文件的所有者)拥有该文件的权限。—User
- 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,—Group
- 第7-9位确定其他用户拥有该文件的权限 —Other
2)rwx 作用文件和目录的不同解释
作用到文件:
- [ r ]代表可读(read):可以读取,查看
- [ w ]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前 提条件是对该文件所在的目录有写权限,才能删除该文件
- [ x ]代表可执行(execute):可以被系统执行
作用到目录:
- [ r ]代表可读(read):可以读取,ls查看目录里面的内容
- [ w ]代表可写(write):可以修改,目录内创建+删除+重命名目录
- [ x ]代表可执行(execute):可以cd进入该目录,没有读权限则不能ls
3)链接数
- 如果查看到是文件:链接数指的是硬链接个数
- 如果查看的是文件夹:链接数指的是子文件夹个数
注意: 空目录有两个链接数,一个本地文件夹,一个上级文件夹
6.2、chmod 改变权限
1)基本语法
-
方式一:chmod [{ugoa}{±=}{rwx}] 文件或目录(u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和))
-
方式二:chmod [mode=421 ] [文件或目录] (r=4 w=2 x=1 rwx=4+2+1=7)
2)案例实操
1、给文件属组添加写权限
2、给文件属组撤销执行权限,其他用户添加写权限
3、采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权 限
744、644
4、修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可 执行权限
6.3、chown 改变所有者
- 基本语法:chown [选项] [最终用户] [文件或目录] (改变文件或者目录的所有 者)
- 选项说明:-R 递归操作
修改目录所有者
6.4、chgrp 改变所属组
- 基本语法:chgrp [最终用户组] [文件或目录] (改变文件或者目录的所属组)
修改目录所有组
7、搜索查找类
7.1、find 查找文件或者目录
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
基本语法:find [搜索范围] [选项]
1、按文件名:根据名称查找root目录下的*.txt文件(双引号可加可不加)
2、按拥有者:查找根目录下,用户名称为zhangsan的文件
3、按文件大小:在/root目录下查找大于2M的文件(+n 大于 -n小于 n等于)
7.2、locate 快速定位文件路径
locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给 定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确 度,管理员必须定期更新 locate 时刻。
基本语法:locate 搜索文件
先更新数据库,再查找,全模糊
7.3、grep 过滤查找及“|”管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法:grep 选项 查找内容 源文件(-n:显示匹配行及行号)
1、查看文件中关键字出现的位置
2、当前目录ls显示结果下,筛选关键字cfg
8、压缩和解压类
8.1、gzip/gunzip 压缩
基本语法:
- gzip 文件:压缩文件,只能将文件压缩为*.gz 文件
- gunzip 文件.gz :解压缩文件命令
- 只能压缩文件不能压缩目录
- 不保留原来的文件
- 同时多个文件会产生多个压缩包
1、gzip压缩
2、gunzip解压缩文件
8.2、zip/unzip 压缩
基本语法:
- zip [选项] XXX.zip 将要压缩的内容 (压缩文件和目录的命令)
-r:递归压缩,不加-r只压缩本目录
- unzip [选项] XXX.zip (解压缩文件)
1、压缩initial-setup-ks.cfg和mydir,压缩后的名称为mypackage.zip
2、解压mypackage.zip到指定目录
8.3、tar 打包
基本语法:tar [选项] XXX.tar.gz 将要打包进去的内容(打包目录,压缩后的 文件格式.tar.gz)
1、压缩多个文件
2、解压到指定目录
9、进程管理类
9.1、ps 查看当前系统进程状态
基本语法:
- ps aux | grep xxx :查看系统中所有进程
- ps -ef | grep xxx :可以查看子父进程之间的关系
9.2、jps 查看进程
基本语法:
- jps:查看当前系统中正在运行的Java进程信息,包括进程ID和进程名称
- jps -l:显示正在运行的Java进程信息,包括进程ID、进程名称和完整的Java应用程序包名
9.3、kill 终止进程
基本语法:
- kill [选项] 进程号:通过进程号杀死进程
- killall 进程名称:通过进程名称杀死进程,也支持通配符
- 杀死多个进程:kill -9 pid1 pid2 pid3
9.4、netstat 显示网络状态和端口占用信息
基本语法:
- netstat -anp | grep 进程号:查看该进程网络信息
- netstat -nltp | grep 端口号:查看网络端口号占用情况
1、查看sshd进程的网络信息
2、查看某端口号是否被占用
第一个ip为tcp服务端,第二个ip为tcp客户端,LISTEN监听状态,ESTABLISHED连接状态
9.5、mac 显示端口占用信息
基本语法:
- lsof -i:端口号:查看端口号占用情况
- 注意:-i:端口号 之间不能有空格
9.6、nohup和&的后台启动
&
后台执行:当执行sh start.sh &时候- 即使用ctrl+C, start.sh照样运行
- 但是如果你直接
关掉shell
, 那么start.sh进程将消失
nohup
后台执行:当执行nohup start.sh 时候- 即使关闭shell, start.sh照样运行
- 需要配合使用&符号,否则界面仍然会卡住,不能操作其他命令
综合使用
nohup java -jar xxx.jar > /var/log/out.log &