linux创建命令终端 linux 终端命令

Linux 从 0 到 1(一) - 终端简介,文件与目录以及相关操作,常用命令

模式:

成都创新互联-专业网站定制、快速模板网站建设、高性价比郫都网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式郫都网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖郫都地区。费用合理售后完善,十多年实体公司更值得信赖。

当打开终端,第一行所见的就叫命令行提示符。我的是这样的:

命令行提示符,顾名思义就是提示在其后面输入命令。在你输入新的一行命令前,这个命令提示符都会出现。分别解析一下上边代表什么意思:

oscar 这是当前用户的名字。Linux是一个多用户的操作系统,Windows也可以。不过Linux的多用户管理更方便。我们一般建议每个使用Linux系统的用户都创建一个属于自己的账户,便于隐私管理。

@ 这个符号我们应该不陌生,我们的电子邮件一般都是 name@domain.com 这样的不是吗。这个@就表示英语里的at,是“在...里面,落户在...的,在其中”的意思。@前面是用户名,后面是所在的域。

oscar-laptop 这是当前电脑/操作系统的名字。上面说了在@后面的是一个域,所以 oscar@oscar-laptop 就表示oscar-laptop这台电脑的oscar这个用户。oscar-laptop这个名称在安装此Linux系统时可以任意指定。

: 这是分隔符,没有什么特别的涵义。

~ 这是当前所在目录的名字,会随着用户进入不同目录而改变。~表示当前用户的家目录,有点类似Windows系统的“我的文档”这个目录。

$ 指示你所具有的权限的字符。在Linux系统中有两种可能:

因此, oscar@oscar-laptop:~$ 的意思就是:

你目前是以oscar这个用户登录;你的电脑名称为oscar-laptop;你目前位于 ~ 目录下,就是你的用户家目录。你是普通用户,拥有有限的权限。

参数里可以包含多个参数,由空格隔开,也可以包含数字,字母,等等。可以说,参数没有固定的格式,但是一般来说还是遵循一定的规范的。

如果我们要一次加好几个短参数,可以用空格隔开,例如:

多个短参数也可以合并在一起,例如上面的命令等价于:

请注意:参数的字母的大小写是有区别的,大写的T和小写的t通常表示不同意思。

如果有多个长参数,是不能像多个短参数那样合并写的。而是只能以空格隔开,例如:

当然我们也可以组合使用短参数和长参数,例如:

有时候,同一个意义的参数有短参数和长参数两种形式,效果是一样的,可以任选哪一种。

有一些参数你还需要给它赋一个值才行。而且短参数和长参数的赋值的方式不尽相同。

例如,短参数赋值,通常是这样的:

表示把10赋值给p参数。

如果是长参数,则一般是这样赋值:

长参数的方式更加容易理解,但是不如短参数那么简洁。

正如我们说过的,参数的形式没有绝对的准则。我们上面给出的规则是一般的,有些命令的参数格式可能是我们没怎么见过的。

有些参数就不一样,而且取决于命令。例如对于 ls 这个命令,假如后面带了一个参数,这个参数是一个目录的路径名的话,那么就会列出此目录下的文件。

两种类型的文件

简单起见,我们把Linux下的文件分为两大类:

在一个文件系统中,我们总有一个被称为根目录的东西,这个根目录里包含了所有其他目录和文件。Linux中有且只有一个根目录,就是

是的,就是用一个斜杠表示。没有比根目录再高一阶的目录了,因为没有目录包含根目录,根目录就是Linux最顶层的目录。

Linux系统安装后,包含了很多的文件和目录(虽然其实都是文件),我们很容易迷失在“茫茫文海”中。

当然我们不可能一下子列出Linux中的所有文件,那不现实。但是我们可以向你展示如何在Linux的目录树中来回穿梭,你可以知道此刻你位于哪个目录下。就好比能看懂Linux这个很大的“地图”。

pwd 是英语Print Working Directory的缩写,表示“打印当前工作目录”。

which 命令:获取命令的可执行文件的位置,which命令用于显示一个命令的对应的可执行程序的位置。可能听起来有点拗口。

