shell与常用命令

虚拟控制台

一台计算机的输入输出设备就是一个物理的控制台 ;
如果在一台计算机上用软件的方法实现了多个互不干扰独立工作的控制台界面,就是实现了多个虚拟控制台;
Linux终端的工作方式是字符命令行方式,用户通过键盘输入命令进行操作,可以通过Linux终端对系统进行控制。

Linux 终端

Linux终端其实就是用户与操作系统之间的一个接口,用户通过终端与操作系统进行交互.Linux终端包括Shell字符界面终端、图形界面终端及其他用户界面的终端;

shell

什么是shell

Shell是一个作为用户与linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令,返回执行结果
。在Linux中可有多种Shell,可用多个Shell,一个用户同一时刻只能用一个Shell。

Shell的种类 :

  • ash: 是贝尔实验室开发的Shell,bsh是对ash的符 号链接。
  • bash: 是GNU的Bourne Again Shell,是GNU操作系 统上默认的Shell。sh以及bash2都是对它的符 号链接。
  • tcsh: 是Berkeley UNIX C Shell。csh是对它的符号 链接。
  • ksh: Korn Shell的语法与Bourne Shell相同,同时具 备了C Shell的易用特点。
  • zsh : Korn Shell 的一个增强版本,具备bash Shell 的许多特点。

GNU工具中的使用的是:bash。bash作为/bin/sh被默认安装。大多数Linux发行版中,Shell程序/bin/sh实际上是对程序/bin/bash的一个链接

	echo $SHELL #查看当前使用Shellchsh -l  #查看系统支持的Shell列表chsh -s /path/to/shell username #更改Shell/bin/bash --version #查看bash版本

Shell命令的基本格式是:

命令名 [选项] <参数1> <参数2> ……

