linux

什么事操作系统

操作系统简称:OS 。     例如IOS其实就是iphone的OS 操作系统是电脑的核心系统,其他系统或软件都要运行在操作系统之上。 负责计算机操作运行的一个软件。 市面上常见的三大系统:Windows   Linux    MacOS 专业扫盲(IOS是手机苹果系统,MacOS是电脑苹果系统

三大操作系统的差别

linux是什么

linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到 业界的认可,目前很多企业级的项目都会部署到Linux系统上。 Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)上学时出于个人爱好而编写的。 扫盲:很多人Linux和Unix傻傻分不清。大概这样理解:Linux是根据Unix创新而来。 所以Linux的使用率和功能远远超过Unix

linux的发行版本

什么是Linux的发行版:Linux仅仅只是一个操作系统,并不能直接使用, 而是需要借助一些外围程序,例如图形界面,文本编辑等基本软件合并。 理解为Linux仅仅是一个引擎,想要使用还是需要装在哪辆车的身上。 主要的 Linux 发行版有:(虽然名字不一样,但是都是使用的Linux操作系统核心。) ●Red Hat ●Fedora ●Debian ●Ubuntu     ●CentOS (本书采用这个发行版进行教学,原因:免费,最稳定,使用人数最多。)

虚拟机简介

说明:由于一台电脑不能直接同时存在多个操作系统。 我们电脑都是Windows系统,所以如果想装Linux操作系统,只能借助虚拟机实现。 什么是虚拟机:通过一个软件模拟的具有完整系统功能的,运行在一个完全隔离环境的    计算机系统。 常见的虚拟机软件:VMWare    VM(虚拟机)   ware(software 软件)      

为什么需要远程连接
inux一般是作为服务器的存放位置,所以一般将Linux系统所在的机器, 存放在较为安全且气温较低的位置,例如机房,例如海底,山里,湖里等。 程序员不可能去这些地方来控制linux系统。 所以就需要借助远程连接工具

什么是SSH工具
远程连接工具简称  SSH确保两台计算机之间进行正常通讯。 常见的SSH工具: A.  Xftp7.0       主要负责文件的传输到服务器。 B.  Xshell7.0    主要负责通过命令来控制服务器,例如关机,删除文件,修改文件等操作。

如何通过Xftp远程连接Linux
0.保证在同一个局域网下,例如机房环境,例如本机环境,或够买公网的服务器。 1.获取Linux的IP地址。 2.进入虚拟机打开活动--终端--输入ifconfig,最上面的一串就是Linux的IP地址 3.回到Xftp,文件-->新建-->将Linux的ip地址复制到主机那一栏即可。 4.解决乱码--新建会话属性-选项-编码

了解基本Linux命令
通过命令可以对Linux系统进行任意操控。 也是正式开发的必备技能。 Linux命令的特点: 1.严格区分大小写 2.使用tab键快速补齐命令

常见命令
1.ls  输出当前目录下所有文件夹 2.clear  清屏 3.cd  xxx  将路径切换到xxx路径处。(linux的根路径为/)

系统目录结构
pt(可选目录):该目录是用于存放可选应用程序的安装目录。通常,第三方软件包会将其安装到这个目录中。 /root(根用户目录):这是root用户的主目录。root用户是Linux系统中具有最高权限的用户。 /tmp(临时目录):该目录用于存储临时文件。这些文件在系统重启时被删除。 /bin(二进制目录):这个目录包含了一些基本的可执行命令和工具。例如,ls、cd等命令就位于该目录。 /boot(引导目录):该目录包含了用于系统保证正常运行的文件 /etc(配置目录):该目录包含了系统的配置文件。 /home(主目录):每个用户在系统中都有一个主目录,用于存储个人文件和文档。 /lib(库目录):该目录包含了系统所需的共享库文件。这些库文件由应用程序调用,提供特定功能的支持。

绝对路径和相对路径
/开始的目录就是绝对路径。例如 /boot,表示根路径下的boot目录。 反之就是相对路径,例如boot/user,表示当前路径下的boot目录下的user目录。 常见符号:.表示当前路径。   ..表示返回上一级目录。 通过pwd命令来查看当前路径。 通过cd xx 表示切换路径

 ls命令详解
s表示查看当前目录的所有文件,如果想要更详细的。提供的参数语法如下: ls [参数]