在Linux下,每一条命令其实对应了一个可执行程序。我们在终端中输入命令,再按回车的时候,其实就是执行了对应的那个程序。比如说,pwd命令对应的pwd程序就是存在于Linux中的。

which命令接受一个参数,也就是你想要知道其可执行程序位于哪里的那个命令。

我们来测试一下,就拿pwd命令来测试好了:

得到:

因此,pwd命令对应的pwd这个可执行程序位于/bin目录中。

我们也可以注意到Linux中的可执行程序和Windows中不太一样,在Windows中可执行程序一般以.exe结尾,而Linux中一般是没有后缀名的。

Linux中的可执行程序也不是都位于相同目录的。我们可以来测试一下which命令本身对应的可执行程序位于哪里:

我们可以看到,which命令对应的可执行程序which并不位于/bin中,而是在/usr/bin中。

Ubuntu的终端默认是有颜色标注的,一般来说:

如果在你的终端里没有标明颜色,那么你可以加上参数 --color=auto 来开启颜色标注。如下:

如果你不需要颜色标注,那么可以用 --color=none 来关闭颜色标注。如下:

当然,为了避免每次都输入这么一串额外的参数,其实我们可以在一个配置文件里修改,使得永久显示颜色或不显示颜色。

在Linux,以点( . )开头的文件是隐藏文件,不过这里不包括开头的两个 . 和 .. ,这两个的含义如下:

- . (一个点)表示当前目录。在当前情况下,就是 /home/oscar 。

- .. (两个点)表示上一级目录。因为当前目录是/home/oscar,所以上一级目录就是 /home 。

我们有一个大写的参数 -A,它的作用和小写的-a几乎一样,唯一不同就是-A不列出 . 和 .. 这两个文件。

-l 这个参数算是ls命令最常用的了。加上-l参数使得ls命令列出一个显示文件和目录的详细信息的列表。

当我们仅用ls -l时,列出的文件详细信息中,文件的大小是以字节为单位的。有时这不是太直观。我们可以再加一个参数-h,h是humain readable的缩写,表示“适合人类阅读的”。所以我们的命令变成了:

t是time的缩写。

du命令也是很有用的,因为它可以让我们知道文件和目录所占的空间大小。

虽然ls -l命令也可以显示文件和目录的大小,但是du命令统计的才是真正的文件大小。du命令会深入遍历每个目录的子目录,把所有文件的大小都做一个统计。

du是英语disk usage的缩写,表示“磁盘使用/占用”。

我们的du命令也可以使用参数。

cat命令和less命令:显示文件内容,这两个命令只能显示文件内容,并不能对文件内容进行修改。

一次性显示文件的所有内容,如果你想要在显示的文件内容上加上行号,那么你可以加上 -n 这个参数。

分页显示文件内容

head命令和tail命令:显示文件的开头和结尾。

显示文件开头,默认情况下,head会显示文件的头10行。我们也可以指定显示的行数,用 -n 这个参数:

就会显示文件的头5行。

显示文件结尾。默认情况下,tail会显示文件的尾10行。

我们也可以指定显示的行数,用 -n 这个参数:

就会显示文件的尾5行。

tail命令还可以配合 -f 参数来实时追踪文件的更新:

这样,就会检查文件是否有追加内容,如果有,就显示新增内容。

默认地,tail -f会每过1秒检查一下文件是否有新内容。你也可以指定间隔检查的秒数,用 -s 参数:

可以用快捷键 Ctrl + c 来终止tail -f 命令。

touch命令和mkdir命令:创建文件和目录

创建一个空白文件。事实上,Linux没有一个命令是专门用来创建一个空白文件的。touch命令其实一开始的设计初衷是修改文件的时间戳,就是可以修改文件的创建时间或修改时间,让电脑以为文件是在那个时候被修改或创建的。但是touch命令如果后面跟着的文件名是不存在的,那么它就会新建一个。

事实上,我们可以用touch命令同时创建多个文件:

如果我所要创建的文件的名字里有空格怎么办呢?

很简单,加上双引号:

创建一个目录。

mkdir也可以同时创建好几个目录:

如果我所要创建的目录的名字里有空格怎么办呢?

很简单,加上双引号:

我们还可以用 -p 参数来递归创建目录结构。

比如:

cp命令和mv命令:拷贝文件和移动文件