功能&特点

  • 命令自动补齐(tab键)
    两下tab
  • 历史记录查看(键盘上下键)
    上下翻看历史输入命令/ctrl + r
  • shell提示符(#, $)
    #:超级管理员root的命令提示符

$: 其他用户的命令提示符

  • 输入输出重定向(>, >>, <)
    在Linux中每一个程序的执行,都有输入、输出和错误输出;Linux系统中所有的设备都是以文件的形式存在(键盘、鼠标、显示器…);系统启动时自动打开了三个文件描述符

image.png

  1. … < 文件
    输入重定向wc -l < list.txt

  2. … > 文件
    输出重定向 覆盖原有内容ls > out.txt

  3. … >> 文件
    追加重定向 文件末尾添加echo abc >> out.txt

  4. 高级重定向

ls /usr /abc >ok.txt
ls /usr /abc 1>ok.txt  2>error.txtls /usr /abc 2>/dev/null
  • 管道(|)

作用:把前一个命令的输出作为下一个命令的输入

符号: |

例子:
ls /var/log | grep log | wc -l

Linux文件命令

文件概述

文件是Linux用来存储信息的基本结构,它是被命名的存储在某种介质上的一组信息的集合。

Linux中所有内容都以文件的形式保存,分为:

  • 普通文件
  • 目录文件
  • 设备文件

文件的成分:无论文件是一个程序、一个文档、一个数据库、一个目录,都有以下同样的结构

  1. 名字
  2. 索引节点,又称i节点,存放文件的状态信息的一个数据结构。包含文件的长度、创建及修改时间、权限、所属关系、磁盘位置等。
  3. 数据

Linux目录

image.png
目录文件也包含数据,它与普通文件的差别是:内核对这些数据进行结构化处理,它是由成对的“i节点号/文件名”构成的列表。

  • 当把文件添加到一个目录中时,该目录的尺寸会增大,以便容纳新文件名。
  • 当删除文件时,目录的尺寸并不减小,而是内核对该目录项做上特殊标记,以便下次添加一个文件时重新使用它

工作目录:用户登录到Linux系统后,每时每刻都处在某个目录之中,此目录被称为“工作目录” 或“当前目录”

用户主目录(Home Directory):是系统管理员在增加用户时为该用户建立起来的目录,每个用户都有自己的主目录。 使用符号~表示

绝对路径是指从“根”开始的路径,也称为完全路径;
cd /usr/local/bin

相对路径是指从用户工作目录开始的路径。
cd /usr
cd local/bin

特殊目录

  • “.”代表该目录自己,
  • “…”代表该目录的父目录,
  • 对于根目录,“.”和“…”都代表其自己

隐藏文件

以.开头的都是隐藏文件

Linux文件属性

image.png

image.png

Linux文件种类

  • 普通文件( regular file ) :[ - ]
    纯文字文件(ascii) 或 二进制文件(binary)
  • 目录文件 (directory): [ d ]
  • 链接文件 (link):[ l ]
  • 设备文件 (device):
    区块 (block) 设备文件:[ b ];

字符 (character) 设备文件:[ c ]。

  • 管道文件(Pipe): [ p ]
  • Socket文件(Socket): [ s ]

ls

显示目录与文件操作命令
ls [-a] [-l] [-i] [-t] [-S] [-d][-R]

  • -a all 列出所有,包括隐藏文件
  • -l long 长格式
  • -i inode节点
  • -t time排序
  • -S size排序
  • -d directory 只显示目录,而不是显示其下的内容
  • -R recursive 显示指定目录及子目录下的内容

image.png

cd

切换工作目录命令cd

cd <dirName>
image.png

pwd

显示当前路径命令pwd

cp

image.png

mv

image.png

cat

文件查看和连接命令
cat [选项] <file1> <file2> …

[-n] : 给每行编号

[-b] : 给每行编号,除了空白行

cat -n file1 /usr/local/file2

more

image.png

less

image.png

image.png

head

image.png

tail

image.png

mkdir

创建目录命令
mkdir [-p] <dirName>…
-p 中间路径不存在,会自动创建

rmdir

删除空目录命令
rmdir [-p] <dirName>
-p 删除路径中的空目录

touch

image.png

rm

image.png

locate/slocate

文件定位命令

locate [选项] <search string>

建立所有文件以及路径的数据库,快速从系统数据库中查找指定的内容

先要更新数据库 updatedb

find

查找文件或者目录命令

find [path…] [expression][-name][-perm][-size][-user][-type][-exec]

find /etc -name “*.conf”
find . -type f -exec ls -l ‘{}\; 

image.png

ln

ln [选项] <source> <dest>
[-s] 软链接

  • 硬链接(hard link):给文件一个副本(别名),同时建立两者之间的连接关系,修改其中一个,与其连接的文件同时被修改,如果删除其中一个,其余的文件不受影响。磁盘上只有一份数据。硬链接是存在同一个文件系统中。
  • 软链接(symbolic link):软链接的方式则是产生一个特殊的文件,该文件的内容是指向另一个文件的位置。它只是一个快捷方式,删除了源文件,这个连接文件就没用了。软链接可以跨越不同的文件系统。

chmod

  • 作用:改变指定目录或文件的权限。
  • 语法:chmod [选项] mode文件名或目录
    该命令语法中mode代表权限设定字串,格式如下:
  1. 字符方式:[ugoa…][±=][rwxX]…][,…]
  2. 数字方式:rwx 421 0
  3. [-R] :递归遍历
chmod a=rwx,u-x,g-wx,o-rwx  test.txt
chmod 640 test.txt
chmod -R 764 DirectoryPath

image.png

chown

  • 作用:改变指定目录或文件的所属用户、所属组。
  • 语法:chown [选项] 用户名[:组名] 文件名或目录
  • root权限
  • [-R] : 递归遍历

chgrp

  • 作用:改变指定目录或文件的所属组。
  • 语法:chgrp [选项] 组名 文件名或目录
  • [-R] :递归遍历

cut

  • 作用:从指定文件中过滤或提取特定内容,并显示在当前屏幕上。
  • 提取/etc/passwd文件中的第1,3,5列
cut -d: -f1,3,5 /etc/passwd
cut -d: -f 1-5 /etc/passwd
  • 将/etc/passwd文件从第2个字母至第5个字母的内容提取出来
cut -c2-5 /etc/passwd
cut -c2,5,7 /etc/passwd

wc

默认统计文件内的行/字和字节数

wc [-l](lines)[-w](words)[-m](chars)[-c](bytes) 文件路径

