1.Linux基础知识

LEO-屹铭 2021-10-26 AM 272℃ 0条

一、Linux基础知识

1、命令行概述

1.1、Linux命令
用于实现某一类功能的指令或程序 
命令的执行依赖于解释器(例如:/bin/bash)
1.2、Linux命令的分类
内部命令:属于Shell解释器的一部分
外部命令:独立于Shell解释器之外的程序文件
1.3、识别命令类型
type
1、 用途:识别命令类型
2、格式:type  [-a]  name

内部命令:
[root@localhost ~]# type  type              
回显:type is a shell builtin

外部命令:
[root@localhost ~]# type  bash
回显:bash is /bin/bash
注意:bash 是外部命令程序

2、命令格式

2.1、命令提示符
[root@localhost ~]#

[ ]:这是提示符的分隔符号,没有特殊含义

root:显示的是当前的登录用户

@:分隔符号,没有特殊含义

localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)

~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录

#:命令提示符,Linux 用这个符号标识登录的用户权限等级。
如果是超级用户,提示符就是 #;如果是普通用户,提示符就是 $
2.2、家目录(又称主目录)是什么?
 Linux 系统是纯字符界面,用户登录后,要有一个初始登录的位置,这个初始登录位置就称为用户的家
超级用户的家目录:/root
普通用户的家目录:/home/用户名
2.3、命令的基本格式
[root@localhost ~]# 命令   [选项]    [参数]
命令格式中的 [ ] 代表可选项,也就是有些命令可以不写选项或参数,也能执行
选项的作用:命令之后不加选项和参数也能执行,不过只能执行最基本的功能
参数的作用:参数是命令的操作对象,一般文件、目录、用户和进程等可以作为参数被命令
2.4、简单命令
查看系统信息

查看内核信息
uname命令:
-a:显示主机名/内核/硬件平台等全部信息
-r:只显示内核版本

查看系统版本
cat /etc/redhat-release

查看主机名
hostname命令
查看主机的完整名称
包括主机名称、所在域的名称

hostname set-hostname 主机名
修改主机名

查看IP/MAC地址
ifconfig

查看CPU参数
cat  /proc/cpuinfo

查看内存参数
cat  /proc/meminfo

查看硬件存储
df -hT
-h 使用人类可读的格式
-T 显示文件系统的形式

重启命令
shutdown  -r  now
reboot
init  6

关机命令
shutdown  -h  now
poweroff
init  0

延时重启/关机命令
延时重启:shutdown  -r  15  'Host will be reboot !!'
延时关机:shutdown  -h  15  'Host will be shutdown !!'
2.5、路径概述
在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置
绝对路径:绝对路径一定是由根目录 / 开始写起
相对路径:相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起
2.6、文件类型
对于第一次使用 Linux 命令行的用户,可能真的搞不清楚哪个是文件,哪个是目录,究其原因是很难直接通过名字看出来目录和文件的区别,虽然从名称上不容易分辨,但是可以从颜色上进行区分

一般情况下:

蓝色代表目录

绿色代表可执行文件

红色代表压缩文件

浅绿色代表链接文件

黄色代表设备文件

不同颜色所代表的文件类型不一定是这样,更准确的对应方式还取决于配置文件 /etc/DIR_COLORS 中的规定。因此,如果想详细了解不同文件类型所对应的颜色,可以使用 man 命令,例如:

[root@localhost ~]# man dir_colors

二、Linux基础命令

1、ls 命令

ls 是 list files 的缩写,用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)

选项:

-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-h 以人们易读的方式显示文件或目录大小,如 1KB、234MB、2GB 等
-n 以 UID 和 GID 分别代替文件用户名和群组名显示出来
-R 连同子目录内容一起列出来,等於将该目录下的所有文件都显示出来
--color=never:never 表示不依据文件特性给予颜色显示
--color=always:always 表示显示颜色,ls 默认采用这种方式
--color=auto:auto 表示让系统自行依据配置来判断是否给予颜色