拷贝文件或目录

cp是英语copy的缩写,表示“拷贝”。所以,顾名思义,此命令用于拷贝。cp命令不仅可以拷贝单个文件,还可以拷贝多个文件,也可以拷贝目录。

复制文件到另一个目录只需要把cp命令的第二个参数换成目录名。

拷贝目录

要拷贝目录,只要在cp命令之后加上-R参数(注意是大写的R)。拷贝的时候,目录中的所有内容(子目录和文件)都会被拷贝。

使用通配符*

*号(星号)是很常用的正则表达式的符号,被称为“通配符”,

所以如果我们用如下命令:

那么就会把当前目录下所有txt文件拷贝到folder这个子目录当中。

又如:

那么就会把当前目录下凡是以ha开头的文件都拷贝到folder目录中。

移动文件

mv是英语move的缩写,表示“移动”。mv命令有两个功能:

用mv命令来移动目录很简单,不需要额外的参数,就跟移动文件一样:

当然,我们也可以使用通配符。

除了移动文件,mv命令还可以用于重命名文件。

事实上,Linux中没有一个专门的命令用于重命名文件。之所以mv命令可以重命名文件,其实还是归因于它的机制:移动文件。经过mv移动之后,原始文件变成了新的名字的文件,文件内容是不变的,这不就相当于重命名了吗?

以上命令会将new_file重命名为renamed_file。

删除文件和目录

rm命令可以删除一个文件,多个文件,目录,甚至你的整个Linux系统(如果你愿意的话)。

以上命令删除当前目录下的new_file_copy这个文件。

我们也可以同时删除多个文件,只要用空格隔开每个文件即可。例如:

保险起见,用rm命令删除文件时,可以加上 -i 参数,这样对于每一个要删除的文件,终端都会询问我们是否确定删除。i是英语inform的缩写,表示“告知,通知”。

有两种回答:

y:是英语yes的缩写,表示“是”。那么回车确认后,文件就删除了。

n:是英语no的缩写,表示“否”。那么回车确认后,文件不会删除。

如果在rm命令后加上-f参数,那么终端不会询问用户是否确定删除文件,不论如何,文件会立刻被强制删除。

f是英语force的缩写。

以上命令会强制删除file文件。

r是英语recursive的缩写,表示“递归的”。所以使用-r参数,可以使rm命令删除目录,并且递归删除其包含的子目录和文件。

这个命令也挺危险的,用得不好可能你的子目录和文件都没了。

以上命令会删除one这个目录,包括其子目录和文件。

其实,也存在一个命令

看着和 rm -r 挺像的。但是这个命令有个局限性:只能删除空的目录。

创建链接

事实上,Linux下有两种链接类型:

为了区分这两种链接类型的不同,我们首先来谈一谈如Linux这样的操作系统中文件在硬盘上的存放。

文件在硬盘上存储时,大致来说(请注意我用了“大致来说”),每个文件有两部分:

文件名的列表是储存在硬盘的其他地方的,和文件内容分开存放,这样方便Linux管理。

注意:为什么我上面要用“大致说来”呢?因为此处我们简化了描述,其实每个文件有三部分:

我们这里简化地将文件分为两部分:文件名和文件内容。因为我们不想把事情复杂化,我们想要理解两种链接类型的区别,暂时只要知道这些就够了。

每个文件的文件内容被分配到一个标示号码,就是inode。因此每个文件名都绑定到它的文件内容(用inode标识)。原理如下图:

下面我们学习如何创建硬链接和软连接。

比之软链接,硬链接的使用几率小很多。但是我们还是要学习一下,毕竟可能会用到。

硬链接的原理:使链接的两个文件共享同样的文件内容,也就是同样的inode。

所以一旦文件1和文件2之间有了硬链接,那么你修改文件1或文件2,其实修改的是相同的一块内容。只不过我们可以用两个文件名来取到文件内容。

硬链接有一个缺陷:只能创建指向文件的硬链接,不能创建指向目录的硬链接。但是软链接可以指向文件或目录。当然了,事实上,通过一些参数的修改,也可以创建指向目录的硬链接,但是比较复杂,这里不再详述。所以对于目录的链接,我们一般都是用软链接。

