目录

该如何看待Linux下的各种命令呢??

外壳程序shell(命令行解释器)有什么意义?

ls

pwd

. 和 ..

路径分隔符 /

cd

mkdir(make directory)

mkdir -p d1/d2/d3/.../dn

tree

touch

rmdir

rm

rm -i

rm -r(-r表示递归)

rm -rf (-r表示递归,-f表示强制)

clear

*

man(manual)

nano

cp

cp -r

mv

cat

tac

echo

more(出场率不高,了解即可)

less (出场率不高,了解即可)

head

tail

常用热键

jobs

fg N

date

find

which

alias

whereis(不常用)

grep

xargs

zip(下载指令:yum install zip)

unzip(下载指令:yum install unzip)

tar

bc(不常用)

uname

修改用户密码


该如何看待Linux下的各种命令呢??

其实这些命令本质上就是可执行程序。比如说我们自己在Linux系统机器下写的文件是文本文件,计算机只认识二进制,我们编译链接生成了可执行的二进制文件后,然后调用这个文件的方式就是    ./文件名( . 代表当前路径,/ 是路径分隔符,通过这样找到可执行文件),完成对应的功能。你看是不是和我们输入命令的其中一种方式一样,如/usr/bin/ls。所以说,命令本质上就是一些可执行文件。甚至如果你把自己写好的程序放到系统中,那么你自己写的程序也就变成了一条命令。

外壳程序shell(命令行解释器)有什么意义?

1.将使用者的命令翻译给核心(kernel)即操作系统处理。
2.同时,将核心的处理结果翻译给使用者。

使用Linux机器时,我们会产生一个疑惑,为什么要用xshell这种软件去使用Linux机器?其实shell外壳程序本质是作为用户和操作系统交互的中间软件层。为什么要这么做呢?为了保护操作系统,因为是人就会犯错,会带来不安全因素,所以操作系统设计者不会让人直接访问操作系统。外壳程序会判断你的操作是否合法,如果合法,就向操作系统请求执行,如果不合法,直接驳回请求,比如xshell下输入指令,如果指令合法,才会被执行。

简单来说,外壳程序就是用户和操作系统交互的界面,如Windows机器下的图形化界面(GUI)也是外壳程序,图形化界面的鼠标点击就相当于xshell界面输入指令。xshell对于Linux机器的意义就相当于图形化界面对于Windows机器的意义。

注意这里的shell是一个泛型的概念,而不是一个具体的程序,而xshell是一个具体的软件。

ls

1,ls-l,或者ll。

空文件也要占用磁盘空间,因为虽然文件内容什么也没有,但文件的属性,如文件名称,创建时间,大小都是需要记录的数据, 需要空间存储。

所以第一个指令ls-l或者说ll就是用来显示文件的具体信息。

2,ls-l-a

在windows下有些文件是隐藏的,linux下也有,创建文件或目录的时候在文件名前加一个点就是创建隐藏文件。如:mkdir .catalogue。这个文件普通的ls或者ls-l是观察不到的,所以

ls-l-a就是用来查看隐藏文件的指令。隐藏文件的常见用途:隐藏配置文件。

3,ls-l-a-i或者ls-ali

用于查看文件的inode编号,就像我们有自己的名字,同时也有身份证号,inode编号就对应身份证号。

4,ls -i

显示文件文件的inode编号,就像我们有自己的名字,同时也有身份证号,inode编号就对应身份证号。

5,ls -d,显示当前所在的目录(路径),会显示一个蓝色的点 . ,一般和 -l 一起使用,如ls -ld。

pwd

用于显示当前路径(password)。

. 和 ..

每个目录下都有隐藏的 .  和  .. ,由于文件由点 开头,所以一定是隐藏文件,又因为点 . 是蓝色,所以这两个文件都是隐藏的目录文件。一个点 . 用来表示当前路径,两个点 .. 用来表示直接上级路径。 ./ 也可以表示当前路径,对应的 ../ 也可以表示上级路径。

两个点 .. 被用来切换路径,作用很明显。那一个点 . 有什么用呢?

可以限定我们要执行的程序在什么位置,假如当前路径有一个绿色的可执行文件code,我们运行程序的指令应为 ./code  。注意code.c是源文件不是可执行文件。

路径分隔符 /

几乎所有系统的目录结构本质上都是一颗多叉树,Linux也不例外。

Linux用 / 表示路径分隔符,如/name/,中间的name一定是个普通文件或者目录文件。

