Linux学习

Linux分类:

GNU/Linux Debian Ubuntu Minix等

访问命令行

Linux的基本框架

Linux Kernel : 内核,在开机的时候是需要加载到内存中的。

如果内存占用大,速度就慢。

对于Linux而言,内核的设计方式是以模块的方式来进行,除去必须要的功能之外,对于某些特定的功能是你用到的时候才会去加载的,例如:驱动 (Ismod可以查询):

lsmod
lsmod | grep KVM  #截取KVM

KVM (Kernel-based Virtual Machine):基于内核的虛拟化技术,当你把CPU的虛拟化功能启动之后,KVM所对应的内核模块就会被加载。

[rootalocalhost ~]# lsmod | grep kvm
kvm_intel 245760 0
kvm 745472 1 kvm_intel
irqbypass 16384 1 kvm

Shell:安全壳

作用:保护内核(Kernel)及人机交互

类型

[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

Tips: BASH SH都是Shell类型的一种!
常见的Shell是BASH:如RHEL Fedora CentOs等.

Shell Script (Shell脚本):

结合Shell的功能,以及结构化语句(循环、判断、分支等)所写的程序。

GNU

GNU (GNU is Not Unix)是一个自由的操作系统,其内容软件完全以GPL (GNU通用公共许可证,GNU General Public License) 方式发布。这个操作系统是GNU计划的主要目标,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。

GNU:软件和内核为一体的计划。
软件:GCC编译器

内核:操作系统版本
Linus Torvalds开发了一个内核-Linux
(GNU/Linux):才是一个完整的操作系统!

Linux命令行

BASH SHELL

如果以交互方式使用shell,它在等待用户输入命令时显示一个字符串。这称为shell提示符。普通用户启动shell 时,默认提示符的结星是$字符,如下所示。

[user@host ~]$

这意味者,你不管通过什么样的方式,连接到你的操作系统,首先你就会触发一个Shell程序。
命令行的功能:就是Shell程序提供的一个基于文本的界面。

命令提示符

[root@localhost ~]#

提示符:开源于PS1的变量(特点:可变)

[root@localhost ~]echo $PS1
[\u@\h \ W]\$

默认的PS1变量的含义:

[\u (当前登录的用户,如root) @\h(主机名) \ w(当前工作目录)]$(提示符)

提示符:$ 普通用户

​ #root

命令:文件(可被执行)

root :当前登陆系统的用户!

@:在(用户在某台主机上)

localhost :主机名

~:当前所在的目录(工作目录)

#:root 用户登陆

$:普通用户登陆

两者出现时,要输入命令。


命令

命令:就是一个文件,就是一个可以被执行的文件,就像在windows 当中的.bat .exe或.com,执行一个命令就是去执行一个文件!当你执行一个命令,就是去找到,这个命令所对应的文件!

PATH变量可以找到命令所对应的文件

[root@localhost ~]# echo $PATH

如果命令不存在:

rootalocalhost ~]# 123
bash: 123: command not found...
[rootqlocalhost ~]# mysql
bash: mysql: command not found.

当你去执行一个命令的时候,它会去PATH变量下找和命令同名的文件!

手动添加命令到PATH中

所以针对于自己编译软件的时候,如果你想来执行他,,你就把这个可执行文件所在的目录补充到PATH变量中

将mysql所在路径/opt添加到$PATH中:

