首页 > 系统相关 >Linux基础入门

Linux基础入门

时间:2022-11-20 04:22:16浏览次数:41  
标签:入门 .. admin 基础 echo 命令 Linux txt root

Linux基础入门

1. Linux 基础概念

1.1 用户类型

  1. root 用户
    一个特殊的管理帐户,也被称为超级用户

    root已接近完整的系统控制
    对系统损害几乎有无限的能力
    除非必要,不要登录为 root

  2. 普通( 非特权 )用户
    权限有限
    造成损害的能力比较有限

1.2 终端 Terminal

  1. 控制台终端: /dev/console
  2. 串行终端:/dev/ttyS#
  3. 虚拟终端:tty:teletypewriters, /dev/tty#,tty 可有n个,Ctrl+Alt+F#
  4. 伪终端:pty:pseudo-tty , /dev/pts/# 如:SSH远程连接
  5. 图形终端:startx, xwindows

1.2.1 查看当前的终端设备

  1. w可查看当前服务器所有登录的终端设备

    root@admin:~# w
     17:50:08 up 10 min,  2 users,  load average: 1.02, 0.63, 0.34
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.137.1    17:40    0.00s  0.02s  0.00s w
    root     pts/1    192.168.137.1    17:49   15.00s  0.01s  0.01s -bash
    
  2. who 也可查看当前服务器所有登录的终端设备

    root@admin:~# who
    root     pts/0        2022-11-19 17:40 (192.168.137.1)
    root     pts/1        2022-11-19 17:49 (192.168.137.1)
    
  3. tty可查看本机登录的终端设备信息

    root@admin:~# tty
    /dev/pts/0
    

1.3 Linux 命令

输入命令后回车,提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来

Linux可执行的命令分为三种:

  • alias命令:对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行
  • 内部命令:由shell自带的,而且通过某命令形式提供, ,用户登录后自动加载并常驻内存中
  • 外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行完毕后从内存中删除

1.3.1 Linux命令执行的优先级

系统三种命令的优先级:

alias命令 > 内部命令 > 外部命令

当用户通过CLI输入一条指令时,系统环境会优先判断该指令是否为alias指令;若不是,则判断是否为内部指令;若仍不是内部指令,则为外部指令并执行。

1.3.2 判断内部指令与外部指令

指令: type

root@admin:~# type -a echo
echo is a shell builtin          #内部指令
echo is /usr/bin/echo            #外部指令,以及可执行程序文件的位置
echo is /bin/echo                #外部指令,以及可执行程序文件的位置

出于系统冗余性的考虑,有些指令即是内部指令也是外部指令。

1.3.3 内部命令相关

  1. 查看全部内部命令

    help

  2. 内部命令的管理

    • enable <CMD> 启用内部命令
    • enable –n <CMD> 禁用内部命令
    • enable –n 查看所有禁用的内部命令

1.3.3 外部指令相关

  1. 查看外部命令路径

    which -a <CMD> --skip-alias

    whereis <CMD>

  2. Hash缓存表

    系统初始hash表为空

    当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的
    路径记录到hash表中。

    当再次使用该命令时,shell解释器首先会查看hash表,存在则将其执行;如果不存在,将会去PATH路径下寻找。

    利用hash缓存表可大大提高命令的调用速率

    hash 命令常见用法:

    • hash 显示hash缓存
    • hash -l 显示hash缓存,可作为输入使用
    • hash -p path name 将命令全路径path起别名为name
    • hash -t name 打印缓存中name的路径
    • hash -d name 清除name缓存
    • hash -r 清除缓存

1.3.4 Alias命令

  1. 显示当前shell进程所有可用的命令别名

    alias

  2. 定义别名alias,其相当于执行命令VALUE:

    alias NAME='VALUE'

    例如:

    root@centos8 ~]#alias scandisk='echo - - - >
    /sys/class/scsi_host/host0/scan;echo - - - >
    /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'
    
  3. 撤销别名unalias

    unalias name [name ...]
    
    unalias -a   #撤销所有别名
    
    

注意:在命令行中定义的别名,仅对当前shell进程有效