可以与管道结合使用

sort

排序

sort [-r](reverse)[-u](unique)[-f](nocase) 文件路径

可以与管道结合使用

tr

文件处理工具

tr [选项] [字符串1] [字符串2]

常用选项/参数含义如下。
-d:删除字符串1中所有输入字符。

cat /etc/passwd | tr ‘a-z’ ‘A-Z’ #替换
tr -d ‘a-b’ < test.txt  #删除
tr ‘a-z’ ‘A-Z’ < /etc/passwd #重定向

tar

tar [选项] 压缩文件名 文件或目录

tar后缀:cvf xvf (c:create v:view f:file)

tar.gz后缀:zcvf zxvf z:gzip

tar cvf/zcvf a.tar /tmp/a
tar xvf/zxvf a.tar -C /tmp/b (指定目录解压,默认解压路径为当前目录)

gzip

打包文件(文件夹不行)[gz后缀]
[-d](解压)[-r] (递归)[-v] (view)[-t] (test)

gzip -rv /tmp/a

unzip

zip后缀
[-x](解压)[-v][-t][-d](指定目录)

unzip -x /tmp/a.zip -d /tmp/bb

echo

image.png

cal

可以用户显示公历(阳历)日历如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份:

常用参数:

-3 显示前一月,当前月,后一月三个月的日历
-m 显示星期一为第一列
-j 显示在当前年第几天
-y [year]显示当前年[year]份的日历

date

显示或设定系统的日期与时间。
date +%Y-%m-%d

-d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u  显示GMT。
%H 小时(00-23)
%I 小时(00-12)
%M 分钟(以00-59来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)
%a 星期的缩写。
%A 星期的完整名称。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%m 月份(以01-12来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)

which #查看命令路径

which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

whereis #查看命令路径

whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。

- b   定位可执行文件。
- m   定位帮助文件。
- s   定位源代码文件。
- u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

grep

强大的文本搜索命令,grep(Global Regular Expression Print) 全局正则表达式搜索。

grep 的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

命令格式:

grep [option] pattern file|dir
常用参数:

-A n --after-context显示匹配字符后n行
-B n --before-context显示匹配字符前n行
-C n --context 显示匹配字符前后n行
-c --count 计算符合样式的列数
-i 忽略大小写
-l 只列出文件内容符合指定的样式的文件名称
-f 从文件中读取关键词
-n 显示匹配内容的所在文件中行数
-R 递归查找文件夹

awk

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。

awk [选项] '脚本命令' 文件名

cat filename | awk  -F: ‘{print $n}cat /etc/passwd | awk -F: ‘{pirnt $1}awk -F: ‘{print $n}’ /etc/passwd

seq

sed 利用脚本来处理文本文件

  • 全局替换
    sed -i 's/old_str/new_str/g' /path/to/file

直接编辑文件选项-i,会匹配file文件中每一行的第一个old_str替换为new_str

  • 指定位置插入
    sed -i 'line_number a insert_content' /path/to/file

yum

yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。

基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum install | remove | list | search

Linux 用户

用户分类

  1. 超级用户
    root,根用户,类似Windows中的超级管理员账户,有最高的权限,可以对Linux做任何操作。

  2. 普通用户
    受限的权限,普通用户没有对系统的完全控制权,而且用户之间私人的资源是相互隔离的。

  3. 特殊用户
    与系统和程序服务相关的用户(shutdown、mail、mysql……)。
    默认情况下,这些特殊用户是无法登录的,如果给这些用户授权登陆口令后,就可以使用这些用户登录系统。(为了安全,一般不授权口令)
    一般shell被设定为:/sbin/nologin 无法登陆shell

用户信息文件

/etc/passwd

每一行存储一个用户的账号信息

#用户名:加密密码:用户ID:用户组ID:用户信息:用户主目录: 登录Shell
tak:x:1000:1000::/home/tak:/bin/bash

超级用户root的UID是0,系统用户的UID在100以内,而普通用户的UID从500开始往上编号(CentOS 7是1000开始)

口令文件

/etc/shadow

每一行存储一个用户的登录密码信息,加密。只有root用户才能读取这个文件

