资料:Linux命令讲解
1、权限管理命令,2、文件搜索命令,3、用户管理命令,4、压缩解压命令
pwd,cd,ls,file,touch,mkdir,rmdir,cp,rm,mv,cat,less,more
.........
1.pwd命令
用于显示用户当前所处的工作目录,pwd是“print working directory”的缩写;
2.cd命令
用户切换工作路径,使用cd命令
可以灵活的切换到你想要去的目录下,cd
是change directory
的缩写;
注意:文件路径可以是绝对路径也可以是相对路径
当我们输入文件路径的时候,可以按tab键进行一个自动补全,这一点非常重要
语法:
cd [option] [dir]
cd [选项] [目录]
说明:
- 注意cd命令以及后面的选项和目录,每个元素之间都至少要一个空格。
- cd命令后面的选项和目录等参数都有可以省略。默认情况下,单独执行cd命令,可切换到当前登录用户的家目录(由系统环境变量HOME定义)。
- cd是bash shell的内置命令,查看该命令对应的系统帮助需要使用help cd。
参数选项 | 解释说明 |
-P | 如果切换的目标目录是一个软链接,则会直接切换到软链接指向的真正物理目标目录,和pwd命令的-P选项功能类似,该参数不常用 |
-L | 功能与-P相反,如果切换的目标目录是一个软链接,则直接切换到软链接所在的目录,和pwd命令的-L选项功能类似,该参数不常用。 |
- | 当只使用“-”选项时,将会从当前目录切换到系统环境变量“OLDPWD” 对应值的目录路径,即当前用户上一次所在的目录路径 |
~ | 当只使用“~”选项时,将会从当前目录切换到系统环境变量“HOME” 对应值的目录路径,即当前用户的家目录所在的路径 |
.. | 当只使用“..”选项时,将会从当前目录切换到当前目录的上一级目录所在的路径 |
实例:见下图:
3.ls命令
用于显示目录中的文件信息,查看当前路径下的文件夹及文件(相当于windows系统中的dir),ls是list的缩写;
ls -t
:按照修改时间的排列显示ls -a
:列出全部文件(包括隐藏的文件)ls -l
:查看文件的属性、文件大小等信息ls -la
:查看所有文件并输出文件属性等信息
命令格式:
ls [选项] [目录名]
实例:
-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-m 所有项目以逗号分隔,并填满整行行宽
-o 类似 -l,显示文件的除组信息外的详细信息。
-r, –reverse 依相反次序排列
-R, –recursive 同时列出所有子目录层
4.file命令
用于查看文件的类型;通过file指令,我们得以辨识该文件的类型。
语法: file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
- -b 列出辨识结果时,不显示文件名称。
- -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
- -f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
- -L 直接显示符号连接所指向的文件的类别。
- -m<魔法数字文件> 指定魔法数字文件。
- -v 显示版本信息。
- -z 尝试去解读压缩文件的内容。
- [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
5.touch命令
用于创建空白文件或设置文件的时间;
-d "YYYYMMDD HH:mm:SS 文件名"
:修改文件的时间touch test
:创建一个test的目录touch *
:修改时间为当前系统的时间(当前目录下的所有文件)
6.mkdir命令
用于创建空白的目录,mkdir命令可以结合-p
参数来递归创建出具有嵌套层叠关系的文件目录,mkdir是make directory
的缩写;
-p
:循环建立目录mkdir /a1
:新建一个a1的文件mkdir /a2
:新建一个a2的文件mkdir -p /a3/a4
:循环创建文件a3、a4
7.rmdir命令
用于删除目录(删除的目录为空目录,即目录下没有任何文件),用法同mkdir
命令相同,rmdir
是remove directoy
的缩写;
8.cp命令
用于拷贝文件或目录cp [选项] 源文件 目标文件
,cp
是copy
的缩写;
- -r:复制目录,若目录存在则提示
- -v:显示复制的详细信息
- -f或--force:强行复制文件或目录,不论目的文件或目录是否已经存在
- -i或--interactive:覆盖既有的文件或目录之前先询问用户
- -u或--update:当源文件较目的文件最新时,或名称相对应的目的文件并不存在,才复制文件
- -p或--perserve:保留源文件或目录的属性
9.rm命令
用于删除文件或目录,需要在rm命令加"-r"
参数才可以,否则删不掉,rm
是remove
的缩写;
-r
或-R
:将参数中列出的全部目录和子目录均递归的删除-f
或--force
:强行删除文件或目录,忽略不存在的文件或目录-i
或--interactive
:删除既有的文件或目录之前先询问用户
提示:rm -rf /* 命令
:切记一定要谨慎使用,该命令是删除根目录下的所有文件,互联网圈中一直流行着一句话:从删库到跑路,千万慎用!
10.mv命令
用于剪切文件或将文件重命名,mv [选项] 源文件 [目标路径] [目标文件]
,mv
是move
的缩写;
11.cat命令
用于查看纯文本文件(内容较少的)
-n
或-number
:由1开始对所有输出的行数进行编号cat
:进入交互模式Ctrl + C
:强制中断命令执行Ctrl + D
:退出交互模式cat >test.txt
:把内容写入到test.txt文件中,Ctrl + D
保存退出
12.more命令
用于查看纯文本文件(内容较多的);格式:more [选项] 文件
【基本指令】
- space——>往下一页显示
- enter——>向下滚动一行
- b——>往回一页显示
- q——>停止显示
13.less命令
用于对文件输出进行分页显示,使用[pageup]和[pagedown]
等按键能前后翻看文件,使用'q'
退出查看的状态;
14.head命令
用来显示文件的头部内容(默认10行);head [必要选项] [选择选项] 文件
-n
:用数字来指定显示的行数 例:head -4 /etc/passwd
15.tail命令
用来显示文件的尾部内容(默认10行);格式:head [必要选项] [选择选项] 文件
-n
:用数字来指定显示的行数 例:tail -4 /etc/passw
16.wc命令
用于统计指定文本的行数,字节,字节数;格式:wc [选项] 文本
-l
:只显示行数-w
:只显示单词数-c
:只显示字节数
17.cut命令
用于按"列"提取文本字符;格式:cut [参数] 文本
-b
:以字节为单位进行分割-c
:以字符为单位进行分割-d
:自定义分隔符,默认为制表符-f
与-d
一起使用:指定显示那个区域
18.diff命令
用于比较两个文件内容的不同;格式:diff [选项] 源文件 目标文件
-y
:以并列的方式显示文件的异同之处-b
:忽略空格造成得到不同-B
:忽略空格造成的不同-q
:只报告什么地方不同,不报告具体的信息-i
:忽略大小写的变化-W
:在使用-y
参数时,指定栏宽
19.grep命令
grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
命令格式:
grep [option] pattern file
命令功能:
用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。
20.kill命令
kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。
命令格式:
kill[参数][进程号]
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
参数说明:
- -l <信息编号> 若不加<信息编号>选项,则-l参数会列出全部的信息名称。
- -s <信息名称或编号> 指定要送出的信息。
- [程序] [程序]可以是程序的PID或是PGID,也可以是工作编号。
命令功能:
发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
命令参数
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户
注意事项:
1.应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。
2.当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。有时这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,才会显示出来。
实例:
1.列出所有信号名称
命令:kill -l
说明:
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
2.
6.init进程是不可杀的
命令:
kill -9 1
说明:
init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 其它所有进程都是init进程的子孙。init进程是不可杀的!
21.ps命令
ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。
kill 命令用于杀死进程。
linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
1.命令格式:
ps[参数]
2.命令功能:
用来显示当前进程的状态
经典 Linux 进程管理命令
ps、pstree、top、htop、nice、renice、kill、ulimit、w 和 who 和 whoami、pgrep、fg 和 bg、ipcs
实例:
ps -a - 列出所有运行中/激活进程
ps -ef |grep - 列出需要进程
ps -aux - 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等
22.chmod命令
chmod 英文原意:change the permissions mode of a file ,功能:改变目录或者文件的权限,其中:
{ugoa}:u代表“ 所有者 ”,g代表“ 所属组 ”,o代表“ 其他人 ”,a代表“ 所有人 (all)”。
{±=}:+代表给指定目录或者文件添加权限,-代表给指定目录或者文件减去权限,=代表给指定目录或者文件变为指定的权限。
(1)chmod u+x /abc.txt : 指将 /abccc 目录下的abc.txt的 u(所有者),加上一个执行权限(x)。
(2)chmod g-r /abc.txt : 指将 /abccc目录下的abc.txt的 g(所属组) ,减去一个读取权限( r )。
(3)chmod g=rwx /abc.txt : 指将 /abccc目录下的abc.txt的 g(所属组) ,赋予全部权限 ( rwx )。
注意:
但是Linux系统中用得最多的还是使用以下形式去修改权限:
{ r : 4 , w : 2 , x : 1 }
(4)chmod -R 752 /abc.txt : 指将 /abccc 目录下的abc.txt的权限改为 rwxr-x-w-。
注意:若是修改了目录的权限,则此目录下的所有文件或者目录的权限都将会变成与此目录的权限一致
其他:
(5)chown 英文原意:change file ownership,功能:改变目录或者文件的所有者,例如:
chown victor /hha.txt : 指 将 /tmp 目录下的 hha.txt文件的所有者改成 victor.
注意:只有root 超级用户才可以改变目录或者文件的所有者。
(6)chgrp 英文原意:change file group ownership,功能:改变目录或者文件的所属组,例如:
chown victor /abccc: 指 将 /tmp 目录下的 abccc 文件的所属组改成 victor.
(7)umask -S 英文原意:the user file-creation mask,功能:以 rwx 的形式来显示文件的缺省权限,