Linux第一篇之零基础掌握篇

                首先介绍一下我的个人情况,23届二本网络工程专业毕业,运气爆棚进入了一家制造业上市公司,到现在也工作两年多了。在两年的工作过程中慢慢接触了BPM,ERP,SRM,OA,MES,WMS等制造业常用软件公司,也接触了一些代理商、集成商等。也是找到了想要未来发展的方向,高级系统运维或云服务器方向,因此开始逐步接触学习虚拟机VMware VSphere,Linux、shell编程、Python编程,K8S,redis,zabbix,docker,jenkins等。目前还属于刚入门,我把个人的学习成长经历记录下来以便后来的兄弟姐妹们参考。

本篇内容主讲的是Linux的基础命令及系统管理,疑难释疑等,会不断修改完善。
本篇内容并不会一次性把所有的命令及用法都罗列出来,而是随着讲解系统的各个方面而逐步学习所涉及到的命令。

目录

一、Linux系统了解

命令:pwd 打印当前路径

命令:ls  

命令:cd  切换路径

二、文件及用户管理

(一)文件管理

1.文件类型

2.文件管理命令

命令:touch   创建空白文件 

命令: mkdir 创建目录

命令: cp  复制文件或文件夹


一、Linux系统了解

在介绍基础命令之前要先明确的两个概念就是相对路径和绝对路径。
相比大家对windows系统都已经有了一定的了解,对于初学者而言Linux与Windows最大的区别就是windows提供了丰富的图形化界面(就是我们现在用的通过鼠标点一点就可以完成页面跳转,文件打开,软件安装使用等),而Linux系统更多的是使用命令行的模式,如图所示。

绝对路径:绝对路径一定是由根目录 / 开始写起。使用绝对路径的表示方式指明 bin 文件所在的位置,该路径应写为 /usr/bin

相对路径:不需要从根目录\ 开始写起,可以从当前所在的工作目录开始写起。


应该说linux的目录结构是比windows的简单一些:windows是以多根的方式组织文件C:\  D:\  ;而linux则是以单根的方式组织文件

下表为根目录下部分比较重要的目录及其含义介绍:

root超级管理员root的家目录,只有超管才有权限进
bin普通用户执行命令的目录
boot启动目录,存放了开机启动程序
dev硬件及驱动目录
etc配置文件目录
home用户的家目录,用户创建的文件都存在这里
var日志邮件目录
sbin管理员执行特权命令目录
usr应用程序目录
tmp临时目录
sbin管理员执行特权命令目录

首先我们打开终端,在这里可以输入命令进行操作。

命令:pwd 打印当前路径

pwd是print working directory(打印工作路径)的缩写,其功能是显示当前所在工作目录的绝对路径。当我们不确定当前在哪个路径下时,可以通过pwd来查看当前目录的绝对路径

[root@localhost ~]# pwd
/root

此时我们在根目录下的root文件夹里,单独的/代表根目录;而/root/桌面/learn,表示当面路径是根目录下【root】目录里的【桌面】目录里的【learn】目录。

PS:目录就相当于windows的文件夹。我们在windows里说A文件夹里的B文件,在Linux就是在A目录下的B文件。

这个命令很简单,当迷糊了不知道自己在哪个路径下了,就pwd看一看。


命令:ls  

ls是list(列出)的缩写,他的作用是将当前目录下有哪些文件和子目录都列出来

[root@localhost ~]# ls
anaconda-ks.cfg  eee  file1  file100  file1.txt  file2  initial-setup-ks.cfg  test  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@localhost ~]# 

这里你跟我列出的内容不一样是因为我新建了一些文件,不必在意。

这只是ls最基础的用法,我们可以在ls后加上参数例如 ls -l  或 ls -a /root等进阶用法来查看更多信息,比如隐藏的文件及目录、这些文件的大小、这些文件的权限分配等等,详情可以跳转文章【Linux命令全解之ls用法全解】


命令:cd  切换路径

cd命令的功能与双击进入某个文件夹比较像。改变工作目录,从当前目录改变到指定目录下。