用户名:加密口令:上次更新时间:允许更改时间:要求更改时间:取消口令之前的警告时间:取消和停用之间的时间:账户口令的天数:账户终止时间:特殊标志

image.png

组信息

/etc/group

每一行记录系统中的用户组信息

组名:密码字段:用户组ID:用户名列表

image.png
用户名列表用逗号分隔多个用户名(只显示附加用户)

用户管理/命令

增加用户: useradd [选项] <newusername>

  • d :指定用户主目录,默认情况下,将会在/home目录下新建一个与用户名相同的用户主目录。

  • s :指定用户登录时使用的shell,默认的shell为/bin/bash。

  • g :指定用户归属的组名。默认地,每当创建一个新用户的时候,一个与用户名相同的组就会被创建,而这个用户就是该组的成员。

  • G <组列表>:在Linux系统中,一个用户可以属于一个组,也可以属于多个组,其中用户在初始化时属于的组称为主组(主组只能有1个)。如果要让用户属于其它的组,应该使用选项-G <组列表>。

  • u :指定新用户的UID。

修改密码

设置和修改口令 :passwd [用户名]

只有超级用户可以使用“passwd 用户名”修改其他用户的口令,普通用户只能用不带参数的passwd命令修改自己的口令

删除用户

删除用户的命令为userdel,该命令的格式为:userdel <用户名>

  • r:删除用户的同时删除用户的全部用户主目录

修改用户属性

usermod [-g<主组名> -G <组名> -d <用户主目录> -s <用户shell>] <username>

增加用户组

groupadd <新组名>

删除用户组

groupdel <组名> (没有用户作为主组时)

修改组成员

直接编辑/etc/group文件,将用户名写到对应的组名的后面。

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C中的malloc:C中的动态内存分配

什么是C中的malloc()&#xff1f; (What is malloc() in C?) malloc() is a library function that allows C to allocate memory dynamically from the heap. The heap is an area of memory where something is stored.malloc()是一个库函数&#xff0c;它允许C从堆动态分配…

Linux文本编辑器

Linux文本编辑器 Linux系统下有很多文本编辑器。 按编辑区域&#xff1a; 行编辑器 ed 全屏编辑器 vi 按运行环境&#xff1a; 命令行控制台编辑器 vi X Window图形界面编辑器 gedit ed 它是一个很古老的行编辑器&#xff0c;vi这些编辑器都是ed演化而来。 每次只能对一…

Alpha第十天

Alpha第十天 听说 031502543 周龙荣&#xff08;队长&#xff09; 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV、ZQ、ZC负责前端开发&#xff0c;由JP和LL负责建库和服务器。界面开发的教辅材料是《第一行代码》&#xff0c;利用And…

Streamlit —使用数据应用程序更好地测试模型

介绍 (Introduction) We use all kinds of techniques from creating a very reliable validation set to using k-fold cross-validation or coming up with all sorts of fancy metrics to determine how good our model performs. However, nothing beats looking at the ra…

Spring MVC Boot Cloud 技术教程汇总(长期更新)

昨天我们发布了Java成神之路上的知识汇总&#xff0c;今天继续。 Java成神之路技术整理&#xff08;长期更新&#xff09; 以下是Java技术栈微信公众号发布的关于 Spring/ Spring MVC/ Spring Boot/ Spring Cloud 的技术干货&#xff0c;本文长期更新。 Spring 系列 Java 必看的…

X Window系统

X Window系统 一种以位图方式显示的软件窗口系统。诞生于1984&#xff0c;比Microsoft Windows要早。是一套独立于内核的软件 Linux上的X Window系统 X Window系统由三个基本元素组成&#xff1a;X Server、X Client和二者通信的通道。 X Server&#xff1a;是控制输出及输入…

冒名顶替上大学罗彩霞_什么是冒名顶替综合症,您如何克服?

冒名顶替上大学罗彩霞冒名顶替综合症 (Imposter Syndrome) Imposter Syndrome is a feeling of being a fraud or not being good enough to get the job done. Its common among software engineers, developers and designers working in tech companies, especially those n…

Linux命令----用户管理