在Linux下,路径退到不能再退最开始 / 也是路径分隔符的一种,但我们更喜欢叫它根目录,而不是路径分隔符。注意根目录 / 也是一个目录。这块有点特殊,一般目录都是用一个名称表示,而根目录却用一个路径分隔符表示。不是根目录的文件不可以用路径分隔符/表示。

注意Linux和Windows的路径分隔符不一样,Windows是用 \ 表示,而Linux是反斜杠 / 。

我们常说Linux机器是作为服务器后端的,能体现在哪里呢?举个简单的例子:

URL即网址后面是一个 / ,而 / 是Linux下的目录分隔符,所以最开始的 /mp_blog 就是Linux机器的某一个目录,而128340570就是目录下的资源。也就是说,我们一般是windows机器,而浏览这个网址的时候就是在网络请求访问一个Linux机器。

cd

1.cd用于切换路径,格式为:cd+绝对路径/相对路径。

2.cd ~,作用是返回到当前用户的家目录。如果是root用户,cd~后,家目录就是/root。pwd观察当前所在路径也是/root。Linux的家目录可以理解为Windows下C盘的用户目录。

3.cd -,作用是跳转到上一次我所在的路径中。

mkdir(make directory)

创建一个目录文件,目录文件用蓝色标明。

mkdir -p d1/d2/d3/.../dn

创建一串的目录文件,或者说创建一串路径,如创建d1目录文件,d1里又有d2目录文件......

dn-1目录文件下又有dn目录文件。

tree 

打印指定目录下的所有路径。

touch

创建普通(非目录)文件,用白色标明。

如果touch一个已经存在的文件,可以修改文件属性里的时间属性,表示文件最近的一次修改时间。

可以同时创建多个普通文件,如touch file1 file2 file3 file4.

rmdir

只能删除一个空目录。

rm

只能删除(非目录)普通文件。

rm -i

只能删除一个(非目录)普通文件。和rm的区别是rm -i会提示你是否真的要删除,相当于一个保险,有人可能会问:这不是自问自答吗?其实不是,因为是人就会有失误,直接rm可能会有误删的情况,用rm-i删除文件就是为了减少误删的情况。

rm -r(-r表示递归)

删除目录文件,但shell为了安全,shell界面会不断提示你要不要删除目录中的子文件。也可以用于删除(非目录)普通文件。

rm -rf (-r表示递归,-f表示强制)

强制删除目录文件,不会额外提示。也可以用于删除(非目录)普通文件。通常我们说的删库跑路就是rm -rf \    。由于Linux中没有回收站,不像Windows删除了可以从回收站恢复,所以Linux删除就是删除了,虽然Linux也可以恢复,但操作复杂。

clear

清除shell界面上的草稿。

  *

* 是一种通配符,也就是说 * 可以表示任意文本。常用于这些场景,比如:rm -rf file.*,表示file.c,或者file.txt这些所有file.xx文件都会被删除。如果直接rm -rf *,当前目录的所有文件将直接被删除。

man(manual)

字面意思:说明书,用于查找不明白的指令的功能。如 man pwd就可以查看pwd的功能,甚至可以man man,看man有什么用。

man手册打开后按上下键就可以翻阅,退出按q。

云服务器上的man手册是精简版,需要手动下载完整版,指令为:yum install -y man-pages

nano

是Linux下的记事本。可以写一些代码,但没有语法提示。

nano只可以操作普通(非目录)文件,格式为:nano 文件名。

下载指令:yum install -y nano

cp

作用为拷贝,但只能拷贝(非目录)普通文件。用法:cp 文件  路径 。

cp -r

作用为拷贝目录文件,但也可以拷贝普通文件,用法:cp 文件  路径。

mv

1.可以用于移动一个文件到一个路径下。这个文件可以是目录文件也可以是普通文件。

格式为:mv file1 加路径。

2.可以将一个目录文件或者普通文件重命名。注意只能操作当前目录下的文件。

如mv a.txt b.txt ,表示将a.txt重命名。

cat

1.cat File,只可以操作(非目录)普通文件。作用是打印文件内容。(不包括文件属性)

2.cat<File,被称作输入重定向,功能也是打印文件内容。默认向显示器打印。

3.cat File1>File2,作用是将文件1的内容写入到文件2,做一个备份。文件2不存在自动创建并写入。

4.cat<File1>File2,作用和第三条一样。
5.cat -n,和cat功能一样,只是打印的内容多了行号。

6.cat,本来是从普通文件里读取数据,然后向显示器文件写入,打印在显示器文件上,而这边cat后面没有文件,则默认向键盘文件里读取数据,然后