语法格式:cd+目录

常用参数搭配

cd + 绝对路径

[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /usr/tmp
[root@localhost tmp]# pwd
/usr/tmp

cd + 相对路径

当前路径有两种表现形式:第一种直接加当前目录下的子目录名。第二种用.代表当前目录,用.【/子目录名】来定位子目录

[root@localhost ~]# pwd
/root
[root@localhost ~]# cd 桌面  \\第一种
[root@localhost 桌面]# ls
a1  b2
[root@localhost 桌面]# cd ./b2   \\第二种
[root@localhost b2]# pwd
/root/桌面/b2

cd..    去往父目录,上一级目录

[root@localhost b2]# pwd
/root/桌面/b2
[root@localhost b2]# cd ..
[root@localhost 桌面]# 

cd ~  去往用户家目录,既用户登录打开终端的默认位置

[root@localhost 桌面]# pwd
/root/桌面
[root@localhost 桌面]# cd ~
[root@localhost ~]# pwd
/root    \\我用的是root超级管理员用户,所以会是/root
[root@localhost ~]# 

cd -   返回上一个目录位置

[root@localhost 桌面]# pwd
/root/桌面
[root@localhost 桌面]# cd ~
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd -
/root/桌面
[root@localhost 桌面]# cd -
/root
[root@localhost ~]# cd -
/root/桌面

二、文件及用户管理

(一)文件管理

1.文件类型

文件类型按照常用和不常用分成两类,重点记住常用类型

常见类型普通文件:文本文件、二进制文件、压缩文件、电影、图片、视频
目录文件:蓝色的
不常见类型b设备文件(块设备):存储设备硬盘、U盘
c设备文件(字符设备):打印机、终端、dev/tty1
l链接文字(淡蓝色)
s套接字文件
p管道文件

 

2.文件管理命令

命令:touch   创建空白文件 

touch 命令通常用于将文件的访问和修改时间更新为当前时间。如果指定的文件名不存在,会创建一个 0KB 的空文件。不允许在创建文件时向其中输入任何文本。

[root@localhost /]# cd /root
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@localhost ~]# touch file1.txt   //touch + 相对路径
[root@localhost ~]# touch file2
[root@localhost ~]# touch /root/file3   //touch + 绝对路径
命令: mkdir 创建目录

mkdir命令是用来创建目录的基础命令,用于创建一个或多个目录。它可以创建新的目录结构,有助于文件的组织和管理。

mkdir + 目录名

[root@localhost ~]# mkdir dir1   \\创建单个目录
[root@localhost ~]# mkdir dir2 dir3 dir4  \\一次创建多个目录
[root@localhost ~]# mkdir Dir{1..5}   \\一次性创建大量的连续的目录
[root@localhost ~]# ls
anaconda-ks.cfg  Dir1  Dir2  Dir3  Dir4  file1.txt  file3                 公共  视频  文档  音乐
dir1             dir2  dir3  dir4  Dir5  file2      initial-setup-ks.cfg  模板  图片  下载  桌面

mkdir -m +目录名

-m:设定权限模式(如755644)。这允许在创建目录的同时设定此目录权限。权限的相关知识会在后面详细介绍,这里纸介绍mkdir的用法