修改用户密码&#xff1a; sudo passwd &#xff08;当前&#xff09;用户名  【sudo是super user do的简写&#xff0c;passwd是password的简写】 显示当前正在操作系统的用户&#xff1a;whoami   显示当前登录系统的用户信息&#xff1a;who am i 注意&#xff1a; 普通…

lasso回归和岭回归_如何计划新产品和服务机会的回归

lasso回归和岭回归Marketers sometimes have to be creative to offer customers something new without the luxury of that new item being a brand-new product or built-from-scratch service. In fact, incrementally introducing features is familiar to marketers of c…

python代码

原始字符串&#xff0c;不做任何特殊的处理 print("Newlines are indicated by \n")#Newlines are indicated by print(r"Newlines are indicated by \n")#Newlines are indicated by \n 格式输出&#xff0c;转化为字符串由format自动完成 ag…

Linux 设备管理和进程管理

设备管理 Linux系统中设备是用文件来表示的&#xff0c;每种设备都被抽象为设备文件的形式&#xff0c;这样&#xff0c;就给应用程序一个一致的文件界面&#xff0c;方便应用程序和操作系统之间的通信。 设备文件集中放置在/dev目录下&#xff0c;一般有几千个&#xff0c;不…

乐高ev3涉及到的一些赛事_使您成为英雄的前五名开发者技能(提示:涉及LEGO)

乐高ev3涉及到的一些赛事Programming is like building something with LEGOs. Any developer can pick up a brand new LEGO set and build it following the instructions. This is very easy. Think of it as coding school assignments or entry level tutorials.编程就像用…

贝叶斯 定理_贝叶斯定理实际上是一个直观的分数

贝叶斯 定理Bayes’ Theorem is one of the most known to the field of probability, and it is used often as a baseline model in machine learning. It is, however, too often memorized and chanted by people who don’t really know what P(B|E) P(E|B) * P(B) / P(E…

winfrom 点击按钮button弹框显示颜色集

1.窗体托一个按钮button&#xff1b; 2.单击事件&#xff1a; 1 private void btnForeColor_Click(object sender, EventArgs e)2 {3 using (ColorDialog cdialog new ColorDialog())4 {5 cdialog.AnyColor true;6 …

JavaScript时间事件:setTimeout和setInterval

Programmers use timing events to delay the execution of certain code, or to repeat code at a specific interval.程序员使用时序事件来延迟某些代码的执行&#xff0c;或以特定的时间间隔重复代码。 There are two native functions in the JavaScript library used to …

webservice 基本要点

webservice的特点 webservices是自我包含的 webservices是自我描述的 webservices是跨平台和语言的 webservices是基于开放和标准的 webservices是可以组合的 webservices是松散耦合的 webservices提供编程访问的能力 webservices通过网络进行发布&#xff0c;查找和使用 发布w…

文本数据可视化_如何使用TextHero快速预处理和可视化文本数据

文本数据可视化自然语言处理 (Natural Language Processing) When we are working on any NLP project or competition, we spend most of our time on preprocessing the text such as removing digits, punctuations, stopwords, whitespaces, etc and sometimes visualizati…

Less变量

Less变量 定义变量 Less 中的变量和其他编程语言一样&#xff0c;可以实现值的复用&#xff0c;同样它也有作用域&#xff08;scope&#xff09;。简单的讲&#xff0c;变量作用域就是局部变量和全局变量的概念。 Less 中&#xff0c;变量作用域采用的是就近原则&#xff0c;换…

渐进式web应用程序_如何在渐进式Web应用程序中添加到主屏幕

渐进式web应用程序添加到主屏幕 (Add To Homescreen) Here the web app install banner is focused on web app, with the feature of add to homescreen.在此&#xff0c;Web应用程序安装标语专注于Web应用程序&#xff0c;具有添加到主屏幕的功能。 浏览器对“添加到主屏幕”…

linux shell 编程

shell的作用 shell是用户和系统内核之间的接口程序shell是命令解释器 shell程序 Shell程序的特点及用途&#xff1a; shell程序可以认为是将shell命令按照控制结构组织到一个文本文件中&#xff0c;批量的交给shell去执行 不同的shell解释器使用不同的shell命令语法 shell…