公众号:CppCoding
文件、目录操作命令
1、cd
格式:cd [ 目录名称 ]
eg:cd ./learn.txt ====> cd home/zy/learn.txt . 是指当前路径
常用选项:
cd .. 返回上一级目录。
cd ../.. 将当前目录向上移动两级
cd - 返回最近访问目录
cd ~ 进入家目录
cd / 进入根目录
2、pwd
格式: pwd
功能:显示出当前工作目录的绝对路径 (print working directory)。
3、ls
格式:ls [ 选项 ] [ 目录或文件 ]
功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息。
常用选项:
-a :列出目录下的所有文件,包括以 . 开头的隐含文件。 每个目录中都有一个 . 和 .. 两个文件
-d :将目录像文件一样显示,而不是显示其他文件。
-i :输出文件的i节点的索引信息。
-k :以k字节的形式表示文件的大小。
-l :列出文件的详细信息。
-n :用数字的UID,GID代替名称。
-F : 在每个文件名后面附上一个字符以说明该文件的类型,“*”表示可执行的普通文 件;“/”表示目录;“@”表示符号链接;“l”表示FIFOS;“=”表示套接字。
4、touch
格式:touch [ 选项 ] 文件名…
功能:touch命令参数可以更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
-a 仅改变指定文件的存取时间。
-c 或–no-creat 不创建任何文件。
-m 仅改变指定文件的修改时间。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
5、mkdir
格式:mkdir [ 选项 ] dirname…
功能:mkdir命令用来创建目录
常用选项:
-m, --mode=模式 设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
-p, --parents 需要时创建上层目录,如目录早已存在则不当作错误
6、rmdir
格式:rmdir [ 选项 ] dirname
功能:删除目录
常用选项:
-p –parents 递归删除目录 dirname,当子目录删除后其父目录为空时,也一同被删除。如果有非空的目录,则该目录保留下来。
7、rm
格式:rm [ 选项 ] 文件列表
功能:rm命令删除文件或目录
常用选项:
-f –force 忽略不存在的文件,并且不给出提示信息。
-r -R,–recursive 递归地删除指定目录及其下属的各级子目录和相应的文件。
-i 交互式删除文件。
说明:rm命令删除指定的文件,默认情况下,它不能删除目录。如果文件不可写,则标准输入是tty(终端设备)。如果没有给出选项-f 或者 –force,rm命令删除之前会提示用户是否删除该文件;如果用户没有回答y或者Y,则不删除该文件。
8、cp
格式:cp [ 选项 ] 源文件或目录 目标文件或目录
功能:复制文件或目录。
常用选项:
-f –force 强行复制文件或目录,不论文件或目录是否已经存在。
-d 复制时保留文件链接。
-i –interactive覆盖文件之前先询问用户。
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。
-R 或–recursive递归处理,将指定目录下的文件及子目录一并处理。
9、mv
格式:mv [ 选项 ] 源文件或目录 目标文件或目录
功能:mv命令对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
常用选项:
-f force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
-i 若目标文件(destination)已经存在时,就会询问是否覆盖。
10、cat
格式:cat [ 选项 ] [ 文件 ]
功能:查看目标文件的内容
常用选项:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
11、more
格式:more [ 选项 ] [ 文件 ]
功能:显示文件内容,每次显示一屏。
常用选项:
-n 对输出的所有行编号
-s 将文件中连续的空白行压缩成一个空白行显示
-num 这个选项制定一个整数,表示一屏显示多少行
q 退出more
12、less
格式:less [ 参数 ] 文件
功能:less命令与more命令类似,但二者存在差别,less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。
常用选项:
-i 忽略搜索时的大小写
-N 显示每行的行号
13、head
格式:head [ 选项 ] [ 文件 ]
功能:在屏幕上显示指定文件的开头若干行(不加参数默认前10行)。
常用选项:
-c –bytes=[-]N 显示每个文件前面N字。
-n –lines=[-]N 显示指定文件的前面N行
14、tail
格式:tail [ 选项 ] [ 文件 ]
功能:用于显示指定文件的末尾,不指定文件时,作为输入信息进行处理。常用查看日志文件。
常用选项:
-f 循环读取。
-n <行数> 显示行数。
说明:tail命令从指定点开始将文件写到标注输出。使用 tail命令 的 -f 选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
补充:
linux目录结构
/ :根目录
/home :
/boot: 系统内核 引导文件
/bin 二进制可执行文件
/dev 设备文件
/etc 系统的配置文件
/lib 库文件
/home 普通用户的家目录
/root 管理员的家目录
/mnt 临时挂载点
/proc 虚拟的目录(虚拟文件系统)将进程的信息映像到该目录下 以PID为文件名存储
/srv
/sys
/tmp 临时文件 所有用户均可访问
/usr 系统运行过程中不常改变的文件
/var 系统运行过程中经常改变的文件
文件类型
普通文件: -
目录文件: d
链接文件 l
设备文件 c,b
管道文件 p
套接字文件 s
修改权限 chmod [文字描述 数字描述]
文字描述 chmod [u g o + r w o]
数字描述 chmod [r 4 w 2 x 1 ] 7 rwx 6 rw- 5 r-x 4 r--
进程管理
进程:一个正在运行的程序 ,是一个动态的概念,是一个程序运行的过程
进程控制块:PCB ---> 状态 : 就绪 运行 阻塞
Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息。
《Linux进程描述符task_struct结构体详解》
1、ps
格式:ps [ option ]
常用选项:
-a 显示所有 ‘终端进程’
u 显示所有 ‘用户进程’
-x 显示所有进程,包括没有明确终端的进程(通常是一些后台服务进程)
-e 显示所有进程。此选项与选项x类似,但使用的格式为BSD系统格式
-f 显示UID,PPID(父进程ID),C(CPU占用率)和STIME(进程启动时间)字段
-l 以长格式显示进程列表
2、&
加在一个命令的最后,可以把这个命令放到后台执行
格式:command &
3、jobs
格式:jobs -l
注意:该命令显示的后台任务是用户手动执行的(本需要占用前台的命令),不包含系统运行的后台进程
4、fg
格式:fg%n
功能:将后台中的命令调至前台继续运行
注意:如果后台中有多个命令,可以用 fg % n 将选中的命令调出,%n 是通过jobs命令查到的后台正在执行的命令的序号
5、bg
格式:bg%n
功能:bg将一个在后台暂停的命令,变成继续执行
注意:如果后台中有多个命令,可以用bg % n将选中的命令调出,%n 是通过jobs命令查到的后台正在执行的命令的序号
ctrl + z :将当前正在运行的程序放到后台运行,并暂停
6、kill
格式:kill [ 参数 ][ 进程号 ]
功能:发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,即 kill -9 PID 将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
常用选项:
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户
7、pstree
格式:pstree [ 参数 ]
功能:显示进程状态树,pstree命令可以列出当前的进程,以及它们的树状结构。
常用选项:
-a 显示执行程序的命令与完整参数。
-c 取消同名程序,合并显示。
-n 以PID大小排序。
-p 显示PID
-u 显示UID信息。
8、top
格式:top [ 参数 ]
功能:可以监视系统中不同的进程所使用的资源。它提供实时的系统状态信息。显示进程的数据包括 PID、进程属主、优先级、%CPU、%memory 等。可以使用这些显示指示出资源使用量
常用选项:
d [time] 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式。
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程。
c 显示整个命令行而不只是显示命令名
系统管理
1、shutdown
格式:shutdown [ 选项 ] [ 时间 ] [ 警告信息 ]
常用选项:
-t 指定在多长时间之后关闭系统
-r 重启系统
-k 并不真正关机,只是给每个登录用户发送警告信号
-h 关闭系统(halt)
halt
halt是最简单的关机命令,其实际上是调用 shutdown -h 命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。
halt命令的部分参数如下:
-f 没有调用shutdown而强制关机或重启
-i 关机或重新启动之前,关掉所有的网络接口
-p 关机时调用poweroff,此选项为缺省选项
2、reboot
格式:reboot [ 参数 ]
常用选项:
reboot的工作过程与 halt 类似,其作用是重新启动,而halt是关机。其参数也与halt类似。
3、init
格式:init 级别选项
级别选项:
0 关机(千万不能把initdefault 设置为0 )
1 单用户
2 多用户(没有NFS,无网络服务)
3 完全多用户(标准的运行级,优先进入字符终端界面)
4 自定义
5 X11 (xwindow) 图形化界面模式
6 重启 (千万不能把 initdefault 设置为6 )
配置文件:/etc/inittab [修改文件中的 initdefault 字段即可修改系统默认运行级别 ]
4、runlevel
格式:runlevel
功能:打印当前Linux系统的运行等级
用户管理
1、su
格式:su [ 选项 ] [ 参数 ]
eg:su + 用户名 ===> su zy(不写用户名默认为root用户 )
常用选项:
参数 注释说明
-,-l,–login #->使一个shell成为登录的shell,如执行su -oldboy时,表示该用户想改变身份为oldboy,并且使用oldboy用户的环境变量,如:/home/oldboy/.bash_profile
-c,–command=COMMAND #->切换到一个shell下,执行一个命令,然后退出所切换的用户环境
-m,–preserve-environment #->切换用户时,不重置用户环境变量,-p的功能同-m,这个参数为su的默认值,一般很少使用
-s,–shell=SHELL #->如果/etc/shells允许,则运行指定的shell
2、exit
格式:exit
功能:
如果是图形界面,退出当前终端。
如果是使用ssh远程登录, 退出登录账户。
如果是切换后的登录账户,退出则返回上一个登录账户。
注意:一定要退回,因为每个su命令都会产生一个新的bash进程
3、useradd
格式:useradd [ 选项 ] username(用户名)
常用选项:
-u:手动指定用户的UID
-d:手动指定用户的HOME目录,默认是/home/username
-c:手动指定用户的说明
-g:手动指定用户的初始组,推荐不要去改动,默认即可。一个用户只能有一个初始组
-G:手动指定用户的附加组,一个用户可以有多个附加组。如果更改的话,前提要指定的附加组必须存在
-s:手动指定用户的登录shell,默认是/bin/bash。如果更改的话,确保shell不要弄错了,否则会登录失败
如果选项不写,Linux会使用默认模版对新增的用户进行相关信息的设置
4、passwd
格式:passwd [ 选项 ] username(用户名)
常用选项:
-S:查询用户密码的状态。
-l:暂时锁定用户。
-u:解锁用户。
--stdin:可以通过管道符输出的数据作为用户的密码。该选项用来批量设置用户的密码,写shell脚本有用。
如果选项不写,就是设置用户的密码。
5、userdel
格式:userdel [ 选项 ] username(用户名)
常用选项:
-r:删除用户的同时会删除用户的HOME目录以及邮件目录。
如果选项不写,该命令只会删除 /etc/passwd 文件中的用户信息,而不会删除系统属于该账号的任何文件
文件查找
1、find
格式:find pathname -options
功能:用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
-name 按照文件名查找文件
补充:find 也可按文件的特征进行查找
find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 group为cat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
find / -mtime -1 # 查找在系统中最后24小时里修改过的文件
find / -user fred # 查找在系统中属于fred这个用户的文件
find / -size +10000c #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
find / -size -1000k #查找出小于1000KB的文件
2、grep
格式:grep [ 选项 ] 搜寻字符串 文件
功能:根据搜寻字符串 串在源文件中筛选出匹配行,并打印
常用选项:
-c:只输出匹配行的计数
-i :不区分大小写
-h:查询多文件时不显示文件名
-l :查询多文件时只输出包含匹配字符的文件名
-n:显示匹配行及行号
-s:不显示不存在或无匹配文本的错误信息
-v:反向选择,显示不包含匹配文本的所有行
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义
^:匹配正则表达式的开始行
$: 匹配正则表达式的结束行
<:从匹配正则表达 式的行开始
\>:到匹配正则表达式的行结束
[ ]:单个字符,如[A]即A符合要求
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求
.:所有的单个字符
* :有字符,长度可以为0
文件打包与压缩
1、tar
Linux中的打包文件一般是以 .tar 结尾的,压缩的命令一般是以 .gz 结尾的,一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般 .tar.gz
格式:tar [ -cxtzjvf ] 文件与目录… 参数
常用选项:
-c 建立一个压缩文件的参数指令(create的意思)。
-x 解开一个压缩文件的参数指令。
-t 查看tarfile里面的文件。
-z 是否同时具有gzip的属性?亦即是否需要用gzip压缩?
-j 是否同时具有bzip的属性?亦即是否需要用bzip压缩?
-v 压缩的过程中显示文件。
-f 使用档名,请留意,在f之后要立即接档名,不要再加参数。
-C 解压到指定目录。
eg:
示例:tar cvf my.tar a.c file.txt passwd
将 a.c file.txt passwd 三个文件做出 tar 包。
示例:tar czf my.tar a.c file.txt passwd
将 a.c file.txt passwd 三个文件做出 tgz 包。
示例:tar cxf mytar.gz a.c file.txt passwd
将 a.c file.txt passwd 三个文件做出 mytar.gz 包。
2、gzip
格式:gzip [ 选项 ] filename
常用选项:
-d:该参数在解压缩时使用 ,eg:gzip [-d#] filename,其中#是1-9的数字
-#:表示压缩等级,1是最差的,9是最好的,默认是6.
-c:压缩时保留源文件
注意:gzip不支持压缩目录
eg:
压缩:gzip 1.txt ; 压缩1.txt后,文件1.txt消失,生成 1.txt.gz
解压:gzip -d 1.txt.gz ; gzip -d == gunzip
查看.gz压缩文件: zcat 1.txt.gz
压缩 gzip my.tar
压缩 my.tar 文件得到 my.tar.gz 压缩包
示例:gzip -d my.tar.gz
对 my.tar.gz 解压缩
示例:tar xvf my.tar
对 my.tar 解包
VI编辑器的使用
1、命令模式
2、插入模式/编辑模式
3、末行模式
命令-->编辑:
i:光标之前插入
a:当前光标之后插入(附加)
o:下一行行首(新建行)
I:行首
A:行末
O:上行行首(新建行)
命令-->末行:
:
/
?
wq 保存并退出
q 退出(未修改文件内容)
w 只保存
q!强制退出(不保存退出)
复制 n+yy p粘贴
删除/剪切 n+dd 删除一个字符 x 替换一个字符 r 持续替换 R
撤销一个操作 u (慎用)
复制 n+yy p粘贴
删除/剪切 n+dd 删除一个字符 x 替换一个字符 r 持续替换 R
撤销一个操作 u (慎用)
取消行号 set nonu
移动光标到文件末尾 G
移动光标到文件第一行 gg
移动光标到文件第n行 nG
跳转到第n行 n
[注意:不能多个终端打开同一文件,关闭文件时要正常退出,若没有,ls -a,并删除临时文件即可]
bzip2 包 ->包.bz2
bunzip 包.bz2