硬链接原理图:

要创建硬链接,直接用ln命令,不加任何参数:

我们可以用ls -i命令查看一下(-i参数可以显示文件的inode)。对于硬链接来说,删除任意一方的文件,共同指向的文件内容并不会从硬盘上被删除。

我们用ls -l命令查看文件信息的时候,第二列的那个2,其实是表示拥有相同inode号的文件数。不难理解,因为它们指向相同的文件内容,所以共享一个inode。

这个第二列的数字,一般来说对于普通文件,都是1,因为不同文件inode不同嘛。对于目录来说,这第二列的数字标明目录内所含文件数目。

其实,软链接才是真正像我们在Windows下的快捷方式的,其原理很相似。

创建硬链接是ln不带任何参数,但是要创建软链接需要加上-s参数。s是symbolic(符号的)的缩写。

file2指向的不再是file1的文件内容(和硬链接不同),而是指向file1的文件名。

软链接原理图:

用ls -l命令查看一下,会发现形式和之前的硬链接不一样噢,file2的信息是这样的: file2-file1,表示file2指向file1。

而且file2前面的权限那里的第一个字母变成了l,表示link(链接)。之前硬链接的时候是没有l的,硬链接外表看起来就和普通文件类似。

我们用ls -l命令查看文件信息的时候,第二列的那个1,表示拥有相同inode号的文件数。不难理解,因为file2指向file1,它们并没有指向同一块文件内容,所以它们的inode号不相同。

软链接的特点:

2 Linux终端命令

职场中,大部分都是通过 SSH客户端 远程操作,实现磁盘读取,文件读取,目录操作,进程管理等等

打开终端3种方式,收藏夹黑色屏幕图标点击,右键打开终端,Ctrl+Alt+t组合键

command  [-options] [parameters]  

command即终端命令,options为选项一般前面有横杠,后面是参数,选项和参数有中括号表示可选项

man command (man表示手册缩写,查看命令帮助文档)出现文档,按回车下滚一行,按空格(或f)下翻一页,按b上翻一页,输入横杠加上对应的option可实现对应部分高亮

command --help也可以实现帮助文档,页面和上面不太一样,部分还出现了中文

pwd 命令 显示当前路径

tree [path] 命令(默认没有,需要安装,sudo apt install tree)可以将你当前(或指定)路径下的文件以树状遍历(所有文件,递归)显示出来

ls 命令 以列表显示当前目录文件,(不再深层挖掘)ls显示出来白色是文件,蓝色是文件夹,绿色是可执行文件,红色一般是压缩包

ls -a 显示所有的文件包括隐藏文件,显示结果以. 点开头的就是隐藏文件

ls -l 用较长方式显示文件 

前面10个字母(分成第一个和后9个,第一个横杠表示一个文件,d表示一个目录,l表示是个链接(类似快捷方式),后九个,rwx表示跟读写等操作有关,后面讲),硬链接数,文件所属用户(第一个demo),文件所属组(第二个demo),文件大小(B为单位),最后修改时间,文件

ls -h以人性化显示文件(一般和-l一起),可看出加了-h后,文件显示的单位方便阅读

cd 可以跟相对路径和绝对路径,路径大小写敏感

当前路径用“.”表示,上级路径“..”

cd 什么都不加或者cd ~可以直接回家目录/home

cd /去根目录

cd -返回上次的目录

mkdir创建目录 

mkdir 目录名   不可以一次创建多级目录(文件夹不存在情况下如mkdir a/b/c,a,b都不存在情况下,创建不了)

如果我们就是想创建多级目录呢,使用递归创建目录,会把没有的目录创建出来

mkdir a/b/c -p

touch创建文件

touch +文件名(建议加后缀名),可以一次创建多个文件用空格隔开

touch a.txt

touch a.txt b.txt

gedit打开文件

gedit 文件相对路径或绝对路径,(如果未成功打开需要加上sudo gedit)

同上个命令可以同时打开多个,打开的编辑器编辑内容点击保存完成文件编辑

打开文件后终端进入等待状态

rm删除文件和文件夹

文件删除不能恢复

rm -i 文件       这种会出现是否提示,给自己个提醒机会(centos没有-i就有提示)

