【Linux】基本指令

1、Linux的基本指令

Linux中一切皆为文件,所有文件组成树状结构 ,Linux中有两种文件,目录和普通文件 ,目录相当于文件夹,根目录/ 是最顶层,普通文件有文件内容和文件属性

1.1 mkdir指令

语法:mkdir 选项 dirname...

功能:在当前目录下创建一个名为"dirname"的目录

常用选项:

  • mkdir + 文件名:创建一个目录
  • mkdir -p a/b/c/d :创建多个文件

1.2 rmdir指令

rmdir是一个与mkdir相对应的命令,mkdir是建立目录,而rmdir是删除命令

语法: rmdir -p dirName

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

功能:删除空目录

常用选项:

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

如果要删除的目录不为空则不能删除

此时需要把路径全部写出来

删除前:

删除后:

为了解决非空路径不能删除的问题,我们引入rm指令

1.3 rm指令

rm命令可以同时删除文件或目录

语法:rm -f-i-r-v dirName/dir

适用对象:所有使用者

功能:删除文件或目录

常用选项:

  • rm -r:删除目录及其下所有文件

删除前:

删除后:

  • rm -rf:-f 即使文件属性为只读(即写保护),亦直接删除(强制删除),
  • rm -ri:删除前逐一询问确认

1.4 touch指令

语法: touch 选项... 文件...

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

常用选项:

  • touch + 文件名:创建一个空白的普通文件

注意:空白文件也会占用硬盘空间,因为要保存文件属性

  • -a:只修改访问时间
  • -c:不创建文件

1.5 ls指令

语法:ls 选项 目录或文件

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息

常用选项:

  • 单独的ls:只显示文件名
  • ls -l :列出文件详细的信息,可简写成ll

  • ls -a :显示目录下的所有文件,包括隐藏文件(以.和..开头的文件)

在Linux中,任何一个目录下都有两个隐藏文件,. 表示当前路径,.. 表示当前路径的上一个路径

  • ls -l -a = ls -al =ls -la :这几种写法都可以,显示详细信息+全部文件

补充:文件信息最左边是-代表普通文件,d代表目录(文件夹)

  • ls -d -al:显示目录自身的属性,而不是显示其下的⽂件
  • ls -F:在每个文件名后附上一个字符以说明该文件的类型,"*"表示可执行的普通文件;"/"表示目录;"@"表示符号链接;"|"表示FIFOs;"="表示套接字(sockets)。
  • ls -i:输出文件的i节点的索引信息。 如 ls ‒ai 指定文件
  • ls -k:以 k 字节的形式表示文件的大小。ls ‒alk 指定文件
  • ls -n:用数字的 UID,GID 代替名称
  • ls -t:以时间排序
  • ls -r:对目录反向排序
  • ls -R:列出所有子目录下的文件
  • ls -1: 一行只输出一个文件
  • ls -s:在l文件名后输出该文件的大小

1.6 pwd命令

语法:pwd

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

1.7 cd指令

1.7.1 Linux目录结构

Linux中目录结构是多叉树,每个节点都是目录或文件,其中普通文件一定是目录树的叶子节点,树状的组织方式,是为了快速查找到指定文件,其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,路径具有唯一性

绝对路径:⼀般从根目录/开始,不依赖其他目录的定位文件的方式

相对路径:一自己当前的路径为起点,定位特定的文件

相对路径因为它的便捷性,一般在命令行中使用较多,但是一旦自己所处的目录发生变化,那么相对路径可能会失效

1.7.2 cd指令

语法:cd目录名

功能:改变工作目录。将当前工作目录改变到指定的目录下

举例:

  • cd + 目录名:进入目录
  • cd ...:返回上级目录
  • cd /root/text:绝对路径:
  • cd .../a/b/c/d:相对路径
  • cd ~:返回当前的家目录
  • cd -:返回最近访问目录

1.8 man指令

Linux的命令有很多参数,我们不可能全记住,可以通过查看联机手册获取帮助

