首页 > 系统相关 >Linux基础

Linux基础

时间:2024-03-27 19:13:06浏览次数:28  
标签:bin ... shell 基础 usr Linux root localhost

Linux前言

linux的哲学思想

优点,优势

  1. 一切都是一个文件。容易看(包括硬件,文本,二进制,源代码)
  2. 系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
  3. 当遇到复杂任务,通过不同功能用途的程序组合起来完成。 轻量级,一台服务 dhcp ip 数据库服务 网页
  4. 避免令人困惑的用户界面就是没有复杂的图形界面。
  5. 不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型

shell

shell的定义

shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。

用户使用应用程序发布指令比如 (使用浏览器访问网页)

shell去通知操作系统需要进行什么样的操作(相当于解释层)

内核相当于操作系统去指挥硬件

硬件才能工作,否则无法交互。

不同的shell环境

bash是linux里面默认的shell程序位于/bin/bash csh ksh 语言不同比如中文英文都是交流的语言

显示当前shell

[root@localhost ~]# echo $SHELL
/bin/bash

显示当前系统所有的shell

[root@localhost ~]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

切换shell环境

[root@localhost ~]# sh
sh-4.2# csh
[root@localhost ~]# tcsh
[root@localhost ~]# bash
[root@localhost ~]#

查看使用过的shell环境

[root@localhost ~]# pstree
systemd─ ··++·· -sshd───sshd───bash───sh───csh───tcsh───bash───pstree

内、外部命令

shell 分为内部命令 和外部命令,一般先执行内部命令,hash 再执行外部命令(别名最大)

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

help命令可以查看内部命令

[root@localhost ~]# help
GNU bash, 版本 4.2.46(2)-release (x86_64-redhat-linux-gnu)
这些 shell 命令是内部定义的。请输入 `help' 以获取一个列表.
输入 `help 名称' 以得到有关函数`名称'的更多信息.
使用 `info bash' 来获得关于 shell 的更多一般性信息
使用 `man -k' 或 `info' 来获取不在列表中的命令的更多信息.