[rootalocalhost ~]#mysql
bash: mysql: command not found...
[rootalocalhost ~]# vim /opt/mysql
[root@localhost ~]# chmod +x /opt/mysql
[root@localhost ~]# mysql
bash: mysql: command not found...
[root@localhost ~]# PATH=$PATH:/opt
[rootalocalhost ~]# mysgl
This is my mysql software.
[rootalocalhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt

mysql的内容:

#!/bin/bash

echo "This is mysql software"

命令的组成部分

  • 命令对应的文件
  • 选项:用来控制命令的输出,执行方式
  • 参数:命令的操作对象
[root@www ~]# cat /opt/mysql
#!/bin/bash
#echo
"This is my mysql software"
if ["$1"== 1 ]; then
        echo 1
fi
if [ "$1"== 2]; then
        echo 2
fi
[rootalocalhost ~]# mysql 1
1
[rootalocalhost~]# mysql 2
2

小结

  • 命令本身就决定你要什么事情。
  • 参数决定了对谁做操作,例如:rm /tmp/test rm -rf /*
  • 选项会影响你的操作方式。

例子:top 查看系统负载,你多久查看一次(频率),统计的次数等。

[rootalocalhost ~]# top -n 2 -d 1
top - 09:59:14 up 2:14, 2 users, load average: 0.02, 0.02
Tasks: 268 total, 1 running, 266 sleeping, 1 stopped,
%Cpu(s): 0.0 us, 0.5 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 h
MiB Mem: 3758.6 total, 2644.4 free, 679.2 used, 4
MiB Swap: 4048.0 total 4048.0 free, 0.0 used, 28

对于选项,如果是一个字母,前面带-;如果是单词,则前面带–。通常要知道命令其用法,可以在后面加–help查阅。

-l     use a long listing format
-L   --dereference     when showing file information for a symbolic

系统登录

对于服务器,都有带外远程控制口,例如:
Dell: iDRAC 华为:iBMC HP: iLo
IBM: iLOM

本地登录(直接接上键盘、鼠标及显示器)

图形界面:

文本界面:

TTY:文本终端直接登录的标识

alt+FN来切换 终端
alt+ (Fn) +(F1-6)

没装图形化界面的时候,启动就是一个以文本终端的方式启动的。

默认情况下,是以图形化界面启动,在图形化的情况下,切換到文本终端
Ctrl+Alt+ (Fn) +F2
从F2-F6 都是文本模式(命令行)
F1 是图形化的

从图形化临时的切换到文本界面:

Ctrl+Alt+ (Fn) +F2-F6

又想切换图形化:Alt+(Fn)+F1

默认启动目标

[rootqlocalhost ~]# systemctl get-default
graphical.target

永久切换:

[root@localhost ~]# systemctl set-default multi-user.target
Removed /etc/systemd/system/default. target.
Created symlink /etc/systemd/system/default. target → /usr/lib/systemd/system/multi-user.target

临时切换:

图形→文本:

[rootalocathost ~]# systemctl isolate multi-user. target

文本→图形:

[rootqlocalhost ~]# systemctl isolate graphical. target

远程登录:

大部分的工作场景

  • 从Windows连接到Linux:需要工具辅助,例如:XManager (XShell厲于此类)SecureCRT PuTTY
  • 从MAC连接到Linux:打开终端 (Terminal)
  • 从Linux连接Linux:打开终端 (Terminal)

远程登录格式:ssh 命令
ssh root(目标服务器的用户名)@192.168.100.100(目标主机的IP地址或者FQDN),输入的Yes,代表要接受目标服务器的SSH公钥,最后输入目标服务器用户的密码,即可登录。

lsof -i:22 #可以查看当前连接情况

注销

使用完 shell 并想退出时,可以从几种方法中选择一种结束会话。

  • 输入exit命令来终止当前的shell 会话。
  • 可以通过按ctr1+D 来结束会话。

使用Bash Shell执行命令

Shell命令的组成部分:命令选项参数(对象)
PS1变量
PATH变量

使用Bash执行命令:

  • 命令输入完成,按下Enter键

  • ;(分号):当第一条命令执行完成,执行第二条命令
    此为顺序执行,不在乎第一条是否实行成功。

  • ||(或):只有当你第一条命令执行失败的时候,才会去执行第二条命令

  • &&(与):只有当你第一条命令执行成功的时候,才会去执行第二条命令

    ; || &&连接多个命令的时候,要能够区分他们的区别。

  • 如果你的命令比较长,那么你可以后使用\来做分隔

关于命令执行的快捷键

TAB命令补全

前提:已经安装了bash-completion的包。

[root@localhost test]# rpm -qa | grep bash-completion
bash-completion-2.7-5.el8.noarch

在最小化安装 (Minimal Install))的时候,此包并没有被安装。
使用方法:

  • 针对命令
    TAB按一下:你输入的关键字能唯一确定一个命令的时候有效。
    TAB按两下:如果你的关键字不能唯一识别一个命令,就会把所有与该关键字有关的命令都会显示.

  • 针对命令选项(如nmcli)
    可以在一个完整命令的任何位置都可以使用TAB。

  • 不全文件或者目录名字

命令快捷键

命令行编辑实用快捷键

快捷键描述
Ctrl + A跳到命令行的开头。
Ctrl + E跳到命令行的未尾。
Ctrl + U将光标处到命令行开头的内容清除。
Ctrl + K将光标处到命令行末尾的内容清除。
Ctrl + ←跳到命令行中前一字的开头。
Ctrl + →跳到命令行中下一字的末尾。
Ctrl + R在历史记录列表中搜素某一模式的命令。

还有其他几个命令行编辑命令可用,但这些是对新用户最有用的命令。其他命令可以在 bash(1)

Ctrl + R

1)关键字:你曾经执行过的命令中的某个关键字,一般都是输入命令。
2)查找历史记录(你曾经执行过的操作) 中包含这个关键字的命令
3) 找到正确的命令之后,按下Enter键。

历史记录

Linux可以记录你执行过的操作! 默认情况下是记录最近的1000条!
命令:history。还可以怎么查;

!+命令序号:就是将命令序号所在的历史命令重新执行一次。

history命令

“history”命令就是历史记录。它显示了在终端中所执行过的所有命令的历史。

history //显示终端执行过的命令

history //显示最近10条终端执行过的命令

Ctrl+r //搜索已经执行过的命令,它可以你写命令时自动补全

修改history命令显示属性

vi ~/.bash_profile

history的历史命令保存在~/.bash_history 文件中.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值