语法:man 选项 命令

常用选项:

  • man + 命令:查看命令作用

例如man pwd

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

1.9 重定向

重定向本质:改变数据默认的来源 / 去向,本来数据该去屏幕,我让它去文件;本来程序该从键盘读,让它从文件读

  • >:覆盖重定向,以覆盖的方式将数据输到指定文件

语法:命令 > 文件名

如果文件不存在 → 创建文件,文件已存在 → 先清空整个文件,再写入新内容,如果单独执行> test.txt:直接清空文件

  • >>:追加重定向

语法:命令 >> 文件名

追加重定向不会清空文件,会新内容添加到文件最后一行末尾

  • <:输入重定向,默认程序从键盘读取,< 让程序改为从文件读取数据

语法:命令 < 文件

1.10 echo指令

语法:echo 选项 字符串

功能:在终端输出文本内容

常用选项:

  • echo + 字符串:输出字符串
  • echo 字符串 > 文件:将字符串写入文件中,覆盖原文件
  • echo 字符串 >> 文件:不删除原有内容,把文字追加写在文件末尾

1.11 cat指令

语法:cat 选项 文件(cat进程自己打开文件)

功能:查看目标文件的内容,只适合看小文本

  • cat + 文件:查看文件
  • cat < lesson1:<是输入重定向,从lesson中读取数据(shell打开文件)
  • -b 对非空输出行编号,空行不做编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行

tac指令:倒序打印

1.12 cp指令

语法:cp 选项 源文件或目录目标文件或文录

功能:复制文件或目录,原件保留

说明:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中

常用选项:

  • cp 文件1 文件2:把文件1的内容复制一份到文件2中
  • cp -r:递归复制文件,将指定目录下的文件与子目录一起处理

目标目录已存在:

目标目录不存在:

  • cp -rf:强行复制文件或目录
  • -i 或 --interactive 覆盖文件之前先询问用户
  • cp test.txt .../:将test.txt拷贝到上级目录下

1.13 mv指令

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files,经常用来备份文件或者目录

语法:mv 选项 源文件或目录目标文件或目录

功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中

注意:mv是移动剪切,源文件消失,mv移动文件夹不需要加-r

常用选项:

  • move 文件/目录名1 文件/目录名2:把文件/目录1剪切到文件/目录2中
  • f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖

1.14 more指令

语法:more 选项

功能:more命令,功能类似cat,能查看目标文件的内容,打印满屏后不再打印,按回车继续打印

常用选项:

  • -数字:指定打印多少行停止,按回车继续打印
  • q退出more

1.15 less指令

  • less工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大
  • less 的用法比起more更加的有弹性,在more的时候,我们并没有办法向前面翻, 只能往后面看
  • 但若使用了 less 时,就可以使用pageup pagedown等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容
  • 除此之外,在 less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜

语法:less 参数 文件

功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件

选项:

  • -i 忽略搜索时的大小写
  • -N 显示每行的行号
  • /字符串:向下搜索"字符串"的功能
  • ?字符串:向上搜索"字符串"的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前⼀个搜索(与 / 或 ? 有关)
  • q:退出

1.16 head指令

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

语法:head 参数... 文件...

功能:head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行

  • -n<行数> 显示的行数:将前n行显示出来

1.17 tail指令

语法:tail必要参数文件

功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件

  • -n<行数>显示的行数

上面显示的是test.txt文件中第181~200行的内容

管道|:把左侧的程序的输出交给管道文件,右侧程序再从管道文件中把数据读到自己的程序中,右侧程序执行完后才能显示。管道文件最终不会被写入磁盘中。

1.18 date指令

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