特别注意:

    通过使用 -a,你会看到以 . 为开头的几个文件,以及目录文件 (.)、(..)、.gconf 等等,这些都是隐藏的目录和文件。其中,目录文件名以蓝色显示,一般文件以白色显示

    Linux 系统中,隐藏文件不是为了把文件藏起来不让其他用户找到,而是为了告诉用户这些文件都是重要的系统文件,如非必要,不要乱动!所以,不论是 Linux 还是 Windows 都可以非常简单地査看隐藏文件,只是在 Windows 中绝大多数的病毒和木马都会把自己变成隐藏文件,给用户带来了错觉,以为隐藏文件是为了不让用户发现。


通过 ls -l 命令,我们就可以查看当前目录下所有文件和目录各自的属性

回显示例:
-rw-------  1 root root  1474 Sep  4 18:27 anaconda-ks.cfg
drwxr-x---  4 root root  4096 Sep 24 00:07 .

第一个字符含义:
—
普通文件,包括纯文本文件、二进制文件、各种压缩文件等
d
目录,类似 Windows 系统中的文件夹
b
块设备文件,就是保存大块数据的设备,比如最常见的硬盘
c
字符设备文件,例如键盘、鼠标等
s
套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信
p
管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误
l
链接文件,类似 Windows 系统中的快捷方式

通过 ls -l 命令,我们就可以查看当前目录下所有文件和目录各自的属性

回显示例:
    
-rw-------  1   root    root    1474     Sep  4 18:27      anaconda-ks.cfg
-rw-------  1   root    root    955      Sep 24 00:08     .bash_history

第一列:规定了不同的用户对文件所拥有的权限,具体权限的含义将在后续章节中讲解。

第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。

第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。

第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。

第五列:大小,默认单位是字节。

第六列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。

第七列:文件名或目录名。

2、cd 命令

cd 是 change directory 的缩写,用于切换当前工作目录

cd 命令的基本格式:
[root@localhost ~]# cd [相对路径或绝对路径]

cd 命令后面可以跟一些特殊符号,表达固定的含义

~ (波浪号):代表当前登录用户的主目录

~用户名:表示切换至指定用户的主目录

-(减号):代表上次所在目录

.:代表当前目录

..:代表上级目录

cd后不接选项和参数,表示返回当前登录用户的家目录

3、pwd 命令

pwd 是 print work directory 的缩写,用于显示工作目录

执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称

例:
[root@localhost ~]# pwd
回显/root

4、mkdir 命令

mkdir 是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用

mkdir 命令的基本格式为:

[root@localhost ~]# mkdir   选项   目录名

选项:
-m 选项用于手动配置所创建目录的权限,而不再使用默认权限

例: [root@localhost ~]# mkdir   -m   711   test2

-p 选项递归创建所有目录

以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home、/home/test 以及/home/test/demo

5、touch 命令

touch 用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件

    需要注意的是,touch 命令不光可以用来创建文件(当指定操作文件不存在时,该命令会在当前位置建立一个空文件),此命令更重要的功能是修改文件的时间参数(但当文件存在时,会修改此文件的时间参数)

    Linux 系统中,每个文件主要拥有 3 个时间参数(通过 stat 命令进行查看),分别是文件的访问时间、数据修改时间以及状态修改时间:

1.访问时间(Access Time,简称 atime):只要文件的内容被读取,访问时间就会更新。例如,使用 cat 命令可以查看文件的内容,此时文件的访问时间就会发生改变

2.数据修改时间(Modify Time,简称 mtime):当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变

3.状态修改时间(Change Time,简称 ctime):当文件的状态发生变化,就会相应改变这个时间。比如说,如果文件的权限或者属性发生改变,此时间就会相应改变

touch 命令的基本格式如下:

[root@localhost ~]# touch   [选项]   文件名

选项:
-a:只修改文件的访问时间
-c:仅修改文件的时间参数(3 个时间参数都改变),如果文件不存在,则不建立新文件
-d:后面可以跟欲修订的日期,而不用当前的日期,即把文件的 atime 和 mtime 时间改为指定的时间
-m:只修改文件的数据修改时间
-t:命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm

示例:

1、首先,使用ls命令查看testfile文件的属性,如下所示:

 [root@localhost ~]# ls -l testfile                #查看文件的时间属性

