你也想起飞嘛------Linux常用的命令和分析

你也想起飞嘛------Linux常用的命令和分析

前言:

​ 作为当今世界最受欢迎的开源操作系统之一的Linux系统,一直是各大厂商所津津乐道。也是我们这些运维小白入门必须要接触的一门系统。对于用惯了Windows操作系统的我们来说,首次接触到Linux系统肯定是一脸懵,因为windows系统我们就是桌面化操作,相对比较便捷,但是便利的同时,Windows系统所带来的稳定性,也是各大厂商对其敬而远之的理由,毕竟谁都不想在运行的同时,突然就蓝屏了。相信大家都有这样的困扰。但是Linux不存在,Linux作为开源系统,所具有的稳定性是Windows系统所不具备的。所以我们作为运维人员一定要认证的学习好Linux系统知识,打好基础。

​ 前面我也说了,Linux系统与Windows系统最大的不同是,Linux即包含图形界面,也包含字符界面。图形界面就是我们windows常用的鼠标点点点,而字符界面就是我们需要了解的linux常用的命令字符。

————了解命令之前我们必须知道什么是Shell

***Shell***是在Linux系统中运行的一种特殊程序,在用户和内核之间充当一名“翻译官”的角色。问题来了,我们为什么需要“翻译官”?首先,我们知道的是,程序所能够明白的指令是“1”和“0”,但是我们输入的指令包含数字,英文,甚至是中文。那么程序能够理解么??显然不能,为此我们需要一名“翻译官”来充当用户与程序之间沟通桥梁。这就是Shell。而且每当用户在Linux系统登录时,会自动加载一个Shell程序。LInux系统默认的Shell程序我们称为Bash。

与Windows相比,Shell可以被理解为一种系统程序。那么我们也会知道,我们还可以从外部安装程序。我们就可以理解Linux的内部程序与外部程序的区别了。

内部命令外部命令
集成与shell解释器程序内部的一些特殊指令,也成为了内建指令(built-in)Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分属于Shell解释器程序之外的命令
没有单独对应的系统文件每个外部命令对应了系统中的一个文件
自动载入内存,可以直接使用必须知道器对应的文件位置,有Shell加载后才能执行

***Linux***命令程序有在开发工程中,遵循一个固有的格式,这个需要我们注意。通常的命令行使用格式包含命令字、选项和参数等。

***命令字***是整条命令的关键部分,用来指明这条命令的作用是什么,也是唯一确定的一条命令。

***选项***分为两种,一种是短格式选项:用“-”符号进行引导,另一种长格式选项:用“–”符号来引导。

***参数***命令字的处理对象,就是命令对什么进行处理,可以是文件名、目录(路径)名或者用户名等,可是从0到多个对象。

了解完命令基础之后,让我们开始详细解读命令吧!

首先,我们先了解下将会用到的功能以及组合

Tab键:自动补齐(妈妈再也不用担心我们记不住命令!)

反斜杠“\”:强制换行

Ctrl+U组合键:清空至行首(记住!!是你光标前到行首!)

Ctrl+K组合键:清空至尾行(这个清除的包括你选定的光标处,千万要注意!)

Ctrl+L组合键:清屏

Ctrl+C组合键:取消本次命令编辑

Ctrl+J组合键:回车(回车键无法使用的时候使用)

Ctrl+H组合键:删除光标前一格(可以替代键盘的删除键)

在命令符里面键入“history”,表示当历史命令。

col - b :对字符进行输出

在Linux系统中,">"表示覆盖原文件内容(文件的日期也会自动更新),“>>”表示追加内容(会另起一行,文件的日期也会自动更新)。

举个栗子:

1、1 将history命令执行的结果保存到history.log文件中

[root@zhu opt]# history > history.log  ##history.log覆盖到history。
[root@zhu opt]# cat history.log        ##查看文件。

注意:
使用 “>”执行命令时,每次都会新生成一个 ">"后面的文件,将之前生成的文件替换掉(文件创建时间也会跟着改变)。

PWD命令:显示用户当前所在的工作目录位置。

接下来,我们开始具体讲解字符命令:
1、cd命令----切换工作目录

①cd /xxx ###进入XXX目录

②cd … ###回到上层目录

③cd ~ ###表示回到自己的主目录,对于 root 用户,其主目录为 /root

④cd - ###表示回到刚刚的那个目录

[root@zhu ~]# cd /opt  ##进入opt目录
[root@zhu opt]# pwd    ##查看当前工作目录
/opt
[root@zhu opt]# cd ~  ##回到主目录
[root@zhu ~]# pwd     ##查看工作目录
/root

