Linux文件类型:
文件类型 | 描述 | 示例 |
---|---|---|
普通文件 | 用来在辅助存储设备(磁盘)上存储信息和数据 | 程序源代码、程序、图片等 |
目录文件 | 用于表示和管理系统中的文件,目录文件中包含一些文件名和子目录名 | /root,/home |
链接文件 | 用于不同目录下文件的共享 | 当创建一个已存在的链接符时,系统就创建一个链接文件,指向已存在的文件 |
设备文件 | 用来访问硬件设备 | 键盘、硬盘等 |
命名管道(FIFO) | 是一种特殊类型的文件,Linux系统下,进程之间通信可以通过该文件完成 |
常见目录:
- /bin: 存放二进制可执行文件(ls、cat、mkdir等),常用命令一般都在这里;
- /etc: 存放系统管理和配置文件;
- /home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示;
- /usr : 用于存放系统应用程序;
- /opt: 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里;
- /proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
- /root: 超级用户(系统管理员)的主目录(特权阶级^o^);
- /sbin: 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等;
- /dev: 用于存放设备文件;
- /mnt: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
- /boot: 存放用于系统引导时使用的各种文件;
- /lib : 存放着和系统运行相关的库文件 ;
- /tmp: 用于存放各种临时文件,是公用的临时文件存储点;
- /var: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等;
- /lost+found: 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里。
基本命令:
1、目录切换
- cd usr:切换到usr目录
- cd ..:切换到上一层目录
- cd /:根目录
- cd ~:用户主目录
- cd -:上一次操作所在目录
2、目录的操作命令
- mkdir 目录名称:增加目录
- ls ll:查看目录信息
- find 目录 参数:寻找目录
- mv 目录名称 新目录名称:修改目录的名称
- mv 目录名称 目录的新位置:剪切/移动
- cp -r 目录名称 拷贝目标地址:拷贝目录, -r表示递归拷贝
- 可拷贝目录,压缩包,文件。文件 压缩包拷贝时不用-r
- rm [-rf] 目录:删除目录
- rm可以删除目录,文件,压缩包
文件的操作命令
1、touch 文件名称: 文件创建
2、cat/more/less/tail 文件名称:文件的查看
- cat:查看显示文件内容
- more:显示百分比,回车下一行,空格下一页,q退出
- less:可以使用键盘PgUp和PgDn,q退出
- tail -f:动态监控
- tail -10:最后10行
3、vim 文件:编辑修改
4、rm -rf 文件:删除文件
压缩文件
打包并压缩文件
1、打包文件一般是.tar结尾,压缩一般是.gz结尾。
tar -zcvf 打包压缩后的文件名 sourceName
- z:调用gzip命令进行压缩
- c:打包文件
- v:显示运行过程
- f:指定文件名
2、解压压缩包
命令:tar [-xvf] 压缩文件
- x:表示解压
tar -xvf xxx.tar.gz -C /usr (-c表示指定位置)
线程、进程命令
pwd:显示当前所在位置
grep 要搜索的字符串 要搜索的文件 --color:搜索命令,--color代表高亮
ps:ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
常用组合:
ps -ef/ ps -aux:这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同。如果想要查看特定的进程可以使用这样的格式:ps aux|grep redis
(查看包括redis字符串的进程),也可使用 pgrep redis -a
。
kill -9 进程的pid:杀死进程
ps [options]
-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
a:显示现行终端机下的所有程序,包括其他用户的程序。
-A:显示所有程序。
-c:显示CLS和PRI栏位。
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C<指令名称>:指定执行指令的名称,并列出该指令的程序的状况。
-d:显示所有程序,但不包括阶段作业领导者的程序。
-e:此选项的效果和指定"A"选项相同。
e:列出程序时,显示每个程序所使用的环境变量。
-f:显示UID,PPIP,C与STIME栏位。
f:用ASCII字符显示树状结构,表达程序间的相互关系。
-g<群组名称>:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
g:显示现行终端机下的所有程序,包括群组领导者的程序。
-G<群组识别码>:列出属于该群组的程序的状况,也可使用群组名称来指定。
h:不显示标题列。
-H:显示树状结构,表示程序间的相互关系。
-j或j:采用工作控制的格式显示程序状况。
-l或l:采用详细的格式来显示程序状况。
L:列出栏位的相关信息。
-m或m:显示所有的执行绪。
n:以数字来表示USER和WCHAN栏位。
-N:显示所有的程序,除了执行ps指令终端机下的程序之外。
-p<程序识别码>:指定程序识别码,并列出该程序的状况。
p<程序识别码>:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r:只列出现行终端机正在执行中的程序。
-s<阶段作业>:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s:采用程序信号的格式显示程序状况。
S:列出程序时,包括已中断的子程序资料。
-t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号>:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T:显示现行终端机下的所有程序。
-u<用户识别码>:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
-U<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称>:列出属于该用户的程序的状况。
v:采用虚拟内存的格式显示程序状况。
-V或V:显示版本信息。
-w或w:采用宽阔的格式来显示程序状况。
x:显示所有程序,不以终端机来区分。
X:采用旧式的Linux i386登陆格式显示程序状况。
-y:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
-<程序识别码>:此选项的效果和指定"p"选项相同。
--cols<每列字符数>:设置每列的最大字符数。
--columns<每列字符数>:此选项的效果和指定"--cols"选项相同。
--cumulative:此选项的效果和指定"S"选项相同。
--deselect:此选项的效果和指定"-N"选项相同。
--forest:此选项的效果和指定"f"选项相同。
--headers:重复显示标题列。
--help:在线帮助。
--info:显示排错信息。
--lines<显示列数>:设置显示画面的列数。
--no-headers:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
--group<群组名称>:此选项的效果和指定"-G"选项相同。
--Group<群组识别码>:此选项的效果和指定"-G"选项相同。
--pid<程序识别码>:此选项的效果和指定"-p"选项相同。
--rows<显示列数>:此选项的效果和指定"--lines"选项相同。
--sid<阶段作业>:此选项的效果和指定"-s"选项相同。
--tty<终端机编号>:此选项的效果和指定"-t"选项相同。
--user<用户名称>:此选项的效果和指定"-U"选项相同。
--User<用户识别码>:此选项的效果和指定"-U"选项相同。
--version:此选项的效果和指定"-V"选项相同。
--widty<每列字符数>:此选项的效果和指定"-cols"选项相同。
根据端口号查看进程pid
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
语法:netstat(选项)
常用命令:netstat -lnp|grep 8080
选项:
-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-r或--route:显示Routing Table;
-s或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同。
网络通信命令
- 查看当前系统的网卡信息:ifconfig
- 查看与某台机器的连接情况:ping
- 查看当前系统的端口使用:netstat-an
Linux的权限命令
操作系统中每个文件都有特定的权限,所属用户和所属组。权限是操作系统用来闲置资源访问的机制,在Linux中权限一般分为读(readable)、写(writable)和执行(excutable)。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制那些用户、哪些组可以对特定的文件进行什么样的操作。通过ls -l命令可以查看某个目录下的文件或目录的权限。
第一列内容的信息解释:
文件类型
- d:目录
- -:文件
- l:软链接(类似快捷方式)
Linux中的权限:
对于文件
- r:可以使用cat查看文件内容
- w:可以修改文件内容
- x:可以将其运行为二进制文件
对于目录
- r:可查看目录下列表
- w:可创建和删除目录下的文件
- x:可以使用cd进入目录
超级用户可以无视普通用户的权限,即使文件目录权限是000,依旧可以访问。
linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其他组概念。
- 所有者:一般为文件的创建者。ls -ahl可以看到文件的所有者,也可以使用【chown 用户名 文件名】来修改文件的所有者
- 文件所在组:当某个用户创建了一个文件后,这个文件的所在组就是用户所在的组 可以使用【chgrp 组名 文件名】修改
- 其他组:除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
修改文件/目录的权限的命令:chmod
chmod u=rwx,g=rw,o=r aaa.text