如果想永久有效,要定义在配置文件中

  • 仅对当前用户:~/.bashrc
  • 对所有用户有效:/etc/bashrc

编辑配置给出的新配置不会立即生效,bash进程重新读取配置文件

source /path/to/config_file

OR

. /path/to/config_file

如果别名同原命令同名,如果要执行原命令,可使用以下方法:

\ALIASNAME
“ALIASNAME”
‘ALIASNAME’
command ALIASNAME
/path/commmand #只适用于外部命令

1.4 命令行扩展和括号扩展

1.4.1 命令行扩展:`` 和 $()

把一个命令的输出打印给另一个命令的参数,放在``中的一定是有输出信息的命令

$(COMMAND)

Command

例如:

[root@host1 ~]# cat 1.txt 
a
b
c
[root@host1 ~]# echo `cat 1.txt`
a b c
[root@host1 ~]# echo $(cat 1.txt)
a b c

双引号""、单引号''和反向单引号``的比较:

单引号:强引用,六亲不认,变量和命令都不识别,都当成了普通的字符串,"最傻"

双引号:弱引用,不能识别命令,可以识别变量,"半傻不精"

反向单引号:里面的内容必须是能执行的命令并且有输出信息,变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的命令继续,"最聪明"

例如:

root@admin:~# echo $HOSTNAME
admin

root@admin:~# echo "echo $HOSTNAME"
echo admin

root@admin:~# echo 'echo $HOSTNAME'
echo $HOSTNAME

root@admin:~# echo `echo $HOSTNAME`
admin

root@admin:~# echo "This system's name is $(hostname)"
This system's name is admin

root@admin:~# echo "I am `whoami`"
I am root

root@admin:~# touch $(date +%F).log
root@admin:~# ls -l *.log
-rw-r--r-- 1 root root 0 Nov 20 03:15 2022-11-20.log

root@admin:~# touch `date +%F`.txt
root@admin:~# ls -l *.txt
-rw-r--r-- 1 root root 0 Nov 20 03:16 2022-11-20.txt

root@admin:~# touch `hostname`-`date +%F`.log
root@admin:~# ls -l *.log
-rw-r--r-- 1 root root 0 Nov 20 03:16 admin-2022-11-20.log

1.4.2 括号扩展 {}

{} 可以实现打印重复字符串的简化形式

{元素1,元素2,元素3 ······} 表示n个元素的集合

root@admin:~# echo {1,3,4}
1 3 4
root@admin:~# echo {1,3,4,5}
1 3 4 5

{元素1..元素2..元素3} 表示从元素1到元素2范围中的所有元素,步长为元素3

root@admin:~# echo {000..20..2}
000 002 004 006 008 010 012 014 016 018 020
root@admin:~# echo {1..10}
1 2 3 4 5 6 7 8 9 10
root@admin:~# echo {1..10..2}
1 3 5 7 9
root@admin:~/test# echo {A..Z..2}
A C E G I K M O Q S U W Y

批量生成文件:

root@admin:~/test# echo {A..Z..2}
A C E G I K M O Q S U W Y
root@admin:~/test# echo {1..10..2}
1 3 5 7 9
root@admin:~/test# touch {A..Z..2}-{1..10..2}.txt
root@admin:~/test# ls
A-1.txt  C-1.txt  E-1.txt  G-1.txt  I-1.txt  K-1.txt  M-1.txt  O-1.txt  Q-1.txt  S-1.txt  U-1.txt  W-1.txt  Y-1.txt
A-3.txt  C-3.txt  E-3.txt  G-3.txt  I-3.txt  K-3.txt  M-3.txt  O-3.txt  Q-3.txt  S-3.txt  U-3.txt  W-3.txt  Y-3.txt
A-5.txt  C-5.txt  E-5.txt  G-5.txt  I-5.txt  K-5.txt  M-5.txt  O-5.txt  Q-5.txt  S-5.txt  U-5.txt  W-5.txt  Y-5.txt
A-7.txt  C-7.txt  E-7.txt  G-7.txt  I-7.txt  K-7.txt  M-7.txt  O-7.txt  Q-7.txt  S-7.txt  U-7.txt  W-7.txt  Y-7.txt
A-9.txt  C-9.txt  E-9.txt  G-9.txt  I-9.txt  K-9.txt  M-9.txt  O-9.txt  Q-9.txt  S-9.txt  U-9.txt  W-9.txt  Y-9.txt

