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,一经查实,立即删除!

相关文章

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…

X Window系统

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

Linux 设备管理和进程管理

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

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

贝叶斯 定理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…

文本数据可视化_如何使用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…

linux shell 编程

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

真实感人故事_您的数据可以告诉您真实故事吗?

真实感人故事Many are passionate about Data Analytics. Many love matplotlib and Seaborn. Many enjoy designing and working on Classifiers. We are quick to grab a data set and launch Jupyter Notebook, import pandas and NumPy and get to work. But wait a minute…

转:防止跨站攻击,安全过滤

转&#xff1a;http://blog.csdn.net/zpf0918/article/details/43952511 Spring MVC防御CSRF、XSS和SQL注入攻击 本文说一下SpringMVC如何防御CSRF(Cross-site request forgery跨站请求伪造)和XSS(Cross site script跨站脚本攻击)。 说说CSRF 对CSRF来说&#xff0c;其实Spring…

Linux c编程

c语言标准 ANSI CPOSIX&#xff08;提高UNIX程序可移植性&#xff09;SVID&#xff08;POSIX的扩展超集&#xff09;XPG&#xff08;X/Open可移植性指南&#xff09;GNU C&#xff08;唯一能编译Linux内核的编译器&#xff09; gcc 简介 名称&#xff1a; GNU project C an…

k均值算法 二分k均值算法_使用K均值对加勒比珊瑚礁进行分类

k均值算法 二分k均值算法Have you ever seen a Caribbean reef? Well if you haven’t, prepare yourself.您见过加勒比礁吗&#xff1f; 好吧&#xff0c;如果没有&#xff0c;请做好准备。 Today, we will be answering a question that, at face value, appears quite sim…

新建VUX项目

使用Vue-cli安装Vux2 特别注意配置vux-loader。来自为知笔记(Wiz)

衡量试卷难度信度_我们可以通过数字来衡量语言难度吗?

衡量试卷难度信度Without a doubt, the world is “growing smaller” in terms of our access to people and content from other countries and cultures. Even the COVID-19 pandemic, which has curtailed international travel, has led to increasing virtual interactio…

Linux 题目总结

守护进程的工作就是打开一个端口&#xff0c;并且等待&#xff08;Listen&#xff09;进入连接。 如果客户端发起一个连接请求&#xff0c;守护进程就创建&#xff08;Fork&#xff09;一个子进程响应这个连接&#xff0c;而主进程继续监听其他的服务请求。 xinetd能够同时监听…

《精通Spring4.X企业应用开发实战》读后感第二章

一、配置Maven\tomcat https://www.cnblogs.com/Miracle-Maker/articles/6476687.html https://www.cnblogs.com/Knowledge-has-no-limit/p/7240585.html 二、创建数据库表 DROP DATABASE IF EXISTS sampledb; CREATE DATABASE sampledb DEFAULT CHARACTER SET utf8; USE sampl…

视图可视化 后台_如何在单视图中可视化复杂的多层主题

视图可视化 后台Sometimes a dataset can tell many stories. Trying to show them all in a single visualization is great, but can be too much of a good thing. How do you avoid information overload without oversimplification?有时数据集可以讲述许多故事。 试图在…

一步一步构建自己的管理系统①

2019独角兽企业重金招聘Python工程师标准>>> 系统肯定要先选一个基础框架。 还算比较熟悉Spring. 就选Spring boot postgres mybatis. 前端用Angular. 开始搭开发环境&#xff0c;开在window上整的。 到时候再放到服务器上。 自己也去整了个小服务器&#xff0c;…

python边玩边学_边听边学数据科学

python边玩边学Podcasts are a fun way to learn new stuff about the topics you like. Podcast hosts have to find a way to explain complex ideas in simple terms because no one would understand them otherwise &#x1f642; In this article I present a few episod…