我们要了解一个理论,不管在Windows系统或者是Linux系统,都明确的区分了绝对路径和相对路径,那么怎么区分呢?我们来认识下:

***绝对路径:***例如,根目录(/)下有目录usr,usr目录下有子目录bin,bin目录下有文件chsh,则chsh文件的绝对路径就是:/usr/bin/chsh

***相对路径:***相对当前所在路径的位置,例如当前所在的位置为/usr,也就是在根目录的usr子目录下,则chsh文件相对当前位置的路径为:bin/chsh

2、ls命令----列表(list)显示目标内容

-a ###显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)

-c ###按文件修改时间排序

-i ###输出每个文件的inode(索引信息)号

-l ###除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出

-r ###将文件以相反次序显示(原定依英文字母次序)

-R ###若目录下有文件,则以下之文件亦皆依序列出

[root@zhu ~]# ls -a  ###显示所有文件
.  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  .config  .cshrc  .dbus  initial-setup-ks.cfg  .tcshrc  test
[root@zhu ~]# ls -i   ###显示文件索引号
537160770 anaconda-ks.cfg  537160792 initial-setup-ks.cfg  268499557 test
3、du----统计目录及文件空间占用情况

格式-----------du[选项] [文件或目录]

常用的选项包括-a和-sh,-a用来统计磁盘空间占用的情况,-sh知识用来查看某一条文件大小。

[root@zhu ~]# du -a   ###统计磁盘空间的占用情况
4       ./.bash_logout
4       ./.bash_profile
4       ./.bashrc
4       ./.cshrc
4       ./.tcshrc
4       ./anaconda-ks.cfg
4       ./.cache/dconf/user
4       ./.cache/dconf
4       ./.cache/abrt/lastnotification
4       ./.cache/abrt
8       ./.cache
4       ./.dbus/session-bus/ea47c73ce5bd40b19e8c53b99bab6c62-9
4       ./.dbus/session-bus
4       ./.dbus
0       ./.config/ibus/bus
0       ./.config/ibus
0       ./.config/abrt
0       ./.config
4       ./initial-setup-ks.cfg
4       ./.bash_history
0       ./test
44      .
[root@zhu ~]# du -sh ./.bash_logout   ###统计bash_logout这条文件占用的大小
4.0K    ./.bash_logout
4、mkdir----用于创建新目录

常用格式mkdir -p[目录名称],选项-p表示为确保目录名称存在,不存在的就建一个。

命令格式

mkdir -p 新建目录的名称
[root@zhu ~]# mkdir -p test  ###在目录下创建一个名为tset的的子目录
[root@zhu ~]# cd test   ###进入子目录
[root@zhu test]# pwd   ###查看工作目录
/root/test
[root@zhu ~]# mkdir -p 33/22/11   ###在目录下创建一个名为33的子目录,并且连续在目录下创建22/11的子目录
[root@zhu ~]# cd 33  ###进入33目录
[root@zhu 33]# pwd   ###查看工作目录
/root/33
[root@zhu 33]#
5、ln----创建链接文件

为文件或目录建立链接文件,类似于Windows系统的快捷方式。

在这边我们需要了解一个知识点,就是上文中提到的***inode***(索引信息)。Inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是 Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。 inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。block是用来存储实际数据用的,例如:照片、视频等普通文件数据。而inode就是用来存储这些数据属性信息的(也就是ls -l 的结果),inode包含的属性信息包括文件大小、属主、归属的用户组、读写权限、文件类型、修改时间,还包含指向文件实体的指针的功能(inode节点–block的对应关系)等,但是,inode唯独不包含文件名。并且,当我们通过命令删除文件时,我们只是把文件名从磁盘中删除了,剩下的索引以及数据库都没有删除,想要彻底删除,我们只能通过新的文件将其覆盖,才能保证原信息已经被擦去。

那么这边我们就分析了-------ln命令可以创建2种链接,一种称为软链接,一种称为硬链接,它们的区别就在于,在软链接命令下,当我们删除了源目标文件的名称之后,软链接这条命令就已经失效。但是硬链接不会,因为硬链接连接的是源文件的索引号。

命令格式

ln -s 源文件或者目录 目标文件或者目录 ##软链接命令可以对文件创建也可以对目录创建
ln 源文件 目标文件  ##硬链接只能对文件创建

举个栗子:

[root@zhu ~]# touch 11.TXT   ##创建一个名为11.TXT的文件
[root@zhu ~]# ln -s 11.TXT AA.TXT  ##对11.TXT创建一个名为AA.TXT的软链接
[root@zhu ~]# ln 11.TXT BB.TXT  ##对11.TXT创建一个名为BB.TXT的硬链接
[root@zhu ~]# ll  ##显示目录信息
total 16
-rw-r--r--. 1 root root    0 Jul  8 19:12 11
-rw-r--r--. 2 root root   10 Jul  8 19:13 11.TXT  
drwxr-xr-x. 3 root root   16 Jul  8 18:46 33
lrwxrwxrwx. 1 root root    6 Jul  8 19:13 AA.TXT -> 11.TXT  ##显示11.TXT的软链接
-rw-------. 1 root root 2118 Jul  7 18:10 anaconda-ks.cfg
-rw-r--r--. 2 root root   10 Jul  8 19:13 BB.TXT  ##显示11.TXT的硬链接
-rw-r--r--. 1 root root 2166 Jul  7 18:11 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 16:54 test
[root@zhu ~]# rm -f 11.TXT  ##删除11.TXT的文件名称
[root@zhu ~]# ll
total 12
-rw-r--r--. 1 root root    0 Jul  8 19:12 11
drwxr-xr-x. 3 root root   16 Jul  8 18:46 33
lrwxrwxrwx. 1 root root    6 Jul  8 19:13 AA.TXT -> 11.TXT  ##注意此时这条命令一定是闪烁的说明这条民无法实现
-rw-------. 1 root root 2118 Jul  7 18:10 anaconda-ks.cfg
-rw-r--r--. 1 root root   10 Jul  8 19:13 BB.TXT  ##正常显示
-rw-r--r--. 1 root root 2166 Jul  7 18:11 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 16:54 test
[root@zhu ~]# cat BB.TXT  ##可以正常读取
fdkskjlfj
[root@zhu ~]# cat AA.TXT  ##无法正常读取
cat: AA.TXT: No such file or directory
[root@zhu ~]# 
6、cp----复制文件或目录

将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录。

格式为:cp[选项] 源文件或目录 目标文件或目录

常用选项:

cp -f ##覆盖目标同名文件或目录时,不进行提醒直接覆盖
cp -i ##覆盖目标同名文件或目录时提醒用户确认
cp -p ##复制时保持源文件的权限,属主及时间标记等属性不变
cp -r ##复制目录时必须使用此选项,表示递归复制所有文件及子目录
7、rm----删除文件或目录(谨慎操作!!!)

格式及选项

rm -f ##即使原档案属性设为唯读,亦直接删除,无需逐一确认。
rm -i ##删除前逐一询问确认。
rm -r ##将目录及以下之档案亦逐一删除。

实际操作

[root@zhu ~]# cat 11.TXT ##查看11.TTX文件
fsald
[root@zhu ~]# rm -i 11.TXT  ##输出删除命令
rm: remove regular file ‘11.TXT’? y  ##提示是否删除?选择确认Y
[root@zhu ~]# cat 11.TXT  ##查看命令
cat: 11.TXT: No such file or directory  ##无法找到该文件
[root@zhu ~]# 
8、mv----移动文件或者目录

这条命令的作用是将指定的文件或目录转移位置,如果目标位置与源位置相同,则相当于执行重命名操作。

举例:

mv 文件名 文件名  ##将源文件名改为目标文件名
mv 文件名 目录名  ##将文件移动到目标目录
mv 目录名 目录名  ##	目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名
mv 目录名 文件名  ##这条命令是错误命令

注意:我们重命名之后的索引号跟数据是不会发生改变的!

9、which----查找命令文件存放目录。

这个搜索范围由环境变量(PATH)决定(命令为:echo $PATH)

格式

[root@zhu /]# which pwd
/bin/pwd
[root@zhu /]# which adduser
/sbin/adduser     ##不用的环境变量
[root@zhu /]# which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
        /bin/alias
        /usr/bin/which    ##有两个 which ,其中一个是 alias 这就是所谓的『命令别名』,意思是输入 which 会等於后面接的那串命令!
10、find----查找文件或者目录

采用递归的方式,根据目标的名称、类型、大小等不同属性进行精细查找。

格式:find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

查找条件:

-name  ##按名称查找,根据目标文件的名称进行查找,允许使用“*”及“?”通配符
-size  ##按文件大小查找,根据目标文件的大小进行查找,一般使用“+”“—”号设置超过或小于指定的大小作为查找条件常用的容量单位包括           kB(注意k是小写!)、MB、GB
-usr   ##按文件属主属主查找,根据文件是否属于目标用户进行查找
-type  ##根据文件的类型进行查找,文件类型包括普通文件(f),目录(d)、块设备文件(b)、字符设备文件(c)等

以上就是Linux系统中常用的简单命令,记忆,练习,是学习Linux的第一步,大家千万别吝啬使用电脑输入命令,只有多次的训练才能加深肌肉记忆,熟悉命令,走遍天下都不怕,让我们一起加油!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值