Linux-work-常用命令

ls指令

语法:ls [选项] [目录]
功能:ls有多个选项,对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息
ls不带选项默认显示当前目录下的文件

选项:
-l:以列表的形式列出文件详细信息

d:目录文件,简单来说就是文件夹,我们可以在该目录文件下新建文件
-:普通文件,分为文本文件、动静态库、可执行程序等
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)-
s:套接口文件

标识文件类型  文件拥有者  文件大小(单位字节)  文件最近一次修改时间  文件名


-a:显示目录下的所有文件包括隐藏文件,以点开头的表示隐藏文件,其中一个点表示当前路径,两个点表示上一级路径

-d:将目录像文件一样显示,而不显示目录下的文件,这里的点,就表示当前路径

-R:列出所有子目录下的文件(以递归的方式) ,目录下的所有文件都会列出来

-n:用数字的 UID,GID 代替名称

-1:一行只输出一个文件

-r:对目录反向排序

-k:以 k 字节的形式表示文件的大小。ls –alk 指定文件

-i:输出文件的 i 节点的索引信息。如 ls –ai 指定文件

-t:以时间排序

file指令

功能:查看文件类型
语法:file [文件]

$ file cat.txt
cat.txt: UTF-8 Unicode text #类型是文本文件
$ file ret #类型是目录文件
ret: directory

pwd命令

语法:pwd
功能:显示当前路径

whoami指令

功能:显示当前用户
两种写法
whoami who am i

cd指令

功能:切换路径
用法:cd [想要切换的路径]
Linux是以多叉树的结构管理文件的,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。根目录:/

#cd ~进入工作目录,就是用户的路径下

#cd -返回最近一次访问的路径

which指令

语法:which [指令]
功能:查看指令的系统路径和相关信息

$ which ls
alias ls='ls --color=auto'  #alias:给指令取别名
 /usr/bin/ls  #指令都是系统简化过的
$ which ll        
alias ll='ls -l --color=auto' #ll可以代替ls -l
 /usr/bin/ls                                     
$ which cd  #同时我们发现指令都是在bin目录下的
/usr/bin/cd

touch指令

用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
ls -l 可以显示档案的时间记录。

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。

需要注意的是touch创建的是普通文件,不是目录文件,所以不能cd进入

$ touch file1 file2 file3   #touch可以连续创建多个文件
$ touch file4               #创建单个文件
$ ls
file1  file2  file3  file4

mkdir指令

功能:新建目录文件
mkdir也可以同时创建多个目录文件,cd可以进入,但是不能在一个目录文件下再创建多个子目录,这里就显示无法创建
选项-p:递归建立多个子目录

rmdir指令

功能:删除空目录 ,也就是不存放其他文件的目录
这里p1不为空,所以无法删除,如要借助rm指令

rm指令

功能:删除目录或文件

选项:
-f:强制删除

-r:删除目录及目录下的所有文件,以递归的方式

删除目录要带r选项,此时我们的p1/p2/p3就删除了

删除目录中的所以文件而不想删除目录,直接加通配符*

rm -rf /  #切记不要使用,递归强制删除根目录,可能会把系统干崩

man指令

linux中有很多的指令,如果我们不记得某个指令的使用,可以man一下,问问那个男人

选项:
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文 件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
9 内核例程
我们目前先了解 1 和 3

man需要我们下载 ,普通用户加sudo

yum install -y man-pages

man不加选项,默认解释指令

$ man ls  

q退出当前界面

cp指令

语法:cp [选项] [源文件] [目标文件] [指定目录]
功能:复制文件或目录

常用选项:
-f:强行复制文件或目录, 不论目的文件或目录是否已经存在

-r:递归处理,将指定目录下的文件与子目录一并处理

mv指令

功能:移动文件或重命名文件
用法:mv [选项] [源文件] [目标文件]

选项:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖

cat指令

功能:查看文件内容
语法:cat [选项] [文件]

选项:

-b :对非空输出行编号

-n :对输出的所有行编号

-s :不输出多行空行

echo指令

功能:将字符串显示到标准输出,也就是屏幕上,echo默认换行

字符串后面加 > 符号和文件名,就可以将本该显示到标准输出的字符串,写入文件中,如果文件不存在,就会自动创建文件,这就是输出重定向,输出重定向会清空文件原始内容再重新写入,想要保留之前的内容并写入就需要追加重定向 > 符号变成 >> 符号

more指令

功能:和cat类似,一般用于查看日志,内容比较长的文件

选项:

-n:对行编号

q:退出more

more会先显示一部分内容,按回车就可以继续读取内容,按q退出,但more有一个弊端,只能往下翻,不能往上翻,所以一般不用more指令

less指令

功能:查看文件内容,less用法比more更具有弹性,可以使用 [pageup][pagedown] (前后按键)等按键的功能来往前往后翻看文件,而且less在查看之前不会加载整个文件。

选项:

-i :忽略大小写

-N :显示行号

/字符串:向上搜索字符串的内容