关闭和启用{}的扩展功能

root@admin:~# echo $-
himBHs
root@admin:~# echo {1..10}
1 2 3 4 5 6 7 8 9 10

#禁用{}扩展功能
root@admin:~# set +B
root@admin:~# echo $-
himHs
root@admin:~# echo {1..10}
{1..10}

#启用{}扩展功能
root@admin:~# set -B
root@admin:~# echo $-
himBHs
root@admin:~# echo {1..10}
1 2 3 4 5 6 7 8 9 10

1.5 Linux 常用快捷键

  • 清屏:ctrl + lclear
  • 终止当前命令:ctrl + c
  • 光标移至命令行首: ctrl + a
  • 光标移至命令行尾: ctrl + e
  • 从光标处删除至命令行首:ctrl + u
  • 从光标处删除至命令行尾:ctrl + k
  • 从光标处向左删除至单词首:ctrl + w
  • 从光标处向右删除至单词尾:alt + d
  • 删除光标处的一个字符:ctrl + d

标签:入门,..,admin,基础,echo,命令,Linux,txt,root
From: https://www.cnblogs.com/Swollen/p/16907824.html

相关文章

  • 《HTML基础系列》前端工程师HTML常识知识(必须背诵)
     1.网站和网页 网站是HTML构成的集合,而网页则是网站中的单个HTML文件,网页是构成网站的基本元素。后缀为:.html 2.HTML HTML指的是超文本标记语言,因为简称为:Hy......
  • QT入门之创建新窗口
    1.在QT里面新建1个工程,命名01QT,先生成个空的项目。 2 新建1个源文件C++Source文件,命名main.cpp.main 方法里面这样写//主应用程序QApplicationapp(argc,argv);......
  • Linux一些东西
    一、基础知识1.1Linux系统的文件结构/bin       二进制文件,系统常规命令/boot      系统启动分区,系统启动时读取的文件/dev       设备文件/......
  • Git基础.TWO(一些简单的操作命令)
    前篇我们讲解了如何创建一个简单的git项目:https://www.cnblogs.com/Ayako/p/16905560.html接下来我们来了解一下git的一些简单操作命令1.了解git的三个区在使用命令操作......
  • django--基础知识
    --安装pipinstalldjango--创建一个django项目django-adminstartproject项目名--创建一个应用pythonmanage.pystartappapp01--启动django项目pythonmange.py......
  • Linux基础第一张(第二部分)
    一、Linux命令的执行过程当你执行命令时,首先判断是不是别名,如果是,直接执行。判断是否是内部命令,是,直接执行 ;不是,去看hash表。如果hash表有,直接执行;有但找不到,去外部......
  • Linux大神必备-文本编辑器
    我们在 Linux 上不缺乏非常现代化的编辑软件,但是它们都是基于GUI(图形界面)的编辑软件。正如你所了解的:Linux真正的魅力在于命令行,当你正在用命令行工作时,你就需要一......
  • MAUI新生1.4-XAML语法基础:x命名空间xmlns:x
    x命名空间,又叫XAML命名空间,作用于XAML的编译过程。我们知道,XAML代码,最终通过XAML编译器,编译为中间代码IL,并与后台C#代码的编译结果合并。而在编译的过程中,经常需要告诉编译......
  • 【Excel~基础】解决msoffice高低版本兼容问题
    问题描述现今的office高版本可以兼容低版本文件,例如office2016可以兼容2010,甚至是2003版本的excel文件,但低版本却无法打开高版本的excel文件。例如Excel2016格式的数......
  • django4基础
    #开始步骤pipinstalldjangodjango-adminstartprojectmysitepythonmanage.pyrunserver8000打开浏览器访问127.0.0.1:8000#新增url#urls.pyfromdjango.......