用法:date [OPTION]... [+FORMAT]

  1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
  • %H:小时
  • %M:分钟
  • %S:秒
  • %X : 相当于 %H:%M:%S
  • %d:日
  • %m : 月份
  • %Y:完整年份
  • %F:相当于%Y-%m-%d
  1. 在设定时间方面
  • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
  • date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
  • date -s 01:01:01 //设置具体时间,不会对日期做更改
  • date -s "01:01:01 2008-05-23″ //这样可以设置全部时间
  • date -s "01:01:01 20080523″ //这样可以设置全部时间
  • date -s "2008-05-23 01:01:01″ //这样可以设置全部时间
  • date -s "20080523 01:01:01″ //这样可以设置全部时间
  1. 时间戳
  • 时间->时间戳:date +%s
  • 时间戳->时间:date -d@1508749502

1.19 cal指令

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。

命令格式:cal 参数 年份

功能:用于查看日历等时间信息,如只有一个参数,则表示年份,如有两个参数,则表示月份和年份

常用选项:

  • -3显示系统前一个月,当前月,下⼀个月的月历
  • -j显示在当年中的第几天(⼀年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y显示当前年份的日历

1.20 find指令

  • Linux下find命令在目录结构中搜索文件,并执行指定的操作
  • Linux下find命令提供了相当多的查找条件,功能很强大
  • 即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只你具有相应的权限
  • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)
  • find会在目录树中进行查找

语法:find pathname -options

功能:用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)

常用选项:

  • -name按照文件名查找文件

find ~/ -name 文件名

find / -name 文件名

1.21 which指令

功能:搜索系统指定的命令

1.22 grep指令

语法:grep 选项 搜寻字符串文件

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

常用选项:

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

eg:

grep 'abcd' test.txt :显示test.txt中包含'abcd'的所有行

grep -v 'abcd' test.txt :显示test.txt中不包含'abcd'的所有行

1.23 zip和unzip指令

语法:zip压缩文件.zip目录或文件

功能:将目录或文件压缩成zip格式

常用选项:

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

zip -r src.zip src :将src目录进行压缩

用mv将src.zip移动到dira中

  • -d:unzip -d将压缩包解压到指定目录下

1.24 tar指令

打包/解包,不打开它,直接看内容

语法:tar -cxtzjvf 文件与目录....

参数:

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

示例:

  • tar czf src.tgz src :把src目录压缩得到src.tgz的压缩
  • tar cvzf src.tgz src :把src目录压缩得到src.tgz的压缩,压缩的过程中显示文件
  • tar xzf src.tgz :把src.tgz解压
  • tar xzf src.tgz -C ../ :把src.tgz解压到上级目录

1.25 bc指令

bc命令可以很方便的进行浮点运算

语法格式:echo "表达式" | bc ,配合管道使用

示例:echo "10 / 3" | bc :默认输出3,默认不保留小数

echo "scale=4; 10 / 3" | bc :输出3.3333,开启精度,保留N位小数

1.26 uname-r指令

语法:uname 选项

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

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

常用选项:

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

2、几个重要的热键

  • Tab按键:具有命令补全和档案补齐的功能
  • Ctrl-c按键:让当前的程序停掉
  • Ctrl-d按键:通常代表着:键盘输入结束的意思;另外,它也可以用来取代exit

3、指令及运行原理

bash命令行:

root是用户名,@VM-0-13-ubuntu是主机名,~是当前目录,#是权限标识,这四部分构成了bash命令行,一个bash命令行就对应一个进程

Linux内核(Kernel):内核有一个硬性规则:不能直接和它对话

Shell:定义:命令行解释器 = 用户和 Linux 内核之间的翻译官,将使用者的命令翻译给核心(Kernel)处理,将核心的处理结果翻译给使用者

用户文字命令 → Shell 翻译 → 内核操控硬件执行 → 执行结果 → Shell 翻译成文字 → 用户看见结果。

相关推荐
2035去旅行11 小时前
bootcmd 详细讲解
linux·嵌入式·arm·soc
陈希12312 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡12 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
且从容.16 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道16 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
且从容.19 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落21 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨21 小时前
WSL2的安装与使用
linux·wsl
微小的鱼21 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng21 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器