tac

和cat唯一不同的点就是倒着打印。

echo

1.echo “balabala”,直接在shell界面上打印balabala。

2.echo “balabala”>filename,可以直接将balabala打印到文件里,再次执行会覆盖掉文件的内容(直接删除旧内容,然后写入新内容),被称作输出重定向。如果文件不存在echo会创建一个。

3.echo “balabala”>>filename,也可以直接将balabala打印到文件里,不过不会覆盖掉文件的内容,而是在之前的基础上追加,被称作追加重定向

对与重定向的理解,首先要记住:Linux下一切皆文件。也就是说,我们的键盘,显示器等硬件在Linux机器下看来也是一个文件。显示器文件和键盘文件是两个独立的文件,他们不在磁盘上。

那么本来echo “hello”是向显示器文件写入,打印在显示器文件上,而加入>后echo “hello”>file是向file文件写入,打印在file文件上。既然显示器文件和普通文件都是文件,那么重定向的含义也就不难理解了。

more(出场率不高,了解即可)

用于查看文本,会展示一整个shell界面的文本内容,如果文本过多没有展示完全,可以按回车键下翻,但不可往上翻,按Q退出。

less (出场率不高,了解即可)

也用于查看文本,基本和more一样,对比more可以上下翻,可以用键盘右边的方向键上下翻,也可以用回车往下翻,空格直接跳到文本末尾。ctrl+b或者g可以回到刚开始的状态。

/文本,可以用来查找指定的文本。

head

1.head file默认用于拿到一个普通文件file的前10行并打印在显示器文件上。

2.head -n file,拿到前n行。

tail

1.tail file默认用于拿到一个普通文件file的后10行并打印在显示器文件上。

2.tail -n file,拿到后n行。

那么如何拿到file文件里的第n1行到第n2行【n1,n2】这个区间的文本呢?

举个例子:现在要第3行到第7行【3,7】区间的文本。

方法1:首先head -7 file>temp.txt(首先输出重定向,将file的前7行输出到临时文件temp.txt中),然后tail -5 temp.txt>obj.txt(然后输出重定向,将temp.txt的后5行输出到目标文件obj.txt中)即可完成操作。方法1中需要创建临时文件,文件要写入到磁盘上,文本少还好说,文本大,假如10亿行,那将消耗很大,所以方法1不够好。方法2利用管道来改进这一点。

管道:| 

管道也是一个文件(Linux下一切皆文件),用于传输数据,一般作为中间文件产生,管道文件是一个内存级别的文件,不会刷新到磁盘上。管道有一个入口和出口,用于组合多条命令,命令组合可以实现很多功能,比如:命令A | B,就是将命令A的结果通过管道文件传输给命令B,这个非常有用。

方法2:利用管道  | ,直接head -7 file|tail -5即可。中间不会生成任何临时文件,只有一个内存级的管道文件,它不会写到磁盘上。这个例子中tail-5本来需要从一个普通文件获取资源,这里直接将管道的资源传输给了它。

常用热键

1.ctrl+c可以终止进程,用于处理Linux下各种奇怪的情况。

2.ctrl+z是暂停进程,并将进程挂起到后台,暂停多了会导致系统变慢,不要使用。

jobs

用于查看暂停的进程。

fg N

使第N个任务在前台运行

date

1.直接date可以显示当前时间,不过是用老外习惯的方式打印,看的不习惯。

2.下图指令可以用我们习惯的方式打印年月日,时分秒。如: 2022/12/17-14:52:10。本质是将date转化成我们指定的格式打印,就像printf函数中可以指定一个变量以%d的形式打印。

时间转化成时间戳:date +%s
时间戳转化成时间:date -d@时间戳

find

1.find 路径 -name 文件名(按照文件名查找文件)。目录是一棵树,查找时会从指定路径到叶子节点当中找。

which

用于在系统路径中查找指定的命令所在的路径。也就是说只在系统路径下找。

alias

在which ls的时候会看见下图:

alias是起别名的指令,上图中=左边是ls,ls本质上是=右边命令的别名,=右边的是大名。所以输入大名也是可以完成ls的功能的,如ls --color=auto。注意别名只在本次登录Linux机器有效,下一次登录就失效了。

alias使用格式,和图中一样:alias 别名=‘ 指令的大名或者别名 ’,注意不要忘记单引号‘ ’。

whereis(不常用)