[root@localhost ~]# mkdir -m 755 mdir1
[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 1515 9月  17 18:24 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 10月 28 16:47 dir1
-rw-r--r--. 1 root root    0 10月 28 15:19 file1.txt
-rw-r--r--. 1 root root 1546 9月  18 09:49 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 10月 29 09:46 mdir1

mkdir -p + 父级目录/目录    在指定目录下创建新目录,当父级目录不存在时,会迭代创建目录

[root@localhost mdir1]# mkdir -p /root/mdir1/fdir1/dir2
[root@localhost ~]# mkdir -p /home/{qianfeng/{dir7,dir8},nizhan}
//在home下创建qingfeng和nizhan,在qianfeng下创建dir7和dir8

mkdir -v +目录  将创建过程显示出来

[root@localhost mdir1]# mkdir -v vdir1
mkdir: 已创建目录 "vdir1"
[root@localhost mdir1]# mkdir vdir2
[root@localhost mdir1]# mkdir -pv vdir2/vdir3/vidr4 \\ 选项参数可以联合使用来满足复杂要求
mkdir: 已创建目录 "vdir2/vdir3"
mkdir: 已创建目录 "vdir2/vdir3/vidr4"
[root@localhost mdir1]# 
命令: cp  复制文件或文件夹

        cp是copy的缩写,主要用于复制文件和目录,是 Linux系统中最常用的文件操作命令之一,可以将一个或者多个文件、目录复制到一个制定的文件或目录下,也可以同时复制多个文件到一个指定的目录中。

语法:

         cp [选项] 源文件 目标文件
         cp [选项] 源文件 目标目录
         cp [选项] -r 源目录 目标目录

用法1:将一个文件复制到一个不存在的文件
        相当于复制粘贴生成一个同内容的新文件(文件名、路径可不同)

        源文件只有一个,不添加任何参数,简单的文件复制。文件内容、权限、归属用户、用户组等等属性没有改变。atime、mtime、ctime 改变成执行命令的日期。

[root@localhost dir1]# cp cpfile1 /root/dir2/cpfile4
[root@localhost dir1]# cat cpfile1
ifdfdsf
fdfdsfdsf
hello linux

[root@localhost dir1]# cat /root/dir2/cpfile4
ifdfdsf
fdfdsfdsf
hello linux

[root@localhost dir1]# stat cpfile1
  文件:"cpfile1"
  大小:67              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:35256305    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2025-10-30 10:27:56.700651136 +0800
最近更改:2025-10-30 10:27:49.455526465 +0800
最近改动:2025-10-30 10:27:49.469526706 +0800
创建时间:-
[root@localhost dir1]# stat /root/dir2/cpfile4
  文件:"/root/dir2/cpfile4"
  大小:67              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:67406502    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2025-10-30 10:35:34.754532713 +0800
最近更改:2025-10-30 10:35:11.188127406 +0800
最近改动:2025-10-30 10:35:11.188127406 +0800
创建时间:-
[root@localhost dir1]# 

用法2:将一个文件复制到一个已经存在的文件

        相当于将源文件中的内容覆盖至目的地文件的内容中。
此时由于涉及到内容的覆盖所以cp默认解释为cp -i,既提醒用户是否覆盖

[root@localhost dir1]# vim cpfile1
[root@localhost dir1]# cp cpfile1 /root/dir2/cpfile4
cp:是否覆盖"/root/dir2/cpfile4"? y
[root@localhost dir1]# cat /root/dir2/cpfile4

hello linux
hello 月入过万
i am coming

[root@localhost dir1]# 

用法3:将一个文件复制到已存在的目录
        在目的地的文件夹下新建与原文件同名的文件,并将源文件中内容填充到新文件中

[root@localhost dir1]# cp cpfile1 /root/dir2
[root@localhost dir1]# ls /root/dir2
cpfile1  cpfile2  cpfile4
[root@localhost dir1]# cp cpfile1 /root/dir2
cp:是否覆盖"/root/dir2/cpfile1"? y
[root@localhost dir1]# ls /root/dir2
cpfile1  cpfile2  cpfile4
[root@localhost dir1]# 

用法4:对多个文件进行复制到一个目录中

        多个文件复制到已存在的目录,将这些文件复制到目的目录下,内容与原文件一致

不能将多个文件复制到一个文件上,只能复制到一个文件夹里

[root@localhost dir1]# cp cpfile1 cpfile2 cpfile3 /root/dir3
[root@localhost dir1]# ls /root/dir3
cpfile1  cpfile2  cpfile3
[root@localhost dir1]# 
[root@localhost dir1]# cp cpfile1 cpfile2 cpfile3 /root/dir77
cp: 目标"/root/dir77" 不是目录
[root@localhost dir1]# cp cpfile1 /root/dir77
[root@localhost dir1]# 

用法5:将目录复制到不存在同名文件的新目录下

将目录复制到不存在同名文件的路径中,会创建指定目录的同名目录,复制源目录中的所有文件到目的路径下。要将目录下的子目录和文件都复制过去,需要使用递归复制,-r

[root@localhost ~]# ls dir1
cpfile1  cpfile2  cpfile3
[root@localhost ~]# cp -r /root/dir1 /root/dir2
[root@localhost ~]# ls /root/dir2/dir1
cpfile1  cpfile2  cpfile3
[root@localhost ~]# 

用法6: cp -a 保留属性

        复制的时候将源文件的所有属性保留,链接、文件属性等。并复制指定目录下的所有内容,常用于复制目录。复制后的文件除了名字(或路径)、最近改动时间不同,其他属性都和源文件一模一样,是最完整的复制方式。cp -a命令用于创建源文件或目录的一个完美副本,力求在内容和元数据上与原文件没有任何区别。他是进行系统备份、目录迁移等任务时最常用且最可靠的复制命令。

[root@localhost dir1]# stat cpfile1
  文件:"cpfile1"
  大小:45              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:35256307    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2025-10-30 10:41:44.501891802 +0800
最近更改:2025-10-30 10:41:17.782432269 +0800
最近改动:2025-10-30 10:41:17.784432304 +0800
创建时间:-
[root@localhost dir1]# cp -a cpfile1 /root/dir2/cpfile44
[root@localhost dir1]# stat /root/dir2/cpfile44
  文件:"/root/dir2/cpfile44"
  大小:45              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:67406505    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2025-10-30 10:41:44.501891802 +0800
最近更改:2025-10-30 10:41:17.782432269 +0800
最近改动:2025-10-30 14:00:49.675097500 +0800
创建时间:-

用法7:cp -b 在覆盖前提示并备份

如果目的文件存在,会先询问是否要覆盖,并在覆盖时将原文件进行备份。备份文件名后面带~

[root@localhost dir1]# ls
cpfile1  cpfile2  cpfile3
[root@localhost dir1]# cp -b cpfile1 cpfile2
cp:是否覆盖"cpfile2"? y
[root@localhost dir1]# ls
cpfile1  cpfile2  cpfile2~  cpfile3

用法8: cp -d 复制符号链接

        当复制的文件是符号链接时,把目标文件也建立为符号链接,并指向与源文件指向相同。

通俗的讲就是复制链接文件,并保留原链接属性。

[root@centos7 app]#ll
lrwxrwxrwx. 1 root root    2 Dec  7 21:57 f1_softlink -> f1
-rw-r--r--. 2 root root   12 Dec 13 22:27 f2
-rw-r--r--. 2 root root   12 Dec 13 22:27 f2_hardlink
-rw-r--r--. 1 root root   22 Dec 14 22:36 f4
[root@centos7 app]#cp -d f1_softlink f4
cp: overwrite ‘f4’? y
[root@centos7 app]#ll
lrwxrwxrwx. 1 root root    2 Dec  7 21:57 f1_softlink -> f1
-rw-r--r--. 2 root root   12 Dec 13 22:27 f2
-rw-r--r--. 2 root root   12 Dec 13 22:27 f2_hardlink
lrwxrwxrwx. 1 root root    2 Dec 14 22:36 f4 -> f1

用法9: cp -f 强制复制

        强行复制文件或目录,不论目标文件或目录是否已存在。

        - f 强制覆盖,其实是先删除,再创建。任何家目录的文件可以删掉再覆盖。

用法10: cp -i  交互提示

其实cp就是cp -i的缩写

用法11: cp -l 创建硬链接

使用硬链接(两个文件数据和属性同步,索引号相同,但删除其中一个不会影响另外的文件)。
就是一个文件,两个名字,给原文件再起了另一个名字。

目的文件不能是已存在的,否则会保错

[root@centos7 app]#cp -l a c
[root@centos7 app]#ll
-rw-r--r--. 2 root root    0 Dec 14 22:54 a
-rw-r--r--. 2 root root    0 Dec 14 22:54 c
[root@centos7 app]#stat a
  File: ‘a’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 805h/2053d	Inode: 88          Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2022-12-14 22:54:11.429106109 +0800
Modify: 2022-12-14 22:54:11.429106109 +0800
Change: 2022-12-14 22:57:40.847116095 +0800
 Birth: -
[root@centos7 app]#stat c
  File: ‘c’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 805h/2053d	Inode: 88          Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2022-12-14 22:54:11.429106109 +0800
Modify: 2022-12-14 22:54:11.429106109 +0800
Change: 2022-12-14 22:57:40.847116095 +0800
 Birth: -

用法12:cp -L 复制链接源文件的内容

cp -L 链接文件 目标文件,真正复制的不是链接文件,而是链接文件所指向的文件的内容

[root@centos7 app]#cp -L f1_softlink zzzzzz
[root@centos7 app]#ll
-rw-r--r--. 1 root root   22 Dec 13 22:34 f1
lrwxrwxrwx. 1 root root    2 Dec  7 21:57 f1_softlink -> f1
-rw-r--r--. 1 root root   22 Dec 14 23:04 zzzzzz
[root@centos7 app]#cat f1          #原文件
word
1234
aaaaa
bbbbb
[root@centos7 app]#cat zzzzzz     #复制后的文件,内容与f1一样
word
1234
aaaaa
bbbbb

用法13: cp -p 保留权限和时间戳

保留了权限和时间戳,但不会递归复制目录,也不会特殊处理符号链接(会解引用)

[root@localhost dir1]# cp -p cpfile1 cpfile5
[root@localhost dir1]# stat cpfile1
  文件:"cpfile1"
  大小:45              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:35256307    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2025-10-30 10:41:44.501891802 +0800
最近更改:2025-10-30 10:41:17.782432269 +0800
最近改动:2025-10-30 10:41:17.784432304 +0800
创建时间:-
[root@localhost dir1]# stat cpfile5
  文件:"cpfile5"
  大小:45              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:35256309    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2025-10-30 10:41:44.501891802 +0800
最近更改:2025-10-30 10:41:17.782432269 +0800
最近改动:2025-10-30 15:47:39.654369656 +0800
创建时间:-

用法14: cp -s 创建软连接

        对源文件建立符号链接(软链接),不可对目录创建

[root@centos7 app]#cp -s a c
[root@centos7 app]#ll
total 52
-rw-r--r--. 1 root root    0 Dec 14 23:38 a
-rw-r--r--. 1 root root    0 Dec 14 23:38 b
lrwxrwxrwx. 1 root root    1 Dec 14 23:38 c -> a

用法15: cp -S 后缀

备份后缀符号

root@centos7 app]#cp -S a b 1234
[root@centos7 app]#ll
-rw-r--r--. 1 root root    0 Dec 14 23:41 1234
-rw-r--r--. 1 root root    0 Dec 14 23:38 a
-rw-r--r--. 1 root root    0 Dec 14 23:38 b

[root@centos7 app]#cp -S a b ~~~~~~~
[root@centos7 app]#ll
-rw-r--r--. 1 root root    0 Dec 14 23:43 ~~~~~~~
-rw-r--r--. 1 root root    0 Dec 14 23:41 1234
-rw-r--r--. 1 root root    0 Dec 14 23:38 a
-rw-r--r--. 1 root root    0 Dec 14 23:38 b

用法16: cp --attributes-only

保留文件属性,但不保留文件内容,相当于cp -a后再将文件内容删除

用法17: \cp  去掉提示

在使用cp命令复制文件时,有时候需要覆盖大量同名文件,需要不停地按Y来确定执行覆盖,所以使用\cp可以全部执行同意

[root@localhost dir1]# cp cpfile1 cpfile3
cp:是否覆盖"cpfile3"? y
[root@localhost dir1]# \cp cpfile1 cpfile3
[root@localhost dir1]# ls
cpfile1  cpfile2  cpfile2~  cpfile3  cpfile5
 命令:mv  移动文件或目录的路径

mv 【选项】 /路径/源文件  /目标目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值