Linux中常用的指令

ls

ls [选项] [目录或文件]

功能:对于目录,列出该目录下所有的子目录和文件;对于文件,列出该文件的文件名和其他属性

常用选项:

-a:列出目录下的所有文件,包括以.开头的隐藏文件

-l:列出文件的详细信息。

注:ls -l 可以写成 ll

选项可以同时包含多个


不常用的选项:

-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls --d 指定目录

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

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

-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)

-F 在每个文件名后附上一个字符以说明该文件的类型,"*"表示可执行的普通文件;"/"表示目录;"@"表

示符号链接;"|"表示FIFOs;"="表示套接字(sockets)。(目录类型识别)

-r 对目录反向排序。

-t 以时间排序。

-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)

-R 列出所有子目录下的文件。(递归)

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


pwd

pwd

功能:显示用户当前所在的目录


cd

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

例如:/home/bit/test.c

/是路径分隔符,特殊的是根目录/,本身是一个路径分隔符

cd 目录名

目录名可以是相对路径也可以是绝对路径

功能:改变工作路径,将当前路径变为指定的路径

每个文件夹都有两个隐藏文件.和.. ,.表示当前文件夹的路径,..表示当前文件夹的上级目录的路径

例子:

cd .. : 返回上级目录

cd /root/Documents : 绝对路径

cd ../day02/ : 相对路径,表示上级目录下的day02目录

cd ~:进入用户家目

cd -:返回最近访问(上一次访问)目录


touch

touch [选项] 文件名

功能:主要是用来新建一个不存在的文件,touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间

选项:

-a 或--time=atime或--time=access或--time=use只更改存取时间。

-c 或--no-create 不建立任何文档。

-d 使用指定的日期时间,而非现在的时间。

-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m 或--time=mtime或--time=modify 只更改变动时间。

-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t 使用指定的日期时间,而非现在的时间。


mkdir

mkdir [选项] 目录名

功能:在当前目录下创建一个目录

常用选项:

-p:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立

好那些尚不存在的目录,即一次可以建立多个目录;

注:tree是一个将目录文件用树状图打印的工具,输入下面指令即可安装

centos 中用 yum -y install tree
ubuntu 中用 apt-get install tree


rmdir

rmdir [选项] 目录名

功能:rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除目录。但是只能删除空目录

适用对象:具有当前目录操作权限的所有使用者

常用选项:

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。


rm

rm [选项] 文件名

功能:删除文件

常用选项:

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认(不会询问是否删除)。
  • -r 将目录及以下之档案亦逐一删除。(这个功能选项使rm有了删除目录的功能)

询问是否删除

不询问是否删除

多层目录递归删除,不询问


man

功能:是一个Linux相关工具指令的使用手册,遇到不会的指令可以查找

man [选项] 命令

常用选项

  1. -k 根据关键字搜索联机帮助
  2. num 只在第num章节找
  3. -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

使用手册分为8章

1 是普通的命令

2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

3 针对c语言库函数,如printf,fread

4是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

6 是给游戏留的,由各个游戏自己定义

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

例子:

Linux的printf vs C语言的printf

因为Linux的printf命令在手册的第一章,man printf会优先找到它,如果要查询C语言的printf在第三章,就要用 man 3 printf,大家感兴趣可以自己查看两者的差异,内容过多就不展示了

man printf

man 3 printf


cp

cp [选项] 源文件或目录 目标文件或目录

功能: 复制文件或目录

常用选项:

-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在

-i 或 --interactive 覆盖文件之前先询问用户

-r -R 或 --recursive递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理

普通文件复制;

bash 复制代码
touch test.txt
echo 'hello world' > test.txt  //向文件输入0
cat test.txt //显示文件内容
cp test.txt ../test_backup.txt //将文件复制到上级目录
cat ../test_backup.txt //查看上级目录的复制文件内容

echo会将输入的字符串送往标准输出

>表示输出重定向,将字符串输出到文件中

cat可以查看文件内容

目录的复制:(必须使用-r)

bash 复制代码
//单级目录
mkdir dir
cp -r dir d
//多级目录
mkdir -p d1/d2/d3/d4
cp -r d1 ../

mv

mv [选项] 源文件或目录 目标文件或目录

常用选项:

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

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

功能:

1.移动文件(剪切+复制)。如果源文件(目录)和路径下的目标文件(目录)名字相同,将源文件移动到目标文件所在路径

  1. 文件重命名,如果源文件(目录)的目标文件(目录)的路径都相同,但是名字不同,就会有重命名的效果。