2.4 基本命令


2.4.1 目录操作类命令


mkdir 命令(make directories)用来创建目录,语法格式如下:

mkdir [参数选项] [目录名称]

mkdir命令参数及其作用
参数    说明
-p    用于创建级联目录(如AA/BB/CC)
例如:

root@MyPC:~# mkdir A

root@MyPC:~# ls

A

root@MyPC:~# mkdir A/B

root@MyPC:~# ls A

B

root@MyPC:~# mkdir -p AA/BB/CC

root@MyPC:~# ls -R  AA        //递归查看AA目录

AA:

BB

AA/BB:

CC

rm 命令用来删除文件或目录,该命令操作语法格式如下:

rm [参数选项] [文件或目录名称]

rm命令参数及其作用


参数    说明
-i    提示是否删除
-r    用于删除目录
-f    用于强制删除文件或目录
例如:

root@MyPC:~# mkdir test

root@MyPC:~# ls

test

root@MyPC:~# rm -rf test        //加参数删除

root@MyPC:~# ls

2.4.2 文件操作类命令
touch 命令用来创建空白文件,如果改文件存在,则表示修改当前文件时间,语法如下:

touch [参数选项] [文件名称]

touch命令参数及其作用


参数    说明
-a    修改文件的Access时间(Atime)会导致Ctime时间变化
-m    修改文件内容的Modification时间(Mtime)会导致Ctime时间变化
-t    指定时间戳“[[CC]YY][ MMDDhhmm [.ss]”
-r    用其他文件的时间戳
例如:

root@MyPC:~# touch 1.txt        //创建1.txt

root@MyPC:~# ll 1.txt

-rw-r--r-- 1 root root07月10 11:37 1.txt

root@MyPC:~# touch 1.txt        //更新Mtime

root@MyPC:~# ll 1.txt

-rw-r--r-- 1 root root07月10 11:43 1.txt

root@MyPC:~# touch -r 1.txt  2.txt      //用1.txtd 时间戳创建2.txt

root@MyPC:~# ll 2.txt

-rw-r--r-- 1 root root07月10 11:43 2.txt

cp 命令用来赋值文件或文件目录,语法如下:

cp [参数选项] 源文件|原目录 目标文件|目标目录

在Linux系统中,复制操作具体分为3种情况:

① 如果目标是目录,则把源文件复制到该目录中

② 如果目标不存在,则执行正常的复制操作

③ 如果目标是同名文件,则会覆盖

cp命令参数及其作用


参数    说明
-r    递归赋值目录
-a    复制文件时保留源source的原始属性(包括软链接属性)
-i    提示是否覆盖
-f            用于强制覆盖
例如:

root@MyPC:~# touch 1.txt ; mkdir A

root@MyPC:~# cp 1.txt 2.txt ; cp 1.txt A

root@MyPC:~# ls 2.txt A

2.txt

A:

1.txt

root@MyPC:~# cp -r A B

root@MyPC:~# ls B

1.txt

mv 命令用来重命名或者移动文件/目录,如果在同目录中对文件或者目录进行mv操作,其实相当于重命名,语法如下:

mv [参数选项] 源文件|原目录 目标文件|目标目录

在Linux系统中共,mv命令操作具体分为4种情况

① 如果源和目标处于同一目录下,则执行改名操作

② 如果目标是目录,则把源文件 | 源目录移动到该目录中

③ 如果目标不存在,则执行正常的复制操作

④ 如果目标是同名文件,则会覆盖

mv命令参数及其作用


参数    说明
-r    递归移动目录
-i    提示是否覆盖
-f    用于强制覆盖
例如:

root@MyPC:~# ls

1.txt 2.txt A B

root@MyPC:~# mv 1.txt new1.txt

root@MyPC:~# mv 2.txt A

root@MyPC:~# ls ; ls A

A B new1.txt

1.txt 2.txt

ln 命令(link)用来为文件创建链接,链接分为硬链接和符号链接两种,默认是硬链接,语法如下:

ln [参数选项] 源文件或目录 目标文件或目录

ln命令参数及其作用
参数    说明
-s    创建符号链接而非硬链接
例如:

root@MyPC:~# touch 1.txt

root@MyPC:~# ln -s 1.txt link.txt

root@MyPC:~# ls -l link.txt

lrwxrwxrwx 1 root root 5 7月 10 12:37 link.txt -> 1.txt

注意:建立硬性链接时,链接文件和被链接文件必须位于同一个文件系统中,并不能建立指向目录的硬链接,而对符号链接,则不存在这个问题,在做符号连接到其它目录的时候一定要使用绝对路径

2.4.3 文件查看类命令


cat 命令用来查看一个文件的内容并显示在屏幕上,一般用于查看内容较少的文件,语法如下:

cat [参数选项] 文件名

cat命令参数及其作用
参数    说明
-b    显示非空行的行号
-n    显示所有行的行号
例如:

root@MyPC:~# echo"hello" > 2.txt        //写内容

root@MyPC:~# echo"" >> 2.txt        //追加内容

root@MyPC:~# cat -n 2.txt

                        1 hello

                        2

root@MyPC:~# cat  -b 2.txt

                        1 hello

more/less 命令用来分屏查看一个文件的内容并显示在屏幕上,一般用于查看内容比较多的文件,语法如下:

more/less [参数选项] 文件名

例如:

root@MyPC:~# more 2.txt

hello

root@MyPC:~# less 2.txt

hello

小提示:more/lee命令可以分屏显示内如(按p提前结束)。more/less都可以使用空格进行向下翻页,但比more命令好在还可以用上下键翻页查看

head/tail命令用来查看文件的前/后十行,如果加“-n”参数选项则显示文件前/后n行,语法如下:

head/tail [参数选项] 文件名

例如:

root@MyPC:~# head /etc/passwd        //显示前十行

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/usr/sbin/nologin

man:x:6:12:man:/var/spool/lpd:/usr/sbin/nologin

lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin

mail:x:8:8:mail:/var/mail:/usr/sbin/nologin

news:x:9:9:news:var/spool/news:/usr/sbin/nologin

root@MyPC:~# head -2 /etc/passwd        //显示前两行

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

小提示:tail和head命令一样,后面直接跟文件名,如果加“-f”选项则动态地显示文件最后10行,用来查看实时更新的日志

文件和目录的管理

 远程连接


2.1.1 安装openssh-server
从“应用程序”列表中搜索找到“软件与更新”应用程序,在“下载自:”下拉列表中选择“中国”→“选择最佳服务器(S)”/“mirrors.aliyun.com”→“选择服务器(S)”,点击“关闭(C)”按钮,弹出“可用软件的列表信息已过时”提示信息,单击“重新载入(R)”载入可用软件包列表,打开命令行,输入“sudo apt install openssh-server”命令安装ssh服务,安装完成后查看sshd服务是否启动,sshd服务如果未启动可以通过“systemctl start sshd”命令开启服务

了解OpenSSH


Linux系统一般应用在服务器领域,通过OpenSSH服务对外开放远程连接,ssh为OpenSSH服务的客户端,sshd为OpenSSH服务的服务端,远程管理工具ssh具有数据加密传输、网络开销小以及应用平台范围广的特点

Ubuntu中OpenSSH的默认配置不允许用户以root身份使用密码登录。默认sshd服务器开启22端口,配置文件为/etc/ssh/sshd_config,可以通过修改这个配置文件来实现想要的sshd服务,如修改端口、允许root用户登录等

修改配置文件命令

sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config;system restart sshd

实施ssh远程登录


在远程登录之前,通过“systemctl stop ufw”和“systemctl disable ufw”命令关闭防火墙功能,在Linux系统中通过“ip addr”命令来获取用于远程登录的IP地址,将ip地址复制,打开软件粘贴到主机名连接即可

了解Linux命令


2.2.1 命令特点
① Linux系统中,命令严格区分大小写;文件执行权限与后缀名没有太大关系,主要看文件属性

② 在命令行中,可以使用你“TAB“键来自动补齐命令。在命令提示符后输入某命令开头的几个字母 ,然后按下”TAB“键1~2次,即完成对命令的补全或罗列操作

③ 利用↑、↓进行历史命令的查看;使用分好(;)来分隔命令,使一个命令行执行多条命令

④ 通过“clear”命令或“Ctrl+L”组合键盘来清屏

 系统目录结构


Linux文件系统采用带链接的树形目录结构,只有一个根目录(通常使用“/”表示)

Linux常用目录功能
目录    说明
/    系统的根目录
/root    系统管理员(root)的主目录
/home    系统默认的普通用户主目录
/dev    任何硬件与接口设备以文件的形式存在于这个目录下
/etc

存放系统配置文件的目录
/mnt    各项设备的文件系统挂载点(mount)
/tmp    临时文件的存放位置,可供所有用户执行写入操作的持有权限
2.3 绝对路径和相对路径
绝对路径:从根“/”开始写的路径,就是绝对路径

相对路径:不从根开始写的路径,相对于当前路径写的

只有第一个位置出现“/”的时候才称为“根”,其他位置称为“分隔符”

点(.)代表当前目录,点点(..)代表父目录或上一层目录

pwd 命令(print working directory)用于查看当前所在的工作路径

例如:

root@MyPC:~# pwd

/root //登录系统默认进入账户的主目录

cd 命令(change directory)用于切换工作路径,用户向切换到其他目录就可以使用此命令

例如:

root @MyPC:~#cd /tmp //切换到tmp目录

root@MyPC:/tmp# pwd

/tmp

root @MyPC:~#cd //切换到主目录 

root @MyPC:~#cd - //返回到上次目录

/tmp

root@MyPC:/tmp#

ls命令(list)用于显示目录中的文件信息,该命令操作语法的格式为:

ls [参数选项] [文件或路径]

ls命令参数及作用
参数    说明
-a    查看所有的文件及目录(包括隐藏)
-l    长格式显示文件的属性、大小等详细信息
-R    递归显示当前目录及子目录下的文件名
-d    查看指定目录的信息
echo命令用于在屏幕上输出信息,该命令操作语法的格式为:

echo [参数选项] 字符串或变量

echo命令参数及作用
参数    说明
-n    不换行输出内容
-e    解析转义字符
例如:

root@MyPC:~#echo "hello" ; echo $PWD

hello

/root

root@MyPC:~#echo -en "hello\t" ; echo $USER

转移字符“\t”表示“制表符”

2.4 基本命令
2.4.1 目录操作类命令
mkdir 命令(make directories)用来创建目录,语法格式如下:

mkdir [参数选项] [目录名称]

mkdir命令参数及其作用
参数    说明
-p    用于创建级联目录(如AA/BB/CC)
例如:

root@MyPC:~# mkdir A

root@MyPC:~# ls

A

root@MyPC:~# mkdir A/B

root@MyPC:~# ls A

B

root@MyPC:~# mkdir -p AA/BB/CC

root@MyPC:~# ls -R  AA        //递归查看AA目录

AA:

BB

AA/BB:

CC

rm 命令用来删除文件或目录,该命令操作语法格式如下:

rm [参数选项] [文件或目录名称]

rm命令参数及其作用
参数    说明
-i    提示是否删除
-r    用于删除目录
-f    用于强制删除文件或目录
例如:

root@MyPC:~# mkdir test

root@MyPC:~# ls

test

root@MyPC:~# rm -rf test        //加参数删除

root@MyPC:~# ls



 文件操作类命令


touch 命令用来创建空白文件,如果改文件存在,则表示修改当前文件时间,语法如下:

touch [参数选项] [文件名称]

touch命令参数及其作用
参数    说明
-a    修改文件的Access时间(Atime)会导致Ctime时间变化
-m    修改文件内容的Modification时间(Mtime)会导致Ctime时间变化
-t    指定时间戳“[[CC]YY][ MMDDhhmm [.ss]”
-r    用其他文件的时间戳
例如:

root@MyPC:~# touch 1.txt        //创建1.txt

root@MyPC:~# ll 1.txt

-rw-r--r-- 1 root root07月10 11:37 1.txt

root@MyPC:~# touch 1.txt        //更新Mtime

root@MyPC:~# ll 1.txt

-rw-r--r-- 1 root root07月10 11:43 1.txt

root@MyPC:~# touch -r 1.txt  2.txt      //用1.txtd 时间戳创建2.txt

root@MyPC:~# ll 2.txt

-rw-r--r-- 1 root root07月10 11:43 2.txt

cp 命令用来赋值文件或文件目录,语法如下:

cp [参数选项] 源文件|原目录 目标文件|目标目录

在Linux系统中,复制操作具体分为3种情况:

① 如果目标是目录,则把源文件复制到该目录中

② 如果目标不存在,则执行正常的复制操作

③ 如果目标是同名文件,则会覆盖

cp命令参数及其作用
参数    说明
-r    递归赋值目录
-a    复制文件时保留源source的原始属性(包括软链接属性)
-i    提示是否覆盖
-f            用于强制覆盖
例如:

root@MyPC:~# touch 1.txt ; mkdir A

root@MyPC:~# cp 1.txt 2.txt ; cp 1.txt A

root@MyPC:~# ls 2.txt A

2.txt

A:

1.txt

root@MyPC:~# cp -r A B

root@MyPC:~# ls B

1.txt

mv 命令用来重命名或者移动文件/目录,如果在同目录中对文件或者目录进行mv操作,其实相当于重命名,语法如下:

mv [参数选项] 源文件|原目录 目标文件|目标目录

在Linux系统中共,mv命令操作具体分为4种情况

① 如果源和目标处于同一目录下,则执行改名操作

② 如果目标是目录,则把源文件 | 源目录移动到该目录中

③ 如果目标不存在,则执行正常的复制操作

④ 如果目标是同名文件,则会覆盖

mv命令参数及其作用
参数    说明
-r    递归移动目录
-i    提示是否覆盖
-f    用于强制覆盖
例如:

root@MyPC:~# ls

1.txt 2.txt A B

root@MyPC:~# mv 1.txt new1.txt

root@MyPC:~# mv 2.txt A

root@MyPC:~# ls ; ls A

A B new1.txt

1.txt 2.txt

ln 命令(link)用来为文件创建链接,链接分为硬链接和符号链接两种,默认是硬链接,语法如下:

ln [参数选项] 源文件或目录 目标文件或目录

ln命令参数及其作用
参数    说明
-s    创建符号链接而非硬链接
例如:

root@MyPC:~# touch 1.txt

root@MyPC:~# ln -s 1.txt link.txt

root@MyPC:~# ls -l link.txt

lrwxrwxrwx 1 root root 5 7月 10 12:37 link.txt -> 1.txt

注意:建立硬性链接时,链接文件和被链接文件必须位于同一个文件系统中,并不能建立指向目录的硬链接,而对符号链接,则不存在这个问题,在做符号连接到其它目录的时候一定要使用绝对路径

2.4.3 文件查看类命令


cat 命令用来查看一个文件的内容并显示在屏幕上,一般用于查看内容较少的文件,语法如下:

cat [参数选项] 文件名

cat命令参数及其作用
参数    说明
-b    显示非空行的行号
-n    显示所有行的行号
例如:

root@MyPC:~# echo"hello" > 2.txt        //写内容

root@MyPC:~# echo"" >> 2.txt        //追加内容

root@MyPC:~# cat -n 2.txt

                        1 hello

                        2

root@MyPC:~# cat  -b 2.txt

                        1 hello

more/less 命令用来分屏查看一个文件的内容并显示在屏幕上,一般用于查看内容比较多的文件,语法如下:

more/less [参数选项] 文件名

例如:

root@MyPC:~# more 2.txt

hello

root@MyPC:~# less 2.txt

hello

小提示:more/lee命令可以分屏显示内如(按p提前结束)。more/less都可以使用空格进行向下翻页,但比more命令好在还可以用上下键翻页查看

head/tail命令用来查看文件的前/后十行,如果加“-n”参数选项则显示文件前/后n行,语法如下:

head/tail [参数选项] 文件名

例如:

root@MyPC:~# head /etc/passwd        //显示前十行

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/usr/sbin/nologin

man:x:6:12:man:/var/spool/lpd:/usr/sbin/nologin

lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin

mail:x:8:8:mail:/var/mail:/usr/sbin/nologin

news:x:9:9:news:var/spool/news:/usr/sbin/nologin

root@MyPC:~# head -2 /etc/passwd        //显示前两行

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

小提示:tail和head命令一样,后面直接跟文件名,如果加“-f”选项则动态地显示文件最后10行,用来查看实时更新的日志

2.4.4 文件归档命令
gzip/gunzip 命令是用来压缩/解压缩文件的,文件压缩命令还有bzip2/bunzip2等,语法如下:

gzip/gunzip [参数选项] 文件

gzip/gunzip命令参数及作用
参数    说明
-r    递归压缩/解压缩,将指定目录下的所有文件及子目录一并处理
-d    解开压缩文件(仅限gzip命令使用)
-v    显示指令执行过程(verbose)
root@MyPC:~# mkdir testfile

root@MyPC:~# touch testfile/{1.2}.txt        //创建文件

root@MyPC:~# ls testfile

1.txt 2.txt

root@MyPC:~# gzip -r testfile        //递归压缩

root@MyPC:~# ls testfile

1.txt.gz 2.txt.gz

root@MyPC:~# gunzip -vr testfile        //递归压缩

testfile/1.txt.gz:        0.0% -- replaced with testfile/1.txt

testfile/2.txt.gz:        0.0% -- replaced with testfile/2.txt

root@MyPC:~# ls testfile/

1.txt 2.txt

tar命令用来归档/解归档文件,在Linux系统一般结合压缩一起用,后缀一般为“.tar.gz”,语法如下:

tar [参数选项] 归档文件名 需归档的原文件或目录        //归档语法

tar [参数选项] 归档文件名 [-C 目标目录]        //解归档语法

tar命令参数及作用
参数    说明
-c

小写字母c,创建(create)一个“.tar”格式的包文件
-C    大写字母C,指定解包时的目标目录
-f    指定一个文档名(最后放此参数)
-r    追加文件至“.tar”格式的包文件里
-t    列表查看包文件
-v    输出详细信息(verbose)
-x    解开“.tar”格式的包文件
-z    调用gzip程序进行压缩或解压
例如:

root@MyPC:~# mkdir testfile        //创建目录

root@MyPC:~# touch tarfile/1.txt        创建文件

root@MyPC:~# ls tarfile

1.txt

root@MyPC:~# tar -czvf tarfile.tar.gz tarfile        //解包解压

root@MyPC:~# tar -rf tarfile.tar.gz

tarfile/

tarfile/1.txt

root@MyPC:~# ls -R tarfile2

tarfile2:

tarfile

tarfile2/tarfile

1.txt

注意:c/r/x/t参数同时只能存在一个,因为不能同时压缩与解压缩,“-r”参数选项一定放在最后,因为f之后要立即接文档名

2.4.5 文件查找类命令
grep 命令用来查找普通文件中包含指定字符串的行,语法如下:

grep [参数选项] 查找字符串 文件名

grep 命令参数及作用
参数    说明
-c    统计包含“查找字符串”的行数
-n    输出包含“查找字符串”的行号和此行内容
-v    输出没有包含“查找字符串”的行内容
例如:

root@MyPC:~# grep -c "for i in" /etc/profile

1

root@MyPC:~# grep -n "for i in" /etc/profile

21: for i in /etc/profile.d/*.sh;do

root@MyPC:~# grep -vn "fori in" /etc/profile

1:# /etc/profile: sytem-wide.profile file fior the Boume shell(sb(1))

......

27:fi

注意:grep命令是在文件中搜索满足条件的行,如果“查找的字符串”中带有空格,可以采用单引号(' ')或双引号(" ")引起来

find 命令用来查找系统中的文件或目录,语法如下:

find命令参数及作用
参数    说明
-name filename    查找指定名称的文件
-user username    查找指定用户名的文件
-group groupname    查找指定用户组的文件
-type b/c/d/f/l    查找指定类型的文件。b(块设备)、c(字符设备)、d(目录)、f(普通文件)、l(符号连接)
-perm mode    查找指定权限的文件
-exec command {} \;    对匹配条件的文件执行command命令
例如:

root@MyPC:~# touch 1.bak

root@MyPC:~# mkdir dirTest

root@MyPC:~# mkdir Backup

root@MyPC:~# find . -name "*.bak"

./1.bak

root@MyPC:~# find . -name "*.bak" -exec ls -l || \;

-rw-r--r-- l root root 0 7月10 20:36 ./1.bak

root@MyPC:~# ls Backup

root@MyPC:~# find -type d -name "*est" -exec cp -r || Backup \;

root@MyPC:~# ls Backup

dirTest

注意:对匹配条件的文件执行command命令时,command时基本命令,“||”代表的是前面匹配条件找到的文件,“\;”是固定结尾格式写法

2.4.6 其他类命令
uname 命令用来查看系统内核与系统版本等信息,语法如下:

uname [参数选项]

uname命令及作用
参数    说明
-a    显示系统的所有信息(内核名称、主机名、内核发行版本、节点名、系统时间 、硬件名称、硬件平台、处理器类型以及操作系统名称等)
-r    
显示内核发行版本号 

例如:

root@MyPC:~# uname -a

Linux MyPC 5.15.0-25-generic #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

root@MyPC:~# uname -r

5.15.0-25-generic

whereis [参数选项] 命令名称

whereis 命令参数及作用
参数    说明
-b    只查找二进制文件
-m    只查找说明/帮助文件
例如:

root@MyPC:~# whereis -b ls        //查找ls命令的二进制程序

ls:/usr/bin/ls        //ls命令的二进制程序地址

root@MyPC:~# whereis -m ls        //查找ls命令的帮助文件

ls:/usr/share/man/man1/ls.1.gz        //ls命令的帮助文件地址

date 命令用来显示或设定系统的日期与时间,语法如下:

date [参数选项] [+定义格式]

date命令参数及作用
参数    说明
命令参数
-s    设置系统时间
-d    通过字符串显示时间格式
格式化参数
%Y    年(e.g.,2022)
%m    月(e.g.,07)
%d    日(e.g.,10)
%H    时(00.,23)
%M    分(00.,59)
%S    秒(00.,60)
%F    日期全格式(等同于 %Y-%m-%d)
%T

时间格式(等同于 %H:%M:%S)
例如:

root@MyPC:~# date

2023年 10月 11日 星期三 19:42:06 CST

root@MyPC:~# date "+%F%T"

2023-10-11 19:42:26

root@MyPC:~# date -s "2023-10-11 19:43:10"

2023年 10月 11日 星期三 19:43:20 CST

root@MyPC:~# date

2023年 10月 11日 星期三 19:44:36 CST

注意:在系统启动时,Linux操作系统将时间从硬件时间中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与硬件时间的一致性,Linux每隔一段时间会将系统时间写入硬件。由于该同步是每隔一段时间进行的,因此在我们执行date -s后,如果马上重启机器,修改时间可能没有被写入硬件时间,如果要确保修改生效,可以执行hwclock -w命令

例如:

root@MyPC:~# hwclock -w        //强制把系统时间写入硬件时间

root@MyPC:~# hwclock -s         //强制把硬件时间写入系统时间

ps命令用来查看系统的进程,该命令操作语法的格式为:

ps [参数选项]

ps命令参数及作用
参数    说明
-e    显示所有进程
-f    全格式,不截断COMMAND列,可以结合grep使用
例如:

root@ MyPC :~# ps ef

UID        PID        PPID        C STIME TTY        TIMECMD

root        3573        3378        0 13:45 pts/0        00:00:00 sudo     su   -

root        45766        44352        0  21:45  pts/3        00:00:00 ps   -ef

ss 命令用来导出socket的统计数据,显示详细的TCP状态信息,该命令操作语法的格式为:

ss  [参数选项]

ss 命令参数及作用


参数    说明
-a    对TCP协议来说,既包含监听的端口,也包含建立的连接
-n    以数字(numeric)形式显示,不解析服务的名称
-l    显示监控(listening)中的服务器的socket
-p    显示正在使用Socket的程序(programs)识别码和程序名称
-t/-u    显示TCP/UDP 传输协议的sockets
stat 命令以文字的格式来显示inode的内容,语法如下:

stat 文件或目录

例如:

root@MyPC:~# touch newfile

root@MyPC:~# stat newfile

        文件:newfile

        大小:0        块:0        IO块:4096        普通空文件

设备:803h/2051d        Inode:132835        硬链接:1

权限:(0644/-rw-r--r--)Uid:(        0/        root)Gid:(        0/        root)

最近访问:xxx

最近更改:xxx

最近改动:xxx

创建时间:xxx

 输入输出重定向和管道命令符


1.输入域输出重定向

        当我们执行指令的时候,这个指令可能会由文件读入数据,经过处理之后,再将数据输出到屏幕上,这个过程当中可能会有标准输入、标准错误输入、标准输出、标准错误输出。Linux下使用标准输入stdin(0,默认是键盘)和标准输出stdout(1,默认是终端屏幕)来表示每个命令的输入和输出,还使用一个标准错误输出stderr(2,默认是终端屏幕)用于输出错误信息。对于输入输出重定向来讲,用到的符号及其作用如表

输入输出重定向符号及作用
符号    作用
command<file    将file文件作为command命令的标准输入
command>file    将command命令结果输出到file文件中,如果有则覆盖,如果没有则新建
command>>file    将command命令结果输出到file文件中,如果有则追加,如果没有则新建
command2>file    将command命令结果的错误信息输出到file文件中,如果有则覆盖,如果没有则新建
command&>file    将command命令结果的所有信息(正确/错误)输出到file文件中,如果有则覆盖,如果没有则新建
例如:

root@MyPC:~# echo "a" > 1.txt             //写入

root@MyPC:~#echo  "b" >> 1.txt          //追加

root@MyPC:~#cat < 1.txt                     //输入重定向

a

b

root@MyPC:~# ls 2.txt                        //浏览不存在

ls:无法访问'2.txt':没有那个文件或目录

root@MyPC:~# ls 2.txt  2> error.txt     //错误信息重定向

root@MyPC:~#cat    error.txt          //查看文件

ls:无法访问'2.txt':没有那个文件或目录

root@MyPC:~#

2.管道命令符

        管道命令符“|”的作用是将前一个命令的标准输出作为后一个命令的标准输入,格式为:

“命令A | 命令B | 命令C”

例:

root@MyPC:~# cat   1.txt                //查看内容

a

b

c

a

b

a

c

c

root@MyPC:~# cat   1.txt   |   wc        //统计信息

        8        8        16

root@MyPC:~# cat   1.txt   |   sort   |   uniq   -c    //排序并统计

        3   a        2   b

        3   c        

        wc命令用于计算指定文件的行数、字数,以及字节数。(“-1”参数显示行数,“-w”参数显示字数,“-c”参数显示字节数)

        sort命令用于将文本文件内容以行为单位进行排序。(默认正序,“-r”参数逆序)    

        uniq命令用于检查及删除文本文件中重复出现的行列,一般于sort命令组合使用。(“-c”参数在每列旁边显示该行重复出现的次数)

三、多用户

Linux特点之一的多用户指的是:可以存在多个用户同时对Linux系统进行操作。

默认情况下:只有root用户可以对用户进行增删改查。

适用场景:一个项目需要分工合作,每个人做不同的事,每个人都拥有自己独立的账号。

根目录下有众多文件夹,每个文件夹都有不同的功能。

例如root文件夹存放管理员相关文件,home文件夹存放用户相关文件。

etc文件夹就存放相关配置文件,一般情况下不要去修改。

passwd配置文件就存在在该目录下,负责保存Linux的所有用户相关的数据。

由三部分组成。

第一部分:root用户的相关信息

第二部分:系统用户相关信息(系统用户无法登录)

第三部分:自定义用户的相关信息

通过 cat  /etc/passwd  命令 ,可以打开该文件,可以查看有多少用户

配置文件每行定义一个账号信息,以冒号分割为7个字段。

分别表示:

1.账号名称   2.密码   

3.UID(用户的唯一id,root默认为0,普通用户默认从1000开始到65535)

4.GID   (用户所在组的id,root默认为0,普通用户默认从1000开始到65535,默认和UID相等)

5. 账户说明信息   6. 账号对应的家目录   

7. shell命令快捷登录的语法

group配置文件就存在在该目录下,负责保存Linux的所有组的相关的数据。

通过cat  /etc/group 可以查看有多少组

1.切换至root用户(只有管理员才有该权限)

2.通过 useradd  用户名 ;  即可创建用户

3. 检查配置文件是否更新,检查home目录是否更新

4.设置(重置)密码: passwd  用户名

5.通过切换用户检查是否修改成功

6.userdel 用户名        表示删除指定的用户

groupadd  组名    即可创建一个组

groupmod   -n  新组名   旧组名   可以修改组的名称

groupdel  组名   可以删除指定的组    

gpasswd命令可以对组进行相关操作,例如添加组员,移除组员

例如:

gpasswd -a  用户名  组名  表示将用户插入到组中

gpasswd -d  用户名 组名  表示从该组删除指定用户

注意:一个组可以有多个组员,一个组员也可以在多个组中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值