rm -f 文件   强制删除(不提示,和上个相反)

rm -r 目录   删除目录(多级递归删除)

cp拷贝文件和文件夹

cp a.txt b.txt 当前路径下的a.txt拷贝一个b.txt到当前路径,如果已经存在b.txt直接覆盖掉

加上-i模式可以给与提示(不是同名文件不会出现)

-f 强制复制不提示

-v 显示一行拷贝的过程

如果是复制文件夹要加上 -r 递归拷贝

-a 把文件或文件夹(是递归拷贝)的权限也一起复制过去

mv移动文件文件夹,重命名

mv 原路径 目标路径

如果存在同名文件,默认会覆盖,还是加-i提示,如果选择n,不会移动成功

-f 强制移动不提示

-v 显示移动过程

移动文件夹不用加-r(删除和拷贝不一样)

clear 清除终端显示内容(类似DOS cls)快捷键,Ctrl+L

实际效果只是往下滚动,当前输入为第一行,拖动滚动条还是能看见之前的内容= =

tab 自动补全(有时多个可能要再按下tab出现候选提示)

which 查看命令位置

光标↑↓ 查看翻查之前调用过的命令

Ctrl+C 终止程序运行

终端字体大小调整Ctrl Shift +(放大)

Ctrl - (缩小,注意无shift)

cal显示日历,当日高亮

cal -3显示当前月及上下月的日历(没有-别的数字)

cal -y 显示一年的日历

cal -j 日历显示是当年第几天

cal 年份4位数(获得年份日历)

date显示日期

date 加双引号字符串格式化显示,注意对应大小写

%F,%T同样实现类似效果,分别格式化日期和时间

history 获得所有的历史指令

history 数字 显示最近的数字条指令

如果我看到对应指令,然后根据指令编号,直接输入

! 指令编号     即可执行对应指令,这些历史指令都存在于家目录隐藏文件 .bash_history 中

cat 直接在命令行显示文件内容,和gedit不一样

-n 查看文件同时显示行号

-b 文件空行不编号,但是给空出位置,显示非空行编号

-s 两行以上的空行只显示一行(可以和前面的组合 -sb   )

同时打开多个文件效果

more

more 文件路径  

分屏查看,会显示已经显示部分的百分比,

按回车滚一行,

按空格  或  Ctrl+F或F向下翻一屏,

Ctrl+B或B回滚一屏

q退出

more +num 表示从第num行开始查看,文件默认第一行为1

-p 选项 清屏 置顶显示内容

-s 连续2行以上的空行显示一个空行

more 也可以加多个文件,显示不同文件有专门的分割,这是与cat的区别

Linux终端命令神器--Screen命令

screen的功能大体有三个:

会话恢复: 只要Screen本身没有终止,在其内部运行的会话都可以恢复。

多窗口:在Screen环境下, 所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。

会话共享:Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性。

安装screen:

# CentOS

yum install screen

# Debian/Ubuntu

apt install screen

Attached :表示当前screen正在作为主终端使用,为活跃状态。

Detached :表示当前screen正在后台使用,为非激发状态。

# 查看已存在终端

screen -ls

# 创建一个叫Hello的虚拟终端

screen -S Hello

# 进入虚拟终端32307

screen -r 32307

There is no screen to be resumed matching错误解决办法

1.在使用screen -r ******(id)重新连接程序界面时出现以下问题:

后来发现是因为突然断网,虽然重新连接,但之前的screen还是处于打开状态(1个screen无法同时打开2次),所以无法重新打开screen,解决方法如下:

2.首先使用screen -d *****(id),先退出,然后再使用 screen -r *****(id)重新连接


名称栏目:linux创建命令终端 linux 终端命令
网站地址:http://bzwzjz.com/article/hjdgsd.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站设计制作 重庆电商网站建设 网站制作 攀枝花网站设计 高端网站设计 成都企业网站建设公司 网站制作 成都营销网站制作 外贸营销网站建设 营销型网站建设 网站制作公司 成都网站制作 成都网站建设 企业网站制作 手机网站建设套餐 成都网站设计 成都模版网站建设 企业网站建设 手机网站制作 宜宾网站设计 营销型网站建设 网站建设方案