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 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段——cli的终端命令大全

VSCode自定义代码片段4——cli的终端命令大全

VSCode自定义代码片段15——git命令操作一个完整流程