?字符串:向下搜索字符串的内容

n :重复前一个搜索(与/ 或?有关)

N:返向重复前一个搜索(与/ 或?有关)

q:退出less

head 指令

功能:显示文件内容的开头到标准输出,也就是屏幕上,head不加参数默认显示前10行

选项:

-n<行数> <文件> # n可以省略

tail指令

功能:用于显示指定文件末尾内容,我们一般查看日志时肯定是查看最新的内容,也就是从尾部开始查看,tail就能很好的帮助我们查看最近的内容

选项:

-f  循环读取

-n  <行数> <文件> # n可以省略

tail - f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容,非常适合查看日志

现在我们可以显示文件的头和尾,如果要显示文件中间的内容怎么办呢?比如我们要显示第100行到110行,就可以结合商量两者,管道操作$ head -110 cat.txt | tail -10 

date指令

格式
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S
%d : 日 (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d

$ date                 #date默认显示
Fri Jan 28 16:55:54 CST 2022
$ date +%s             #date +%s显示时间戳
1643360162
$ date +%F%X           #按年月日 时分秒的格式显示当前时间
2022-01-2804:56:08 PM
$ date +%F%X@1643360162  # @时间戳,将时间戳转换成标准时间
2022-01-2804:56:27 PM@1643360162

cal指令

功能:查看日历

用法:
 cal [选项] [[[日] 月] 年]

选项:
 -1, --one        只显示当前月份(默认)
 -3, --three      显示上个月、当月和下个月
 -s, --sunday     周日作为一周第一天
 -m, --monday     周一用为一周第一天
 -j, --julian     输出儒略日
 -y, --year       输出整年
 -V, --version    显示版本信息并退出
 -h, --help       显示此帮助并退出

find指令

功能:在文件数中查找文件,并做出相应的处理(可能会访问磁盘),find指令会帮我们在当前目录以及所有该目录的所以子目录下查找相应的文件,当我们遍历一个大的文件系统时,可能会花费一点时间,然后显示相应的文件信息,但当我们下一次再用find查找时,就会快很多

find的选项非常多,这里列举一个,了解更多可以man find

选项:-name  :按照文件名查找

grep指令

功能:文本行过滤,搜索字符串

常用选项:

-i:忽略大小写,大小写视为相同

-n:输出行号

-v:反向选择

zip指令/unzip指令

zip语法:zip [压缩后的文件名.zip] [目标文件]
功能:将文件压缩成.zip格式

常用选项:
-r :将指定目录下的所有文件和子目录一并处理,按递归方式

unzip 语法 :unzip [压缩文件.zip]

-d:压缩到指定路径下

tar指令

和zip/unzip类似,不过解压后的文件后缀为.tgz
功能:完成打包,压缩,解压

选项:
-c :建立一个压缩文件的参数指令(create 的意思)
-x :解开一个压缩文件的参数指令
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C :解压到指定目录

通常将-czf和-xzf配合使用,用来压缩和解压 ,这里我们同样将压缩后的文件cur.tgz移动到test目录下进行解压

bc指令

功能:可以理解为计算器
直接将计算结果显示到屏幕上,Ctrl+c退出

uname 指令

功能:获取电脑和操作系统相关信息

选项:

-a :输出详细信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称

-r :输出内核版本号

shutdown指令

选项:

-t seconds : 设定在几秒钟之后进行关机程序。
-k : 并不会真的关机,只是将警告讯息传送给所有使用者。
-r : 关机后重新开机。
-h : 关机后停机。
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
-c : 取消目前已经进行中的关机动作。
-f : 关机时,不做 fsck 动作(检查 Linux 档系统)。
-F : 关机时,强迫进行 fsck 动作。
time : 设定关机的时间。
message : 传送给所有使用者的警告讯息。

#### stat指令
功能:查看文件详细信息
用法 :stat [文件]

文件的相关信息:
File:显示文件名
Size:显示文件大小
Blocks:文件使用的数据块总数
IO Block:IO块大小
regular file:文件类型(常规文件)
Device:设备编号
Inode:Inode号
Links:链接数
Access:文件的权限
Gid、Uid:文件所有权的Gid和Uid


#### Linux下的三个时间
Access Time:简写为atime,表示文件最近一次被访问时间。
Modify Time:简写为mtime,表示文件内容最近一次被修改时间
Change Time:简写为ctime,表示文件属性最近一次被修改的时间


#### Linux中的热键
[Tab] :命令补全,按一次或两次,会将以wh开头的指令显示到屏幕上
[c]:终止当前程序,比如屏幕上一直输出字符,写了一个死循环代码,就可以Ctrl +c终止
[Ctrl d]:代替exit切换身份,多次Ctrl d直接退出
[Ctrl r] :根据关键字查找历史命令。输入r,自动转换换成历史命令
[page up page down]:上和下,可以翻看历史命令,可以直接翻最近输入过的指令,非常方便
```
posted @ 2022-07-27 17:16  槑孒  阅读(94)  评论(0编辑  收藏  举报