3.移动文件,并将文件重命名。 如果源文件(目录)的目标文件(目录)所在路径不同,源文件(目录)和路径下的目标文件(目录)名字也不同,就会移动文件,并将文件重命名。


查看文档的命令

cat

cat [选项][文件]

功能: 查看目标文件的内容

常用选项:

-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行

这个文件的代码有很多行,使用cat查看会比较麻烦,所以cat比较适读小文件


more

more -n [文件]

功能:more命令,功能类似 cat,会显示n行附近的内容。如果未指定n,就会从第一行开始显示,按Enter即可向下翻看,。最后按q即可退出


less

less -n [文件]

功能:显示n行附近的内容。如果未指定n,就会从第一行开始显示,与more不同的是,less可以用上下方向键来回翻看文档。最后按q即可退出


head和tail

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 就是看档案的结尾。

head -n 文件

功能:

显示档案开头的前n行至标准输出中,如果没有指定n的大小默认head命令打印其相应文件的开头10行。

tail -n 文件

功能:

显示档案末尾的倒数n行至标准输出中,如果没有指定n的大小默认tail命令打印其相应文件的末尾10行。


实操:如何查看一个文件的部分行内容?

方法一:使用cat查看,但是不推荐,如果要查找10000-10020行,要活活累死

cat -n filename

方法二:使用more或less,

more -10000 filename

less -10000 filename

方法三:先使用head将内容保存到临时文件,再使用tail处理临时文件

head -10020 filename > tmpfile

tail -20 tmpfile

方法四:head和tail配合管道使用

head -10020 filename | tail -20


date

功能:显示当前时间和时间戳,也可以完成二者的转换

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

%s:时间戳(Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒)

date 指定格式显示时间: date +%Y:%m:%d

当前时间->时间戳:date +%s

时间戳->时间:date -d@1689152845


cal

功能:查看公里日历

查看year年份的日历 cal -y [year]

查看系统所在时间的前一个月,当前月和后一个月 cal -3


find -name

功能:按照文件名查找文件

find [路径] -name [文件名]

为指明路径默认从当前路径查找


grep

功能:在文件中逐行搜索字符串,将包含字符串的行打印出来

grep [选项] [字符串] [文件名]

选项:

-i 查找时忽略字符串的大小写的不同,大小写不同的字母都会被视为相同处理

-n 显示查找到的行在文件中所处的行数

-v 反向选择,即没有包含字符串的行会被打印出来


zip/unzip

功能:将目录或文件压缩/解压缩

zip [选项] [压缩文件名] [被压缩的文件/目录(可以是多个)]

unzip [解压的文件名] -d [解压后文件所在路径] (可以不用-d,默认解压到当前目录)


tar

功能:打包,解包,预览打包文件

tar [选项] [文件或目录]

常用三种命令:

打包压缩:tar czf [打包压缩后的文件名] [要打包压缩的文件或目录]

预览打包文件:tar tzf [打包压缩文件名]

解包解压缩:tar xzf [打包压缩文件名]

选项:

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

特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ,如果加 j 参数,则以 .tar.bz2 来作为附档名。


uname

uname [选项]

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

补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

常用选项:

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


重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

Tab\]按键:具有命令补全和档案补齐的功能 \[Ctrl\]-c按键:让当前的程序停掉 \[Ctrl\]-d按键:通常代表着:键盘输入结束(End Of File, EOF或End Of Input)的意思;另外,他也可 以用来取代exit *** ** * ** ***

相关推荐
Ribou4 分钟前
Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
linux·ubuntu·kubernetes
tan180°1 小时前
Boost搜索引擎 网络库与前端(4)
linux·网络·c++·搜索引擎
小小菜鸡ing1 小时前
pymysql
java·服务器·数据库
Mr. Cao code2 小时前
Docker:颠覆传统虚拟化的轻量级革命
linux·运维·ubuntu·docker·容器
抓饼先生2 小时前
Linux control group笔记
linux·笔记·bash
挺6的还2 小时前
25.线程概念和控制(二)
linux
您的通讯录好友3 小时前
conda环境导出
linux·windows·conda
代码AC不AC3 小时前
【Linux】vim工具篇
linux·vim·工具详解
当归10244 小时前
SQL Server死锁排查实战指南
java·服务器·网络
码农hbk4 小时前
Linux signal 图文详解(三)信号处理
linux·信号处理