用于在系统路径中查找指定的文档,如whereis ls,会在系统路径中,把所有文件名带有ls的文件都列出来,又如whereis test.c,虽然系统路径下没有test.c文件,但有test.**(通配符)文件,这些test.**文件也会罗列出来,所以whereis不是严格意义上的查找。

grep

1.grep 文本内容 文件名 。

用于在一个指定文件里查找指定的文本内容,将包含指定内容的每一行都打印在屏幕上,并且将指定内容标红。

2.grep -n 文本内容 文件名 。

和上面功能一样,但会打印对应行的行号。

3.grep -v 文本内容 文件名 。

和上面grep相反,这个只会打印不包含指定的文本内容的每一行。可以和 -n组合成grep -vn或者grep -nv,也可以分开写成grep -v -n文本内容 文件名。

4.grep -i 文本内容 文件名。

和前三点不一样,-i表示ignore(忽略的意思),grep -i表示忽略大小写问题,将大写小写视为相同,前三点中,如果每行内容大小写和指定内容对不上,是不会打印的。

5.grep可以用于管道中,如xx|grep aa,xx代表一条指令,指令运行的结果会进入管道,也就是说管道中的资源就是xx指令运行后的结果,这些资源可以看作全部打印进了一个文本文件,而 | 管道后面的grep aa就是在这个文本文件中找aa关键字。

xargs

像cat这种程序(指令),是需要读取的,比如说如果cat指令的后面什么也不加,则会读取从键盘输入的内容(表现和scanf一样,停止并等待输入)然后打印在显示器文件上,并无限循环这个流程。而对于ls这种程序来说是不需要读取的,比如ls直接就可以打印出当前目录下的文件。所以不可以通过获取管道资源来模拟命令行参数,如这种方式是错误的:echo “-i -a” | ls  由于ls不会读取,管道的资源就被无视了。如果想让管道资源 -i -a 作为ls的命令行参数,则要通过xargs,正确方式如下:

echo “-i -a” | xargs ls  

zip(下载指令:yum install zip)

1.zip obj.zip file,将file文件打包并压缩成obj.zip,注意这种方式不可以将目录下的子文件和子目录压缩。如果file是个目录的话,解压obj.zip会是个空目录文件。

2.zip -r obj.zip file,将目录下的子文件和子目录一起压缩。

unzip(下载指令:yum install unzip)

1.unzip obj.zip 将obj.zip解压到当前路径下。

2. unzip obj.zip -d 路径,将obj.zip解压到指定路径下。

打包并压缩的文件用红色标明,格式为xx.zip,即使指定压缩后的文件名称不带.zip,系统会自动加上.zip后缀。注意tar不会自动加.tgz,如果自己不带.tgz,那将生成一个普通非目录文件。

.tar.gz  .tgz是一种格式,即.tar.gz=.tgz。tar只是将文件打包,文件的大小没什么变化,所以生成tar包的指令不带压缩算法-z即可,如:tar -cf obj.tar file。

tar 

1.tar -czvf obj.tgz file,将file文件压缩成obj.tgz文件。c代表create,z代表压缩算法,v代表将打包解压的每一个步骤到打印到显示器上。一般不建议加上 -v,因为如果文件很大,打包解压的步骤就会很多,此时打印就会产生很大的消耗。如果tar指令一直卡着不动,就可以加 -v查看tar程序是否运行。

2.tar -xzvf obj.tgz ,将obj.tgz文件解压到当前路径下。

3.tar -xzvf obj.tgz -C 路径, 将obj.tgz文件解压到指定路径下。

4.tar -cf obj.tar file,将file文件打包成obj.tar文件,此时并没有压缩,只是打包了许多文件在一起。

5.tar -xf obj.tar,将obj.tar这个并未压缩的打包文件里的文件解包出来,即拿到包里的文件。

6. tar -tf obj.tar,将obj.tar这个打包文件里的文件全部打印到显示器上。

bc(不常用)

Linux下的计算器。一种用法就是:echo “1+2+3”| bc,可以通过管道计算出文本的结果。

uname

用于获取电脑和操作系统的相关信息。

1.uname-a 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。
2.uname-r 只看内核信息。

修改用户密码

passwd user1 ,之后输入新密码即可。