名称旁边的星号 (*) 意味着该命令被禁用.

 job_spec [&]                                  history [-c] [-d 偏移量] [n] 或 histor>
 (( 表达式 ))                               if 命令; then 命令; [ elif 命令; the>
 . 文件名 [参数]                          jobs [-lnprs] [任务声明 ...] 或 jobs >
 :                                             kill [-s 信号声明 | -n 信号编号 | >
 [ 参数... ]                                 let 参数 [参数 ...]
 [[ 表达式 ]]                               local [option] 名称[=值] ...
 alias [-p] [名称[=值] ... ]                logout [n]
 bg [任务声明 ...]                         mapfile [-n 计数] [-O 起始序号] [-s >
 bind [-lpvsPVS] [-m 键映射] [-f 文件厾  popd [-n] [+N | -N]
 break [n]                                     printf [-v var] 格式 [参数]
 builtin [shell 内嵌 [参数 ...]]           pushd [-n] [+N | -N | 目录]
 caller [表达式]                            pwd [-LP]
 case 词 in [模式 [| 模式]...) 命令 ;>  read [-ers] [-a 数组] [-d 分隔符] [-i>
 cd [-L|[-P [-e]]] [dir]                       readarray [-n 计数] [-O 起始序号] [->
 command [-pVv] 命令 [参数 ...]            readonly [-aAf] [name[=value] ...] or read>
 compgen [-abcdefgjksuv] [-o 选项]  [-A 刾  return [n]
 complete [-abcdefgjksuv] [-pr] [-DE] [-o 达  select NAME [in 词语 ... ;] do 命令; d>
 compopt [-o|+o 选项] [-DE] [名称 ...]     set [-abefhkmnptuvxBCHP] [-o option-name] >
 continue [n]                                  shift [n]
 coproc [名称] 命令 [重定向]            shopt [-pqsu] [-o] [选项名 ...]
 declare [-aAfFgilrtux] [-p] [name[=value] .>  source 文件名 [参数]
 dirs [-clpv] [+N] [-N]                        suspend [-f]
 disown [-h] [-ar] [任务声明 ...]          test [表达式]
 echo [-neE] [参数 ...]                      time [-p] 管道
 enable [-a] [-dnps] [-f 文件名] [名称 >  times
 eval [参数 ...]                             trap [-lp] [[参数] 信号声明 ...]
 exec [-cl] [-a 名称] [命令 [参数 ...]>  真
 exit [n]                                      type [-afptP] 名称 [名称 ...]
 export [-fn] [名称[=值] ...] 或 export >  typeset [-aAfFgilrtux] [-p] name[=value] .>
 伪                                           ulimit [-SHacdefilmnpqrstuvx] [限制]
 fc [-e 编辑器名] [-lnr] [起始] [终繾  umask [-p] [-S] [模式]
 fg [任务声明]                             unalias [-a] 名称 [名称 ...]
 for 名称 [in 词语 ... ] ; do 命令; do>  unset [-f] [-v] [名称 ...]
 for (( 表达式1; 表达式2; 表达式3 )>  until 命令; do 命令; done
 function 名称 { 命令 ; } 或 name () { >  variables - 一些 shell 变量的名称吾
 getopts 选项字符串 名称 [参数]       wait [编号]
 hash [-lr] [-p 路径名] [-dt] [名称 ...>  while 命令; do 命令; done
 help [-dms] [模式 ...]                      { 命令 ; }

type可以区分内、外部命令

内部命令
[root@localhost ~]# type cd
cd 是 shell 内嵌 ---- 内嵌代表内部命令

关闭内部命令
关闭:enable  -n   内部命令          
开启:enable       内部命令 
[root@localhost ~]# enable -n cd
[root@localhost ~]# cd ..
[root@localhost ~]# enable  cd
[root@localhost ~]# cd ..
[root@localhost /]# 
外部命令
[root@localhost ~]# type find
find 是 /usr/bin/find ---- 外部命令显示路径

[root@localhost ~]# type ls
ls 是 `ls --color=auto' 的别名 ---- 别名属于外部命令
[root@localhost ~]# type -a ls ---- -a显示全部信息
ls 是 `ls --color=auto' 的别名
ls 是 /usr/bin/ls

[root@localhost ~]# type -a cd 
cd 是 shell 内嵌
cd 是 /usr/bin/cd
#cd既在内部,也在外部,优先使用内部cd


[root@localhost ~]# whereis ls ---- 查找命令的具体位置
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

[root@localhost ~]# echo $PATH ---- 外部命令存在于$PATH中
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@localhost ~]# type head
head 已被哈希 (/usr/bin/head)
[root@localhost ~]# hash
命中	命令
   1	/usr/bin/tail
   1	/usr/bin/pstree
  10	/usr/bin/head
   4	/usr/bin/cat
   1	/usr/bin/whereis
   4	/usr/bin/man
#外部命令被使用过后会存在哈希表中在内存(缓存,但是会占用内存,临时性的)加快读取速度
#hash可以查看哈希表
清除哈希表
[root@localhost ~]#hash -d tail ---- 清除tail命令缓存
[root@localhost ~]#hash -r ---- -r全清
[root@localhost ~]#hash
hash: 哈希表为空
#清除所有缓存

标签:bin,...,shell,基础,usr,Linux,root,localhost
From: https://www.cnblogs.com/GrandOB/p/18100006

相关文章

  • linux 中实现数据按照指定行号顺序输出
     001、测试数据[root@pc1test01]#lsa.txtidx.txt[root@pc1test01]#cata.txt##测试数据01020304050610708091011122131415161718319202122232442526272829305313233343536637383940414274344454647......
  • Linux下使用命令查看服务器的连接数
    使用命令查看服务器的连接数,可用于判断服务器是否有CC攻击;netstat-nat|grep-i"80"|wc-l#统计80端口连接数(可以判断是否被CC)netstat-ntu|awk'{print$5}'|cut-d:-f1|sort|uniq-c|sort-n#统计是哪些IP连的(可以用来屏蔽CC攻击的ip)netstat-ntu|a......
  • pgsql基础
    https://www.cnblogs.com/chenyablog/p/14647273.html--查看版本SELECTversion();--创建uuid扩展createextension"uuid-ossp";--生成一个uuidSELECTuuid_generate_v4();SELECT*fromabcwherebody.key="22"SELECTinfo->'customer'AS......
  • Linux开机运行自定义python程序
    引言我们经常会自己写一些监控类的、管理类的,或者是其他类别的一些,开机就需要运行的软件,但是我们又不能实时知道计算机什么时候重启了,那么这里,有一个方法就很重要了,那就是把这个程序做成服务,在开机的时候就随计算机进行启动操作步骤第一步创建一个test.service文件需要......
  • Anaconda使用说明(linux环境下)
    Anaconda使用说明(linux环境下)验证conda已被安装,查看conda版本号。$conda--version 创建新环境,以下举例:$condacreate-nconda_testpython=3.5numpy 表示创建一个名为conda_test的环境,环境中安装版本为3.5的python,同时也安装了numpy。复制环境:$condacreate......
  • iMessage群发软件好用吗?有哪些基础源代码?
    随着科技的发展,即时通讯工具已经成为了我们日常生活中不可或缺的一部分,iMessage作为苹果公司推出的一款即时通讯软件,凭借其优秀的用户体验和跨平台特性,受到了广大用户的喜爱。而围绕iMessage,市面上也出现了一些群发软件,它们声称可以帮助用户更方便地进行批量消息发送,那么,这些i......
  • Linux 切换用户后显示 “bash-4.2 ”
    问题:切换到某个用户后显示bash-4.2$而不是传统的user@nodefile形式原因:该用户/home/userx/目录下文件缺失.bash_profile.bashrc,可以用ls-al查看解决:从/etc/skel/目录下复制文件到/home/userx/目录下就ok了......
  • Linux 虚拟机安装与链接Xshell
    Linux虚拟机安装与链接Xshell右击空白界面→打开终端输入vim/etc/sysconfig/network-scripts/ifcfg-ens33进去到以下画面修改参数添加地址IPADDRGATEWAY两栏根据虚拟网络编辑器进行修改IPADDR(IP地址)一栏前三部分和虚拟网络编辑......
  • Linux - 搭建一套Apache大数据集群
     一、服务器操作系统主机名操作系统node01Centos7.9node02Centos7.9node03Centot7.9 二、大数据服务版本服务版本下载Zookeeper3.5.7DownloadHadoop3.3.6DownloadHive3.xDownloadHbase2.xDownloadSpark3.xDownload......
  • 栈与队列基础篇(二)--Deque
    结合栈与队列,请详细说一下Deque都有什么方法:Deque 接口(DoubleEndedQueue,双端队列)提供了一系列方法,既可以用作栈,也可以用作队列。下面是 Deque 接口中常用的方法:栈操作方法:voidpush(Ee):将元素推入栈顶。Epop():弹出栈顶元素,并将其从栈中移除。Epeek():获取栈......