Linux基本命令
Posted ygeloutingyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基本命令相关的知识,希望对你有一定的参考价值。
1:创建文件: touch 文件名
touch命令还可以通过参数来改变已有文件的访问时间和修改时间,而不改变文件内容;
只改变修改时间 touch -m 文件名
只改变访问时间 touch -a 文件名
默认情况下touch使用当前时间,可以通过-t参数加上特定的时间戳来指定时间
touch -at 201112251200 gg
touch -t 201112251200 gg
--------------------------------------------------------------------------------------------------------------------------------------------------------
2:删除文件:rm 文件名
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除
-v, --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出
友情提示:一般的删除操作用rm 即可
----------------------------------------------------------------------------------------------------------------------------------------------------------
3:创建目录:mkdir -参数 目录名
参数列表:
-m: 对新建目录设置存取权限,也可以用chmod命令设置;
-p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
----------------------------------------------------------------------------------------------------------------------------------------------------------
4:删除目录:
rmdir 目录名 (它只能删除空目录)
rm -r 目录名 (通过-r参数递归的删除目录中的文件,最后删除目录自身)
还可以通过加参数 -f 强制删除
要注意的是如果当前处于该目录里则不能直接删除这个目录
如果该目录正在执行进程,则需kill该进程才能删除这个目录
如果该目录同时作为挂载点,则需要先卸载该挂载点才能删除该目录
----------------------------------------------------------------------------------------------------------------------------------------------------------
5:重命名文件或目录:mv 文件原名 文件新名
移动文件或目录:
mv 目录名1 目录名2 //将目录1及其目录下的所有文件移动到目录2下
mv 文件名 目录名 //将文件移动到目录下
mv * ../ //将当前文件夹下所有文件移到上级目录
---------------------------------------------------------------------------------------------------------------------------------------
6:复制文件或文件夹:cp -参数 源文件名 目标文件名
如果目标文件未创建,则会自动创建目标文件,再执行复制命令,两个文件具有不同的索引号;
若是目标文件已创建,则会覆盖目标文件原来的内容;
参数:
-a 或 --archive 此参数的效果和同时指定"-dpR"参数相同
-b 或 --backup 删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-l 或 --link 对源文件建立硬链接,而非复制文件
-p 或 --preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间
-P 或 --parents 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
-s 或 --symbolic-link 对源文件建立符号链接,而非复制文件
-S <备份字尾字符串> 或 --suffix=<备份字尾字符串> 用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"
-u 或 --update 使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件
-v 或 --verbose 显示执行过程
-V <备份方式> 或 --version-control=<备份方式> 指定当备份文件时,备份文件名的命名方式,有以下3种:
1.numbered或t, 将使用备份编号,会在字尾加上~1~字符串,其数字编号依次递增
2.simple或never 将使用简单备份,默认的备份字尾字符串是~, 也可通过-S来指定
3.existing或nil将使用当前方式,程序会先检查是否存在着备份编号,若有则采用备份编号,若无则采用简单备份
-x 或 --one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件
--help 显示在线帮助
--sparse=<使用时机> 设置保存希疏文件的时机
--version 显示版本
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
7:建立链接
硬链接:cp -l 源文件 目标文件 或者 ln 源文件 目标文件
软链接即符号链接:cp -s 源文件 目标文件 或者 ln -s 源文件 目标文件
ln命令的参数列表:
-b: 将在链接时会被覆写或删除的档案进行备份;
-d: 允许系统管理者硬链接自己的目录;
-f: 强行建立文件或目录的链接,不论文件或目录是否存在;
-n: 把符号链接的目的目录视为一般文件;
-i: 在删除与dist同档名的档案时先进行询问;
-s: 进行软链接(符号链接);
-v: 在链接之前显示其文件名;
关于链接的详细解说:
https://zhidao.baidu.com/question/527753457.html
http://blog.csdn.net/zhy_yz/article/details/5601210
http://www.cnblogs.com/kex1n/p/5193826.html
http://blog.csdn.net/gsl68/article/details/6956842
--------------------------------------------------------------------------------------------------------------------------------------------------
8:显示当前目录下的文件和目录 ls -参数(常用参数有-sail)
参数列表:
-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合 -l:显示 ctime 但根据名称排序否则:根据 ctime 排序
-C 每栏由上至下列出项目
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是’never’、’always’或’auto’其中之一
-d, –directory 将目录象文件一样显示,而不是显示其下的文件。
-D, –dired 产生适合 Emacs 的 dired 模式使用的结果
-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
-g 类似 -l,但不列出所有者
-G, –no-group 不列出任何有关组的信息
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
–si 类似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地
–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>:none (默认),classify (-F),file-type (-p)
-i, –inode 印出每个文件的 inode 号
-I, –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目
-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-o 类似 -l,显示文件的除组信息外的详细信息。
-r, –reverse 依相反次序排列
-R, –recursive 同时列出所有子目录层
-s, –size 以块大小为单位列出所有文件的大小
-S 根据文件大小排序
–sort=WORD 以下是可选用的 WORD 和它们代表的相应选项:
extension -X status -c
none -U time -t
size -S atime -u
time -t access -u
version -v use -u
-t 以文件修改时间排序
-u 配合 -lt:显示访问时间而且依访问时间排序
配合 -l:显示访问时间但根据名称排序
否则:根据访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
-v 根据版本进行排序
-w, –width=COLS 自行指定屏幕宽度而不使用目前的数值
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-1 每行只列出一个文件
–help 显示此帮助信息并离开
–version 显示版本信息并离开
--------------------------------------------------------------------------------------------------------------------
9:查看文件统计信息:stat 文件名
-------------------------------------------------------------
10:查看文件类型:file 文件名
------------------------------------------
查看文件内容
11:cat 文件名
参数:
-n 给所有行加上行号
-b 只给文本加上行号
-s 将多个空白行压缩到单个空白行
-T 去掉制表符
cat命令一但运行后就无法控制后面的操作
---------------------------------------------------------------
12:more -参数 文件名
参数:
+num 从第num行开始显示;
-num 定义屏幕大小,为num行;
+/pattern 从pattern 前两行开始显示;
-c 从顶部清屏然后显示;
-d 提示Press space to continue, ‘q‘ to quit.(按空 键继续,按q键退出),禁用响铃功能;
-l 忽略Ctrl+l (换页)字符;
-p 通过清除窗口而不是滚屏来对文件进行换页。和-c参数有点相似;
-s 把连续的多个空行显示为一行;
-u 把文件内容中的下划线去掉
退出more的动作指令是q
这里有的童鞋不怎么理解这这些命令选项什么意思,这边我稍微举几个例子,并加些注释。
[email protected]:~$more -dc /etc/profile 注:-d和-c选项故显示提示,并从终端或控制台顶部显示;
[email protected]:~$ more +4 /etc/profile 注:+num选项,从profile的第4行开始显示;
[email protected]:~$ more -4 /etc/profile 注:-num选项,每屏显示4行;
[email protected]:~$ more +/MAIL /etc/profile 注:+/pattern选项,从profile中的第一个MAIL单词的前两行开始显示;
一些快捷键
在使用more的时候,可能你启用的是default方式查看,也就是说你并没有加上+/pattern选项,故全中断显示的时候,你有点无从下手了,不要怕,请看下面,呵呵。
ctrl+f(或空格键)是向下显示一屏,ctrl+b是返回上一屏; Enter键可以向下滚动显示n行,要通过自己设定,默认为1行; = 输出当前行的行号; :f 输出文件名和当前行的行号; v 调用vi编辑器; ! 命令 调用Shell,并执行命令; q 退出more,还有一个当我们查看某一文件时,想调用vi来编辑它,不要忘记了v动作指令,这是比较方便的。
----补充
在[文件管理利器cat命令使用]讲解的时候,我们也提到了与管道、重定向配合使用的一些例子,今天我这边再结合管道(|)举一个例子:
比如当你通过其他文件查看命令的时候,(ls,cat)等,ls的内容太多,你需要分页显示,这时候你可以:
[email protected]:~$ ls -l /etc |more
---------------------------------------------------------------------------------------------------
13:less -参数 文件名
参数列表:
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
-------------------------------------------------
查看部分文件
14:tail -参数 文件名
默认情况下显示末尾10行
参数列表:
-c bytes 显示文件最后的bytes个字节
-n lines 显示文件最后的lines行
-f 让tail程序一直保持活动状态,如果有新的内容加到文件的末尾就显示出来
--pid=PID 和-f参数一起,跟踪一个文件直到进程ID为PID的进程结束
-s sec 和-f参数一起,在每次循环输出之间休眠sec秒、
-v 总是显示带文件名的头
-q 从不显示带文件名的头
tail命令允许在其他进程使用该文件时查看文件的内容。tail命令会保持活动状态并不断显示添加到文件的内容。这是实时检测系统日志的绝妙方式
-------------------------------------------------------------------------------------------------------------------------
15:head -参数 文件名
默认情况下显示文件前十行的内容
它和tail命令类似,同样支持-c, -n参数,但不支持-f参数;
head命令是不知道文件内容而想知道大致内容时的利器,而无需加载全部文件
-------------------------------------------------------------------
16:将当前时间转化为时间戳
date +%s
17:将时间戳转化为时间
mac上 : date -r<时间戳>
centos上 : date [email protected]<时间戳>
-----------------------------------------
18:查看进程:ps -参数
详解:http://www.cnblogs.com/wangkangluo1/archive/2011/09/23/2185938.html
19:实时监测进程:top (可以下载一下htop,更好用一点)
---------------------------------------------------------------------
20:杀死进程
(1)kill PID
它的强制性最强。当进程接收到这个信号时会立即停止运行,可能会导致文件损坏;
可以用-s参数指定其它信号;
Linux进程信号列表
信号 名称 描述
1 HUP 挂断
2 INT 中断
3 QUIT 结束运行
9 KILL 无条件终止
11 SEGV 段错误
15 TERM 尽可能终止
17 STOP 无条件停止运行,但不终止
18 TSTP 停止或暂停,但后台在继续运行
19 CONT 在STOP或TSTP之后恢复执行
通常可以接受的处理方式是先试试TERM信号。如果进程忽略它,再用INT或HUP信号。其它信号都不起作用时再用KILL信号;
(2)killall 进程名
列如:killall http*
该命令结束了所有以http开头的进程,比如Apache Web服务器的http服务
---------------------------------------------------------------------------
21:挂载储存媒体
默认情况下mount命令会输出当前系统上挂载的设备列表
格式:mount [-参数] [设备名称] [挂载点]
mount命令详解:
http://www.cnblogs.com/xd502djj/p/3809375.html
http://tutu.spaces.eepw.com.cn/articles/article/item/70737
------------------------------------------------------------------------------
22:fuser
可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息.
fuser只把PID输出到标准输出,其他的都输出到标准错误输出;
格式:fuser -参数
如:fuser -mvu 文件名/目录名
参数列表:
-a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。
-c 和-m一样,用于POSIX兼容。
-k 杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。结合 –signal
-signal 使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。
-l 列出所有已知的信号名称。
-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。
-m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。
-n
space
指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口,可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space
(即形如:80/tcp之类的表示)。
-s 静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。
-u 在每个PID后面添加进程拥有者的用户名称。
-v 详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel.
详解参见:
http://czmmiao.iteye.com/blog/1733722
http://www.cnblogs.com/lizhilin/p/5111004.html
-----------------------------------------------------------------------------------
23:查看已挂载设备的磁盘使用情况:
df [选项] [文件]
参数列表:
必要参数:
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
--no-sync 忽略 sync 命令
-P 输出格式为POSIX
--sync 在取得磁盘信息前,先执行sync命令
-T 文件系统类型
选择参数:
--block-size=<区块大小> 指定区块大小
-t<文件系统类型> 只显示选定文件系统的磁盘信息
-x<文件系统类型> 不显示选定文件系统的磁盘信息
--help 显示帮助信息
--version 显示版本信息
详解参见:http://www.cnblogs.com/peida/archive/2012/12/07/2806483.html
---------------------------------------------------------------------------------------------------
24:显示目录和文件磁盘使用空间
du [选项] [文件]
参数列表:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。
------------------------------------------------------------------------------
以上是关于Linux基本命令的主要内容,如果未能解决你的问题,请参考以下文章
markdown [Docker] Docker片段列表和命令#linux #docker #snippets
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段