Linux常用基础指令相关推荐

  1. Linux常用基础指令、Linux常用工具(软件包)使用带图详解

    目录 目录相关指令: 文件相关指令: 压缩解压缩指令: 匹配查找指令: 权限相关指令: Linux常用工具: 指令使用规则:指令 [该指令的详细操作选项] [操作对象(通常有路径)],后面两可不加. ...

  2. Linux常用基础知识必备三之常用指令及操作

    Linux常用基础知识必备三之常用指令及操作 1.vi和vim vi如何使用 vi几种模式下的操作指令 命令模式进入编辑模式 命令模式下的快捷键 底行模式(指按了esc键之后输入按键:后出现) 字符串 ...

  3. Linux之常用基础指令二

    常用的Linux相关基础指令二 1.cat 功能:查看目标文件的内容 使用方法:cat [选项参数][文件] 常用选项参数: -b 对非空输出行编号 -n 对输出的所有行编号 -s 不输出多行空行 2 ...

  4. linux常用基础命令操作收集

    linux常用基础命令操作收集,以下命令基于CentOs6.x 1.日常操作命令 **查看当前所在的工作目录 pwd **查看当前系统的时间 date **查看有谁在线(哪些人登陆到了服务器) who ...

  5. 鸟哥的Linux私房菜(服务器)- 第五章、 Linux 常用网络指令

    第五章. Linux 常用网络指令 最近更新日期:2011/07/18 Linux 的网络功能相当的强悍,一时之间我们也无法完全的介绍所有的网络指令,这个章节主要的目的在介绍一些常见的网络指令而已. ...

  6. 查看linux硬核上的线程,给大家分享一点基础硬核知识哦 Linux的基础指令操作Lin...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 给大家分享一点基础硬核知识哦 Linux的基础指令操作L inux的基础指令操作 Linux的指令下达方式很简单,只需要记得几个重要的概念就可以 l: c ...

  7. Linux常用基础命令198个

    Linux常用基础命令198个 1.mkdir 创建目录 * 主要选项:-p 递归创建目录 主要案列:mkdir /xujun mkdir -p /xujun/oldboy mkdir -p /xuj ...

  8. Linux常用基础命令

    Linux常用基础命令 腾讯在线文档(优化版): https://docs.qq.com/doc/DQmdRTGhIUXV0Vmxm 1.创建目录,文件: mkdir -p /root/a/b/c/d ...

  9. Linux常用网路指令

    原文地址:http://linux.vbird.org/linux_server/0140networkcommand.php         第五章.Linux常用网路指令 Linux 的网路功能相 ...

最新文章

  1. session传递参数_分布式 Session 之 Spring Session 架构与设计
  2. OpenglES2.0 Android:画矩形
  3. python中两个矩阵之间的点乘_Python基础--数据分析库--Numpy
  4. 超详细!各种内部排序算法的比较
  5. Android 实现ListView圆角效果
  6. BASH Shell 简易进度条小函数
  7. MS-SQL CLR 扩展函数包 CLR_FunctionS!
  8. Lind.DDD.RedisClient~对StackExchange.Redis调用者的封装及多路复用技术
  9. php server 性能,PHP中:$_SERVER[‘REQUEST_TIME’]和 time()有什么区别,那个性能快!...
  10. linux tcb,在Linux中从潜藏密码迁移至tcb怎么做?
  11. 你真的理解图像处理算法SIFT吗?
  12. tp5讲一个值传到另外一个控制里_统计起源 第四讲:黑暗中诞生的天才——自由度与标准差...
  13. vue 赋值不改变_【报Bug】超大BUG,Nvue页面引入组件以后,该页面data里的值不能再赋值改变...
  14. vue升级之路(四)-- Vuex
  15. c #include如何找到文件_UNIX系统上程序员需要掌握的C编程环境的基础知识
  16. 基于Linux平台的libpcap源码分析和优化
  17. js 操作java对象_[Java教程]js 对象操作 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象...
  18. BLE4.0蓝牙模块JDY-08的简单使用
  19. ps4正在连接ea服务器,ps4极品飞车19连不上ea服务器 | 手游网游页游攻略大全
  20. 哈夫曼树实现:统计文本信息,构造哈夫曼树,并对其进行编码与解码

热门文章

  1. html网页logo属性link,html元素link标签rel=icon添加网站favicon.ico图标
  2. 滑块拖动验证码智能识别验证码技术(持续更新)
  3. sublime如何设置为中文?
  4. 二维码解码器Zbar 的配置和基本使用
  5. java中的方法重写
  6. 可视化例子(14)——ECharts波浪图(或者称为河流图)
  7. Java-集合当中进行模糊查找
  8. IDEA安装vue开发插件
  9. 【车间调度】基于改进帝国企鹅算法求解车间调度问题附matlab代码
  10. 罗胖怎么做知识服务?