#原来文件的修改时间为16:09  
-rw-r--r--   1   root   root   55   2021-01-22   16:09   testfile  

2、执行指令"touch"修改文件属性以后,并再次查看该文件的时间属性,如下所示:

[root@localhost ~]# touch testfile               #修改文件时间属性为当前系统时间  
[root@localhost ~]# ls -l testfile               #查看文件的时间属性  

#修改后文件的时间属性为当前系统时间  
-rw-r--r-- 1   root   root   55   2021-01-22   16:12   testfile   

3、 修改 testfile 文件的 atime 和 mtime

[root@localhost ~]# touch -d "2021-01-22 15:44" bols
[root@localhost ~]# ll testfile、 ll --time=atimetestfile、 ll --time=ctime testfile

-rw-r--r-- 1   root   root   55   2021-01-22   15:44   testfile   
-rw-r--r-- 1   root   root   55   2021-01-22   15:44   testfile   
-rw-r--r-- 1   root   root   55   2021-01-22   16:15   testfile   
#ctime不会变为设定时间,但更新为当前服务器的时间

6、stat 命令

stat 用于显示 inode 内容

stat 命令的基本格式如下:

[root@localhost ~]# stat   [文件或目录]
查看 testfile 文件的inode内容内容,可以用以下命令:

[root@localhost ~]# stat testfile                #输入命令

回显如下:

File: `testfile'
Size: 102             Blocks: 8          IO Block: 4096   regular file
Device: 807h/2055d      Inode: 1265161     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-08-13 14:07:20.000000000 +0800
Modify: 2014-08-13 14:07:07.000000000 +0800
Change: 2014-08-13 14:07:07.000000000 +0800

7、cp 命令

cp 是 copy 的缩写 ,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能

cp 命令的基本格式如下:

[root@localhost ~]# cp  [选项]  源文件  目标文件

选项:

-a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍(常用)
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)(常用)
-r:递归复制,用于复制目录(常用)

-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
-i:询问,如果目标文件已经存在,则会询问是否覆盖
-l:把目标文件建立为源文件的硬链接文件,而不是复制源文件
-s:把目标文件建立为源文件的软链接文件,而不是复制源文件
-u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用

需要注意的是,源文件可以有多个,但这种情况下,目标文件必须是目录才可以

8、rm 命令

rm 是 remove 的缩写,用于删除一个文件或者目录

    当 Linux 系统使用很长时间之后,可能会有一些已经没用的文件(即垃圾),这些文件不但会消耗宝贵的硬盘资源,还是降低系统的运行效率,因此需要及时地清理

    rm 是强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息

此命令的基本格式为:

[root@localhost ~]#  rm  [选项]  文件或目录

选项;

-f:强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录

-i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录

-r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件

注意,rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要慎之又慎

9、mv 命令

mv 是 move 的缩写,既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名

该命令的基本格式如下:

[root@localhost ~]# mv 【选项】 源文件 目标文件

选项:

-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
-n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户
-v:显示文件或目录的移动过程
-u:若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级

    需要注意的是,同 rm 命令类似,mv 命令也是一个具有破坏性的命令,如果使用不当,很可能给系统带来灾难性的后果

例子:

1、移动文件或目录:

移动之后,源文件会被删除,类似剪切

[root@localhost ~]# touch  testfile 

[root@localhost ~]# mv  testfile   /tmp

也可以移动目录。和 rm、cp 不同的是,mv 移动目录不需要加入 "-r" 选项

[root@localhost ~]# mkdir  movie

[root@localhost ~]# mv  movie  /tmp

2、如果移动的目标位置已经存在同名的文件,则同样会提示是否覆盖,因为 mv 命令默认执行的也是 "mv -i" 的别名,例如:

[root@localhost ~]# touch  testfile     #重新建立文件

[root@localhost ~]# mv testfile   /tmp

回显为:mv:是否覆盖"/tmp/testfile"?

由于 /tmp 目录下已经存在 testfile 文件,所以会提示是否覆盖,需要手工输入 y 覆盖移动

linux.png


扫描二维码,在手机上阅读!
标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~