Linux学习(完整)

目录

  • 打开终端
  • 调整屏幕
  • 系统
  • 路径
    • 绝对路径 :以/开头都是绝对路径
    • 相对路径:在当前目录描述其他目录/文件
  • 密码
    • passwd 修改密码
  • 简单命令
    • clear 清屏
    • Tab 补全目录
    • pwd 显示当前工作目录
    • ls(list) / 列出
    • cat 查看文件
    • pwd (print work directory) 打印当前工作目录
    • cd (change directory)改变目录
    • passwd 修改密码
    • su 切换到root用户(一般不要用root账户)
    • exit 切回原来用户
  • 用户
    • 创建一个新的用户swift,家目录为/home/swift,用户登录后使用bash
    • 给新建的swift用户设置密码:
    • 切换到swift用户:
    • 使用sudo命令测试:
    • id 命令
    • 使用sudo命令,删除swift用户,并删除swift用户对于的家目录 /home/swift,并且是强制删除
  • 思维导图1
  • ssh 连接自己电脑
  • 权限
  • 1 文件
    • 1.1 touch命令
    • 1.2 mkdir命令
    • 1.3 cp命令
    • mv命令
    • rm命令
  • 思维导图2
    • 1.6 man命令
    • telnet
  • 2 特殊字符
  • 2.1 *
    • 2.1 *
    • 2.2 ?
    • 2.3 ;
    • 2.4 >和>>
      • >
      • >>
    • |
  • 3 查看内容
    • 3.1 cat命令
    • 3.2 more命令
  • 4 vi编辑器
    • 4.1 三种模式
    • 4.2 命令模式
    • 4.3 命令行模式
  • 5 环境变量
    • 5.2 windows
  • 6 归档压缩
    • 6.2 压缩
    • 6.3 解压
  • 思维导图

常用查询网址 runoob

打开终端

Ctrl+Alt+t

调整屏幕

一、设置–显示–分辨率(按Alt拖)

sudo apt-get update
第一步:sudo apt-get install open-vm-tools
第二步:sudo apt-get install open-vm*
第三步:shutdown -r now(这个好,直接终端输入就行)
ctrl+Alt+enter(回車)//当再次开机屏幕不适宜时,可通过这个进行调整
二、
Ctrl+Shift+(+)终端放大
Ctrl+(-)终端缩小

系统

根目录:/
		二级目录:
					/bin (binary) 二进制文件 执行文件
					/etc 配置文件  /etc/network/interfaces
					/home 家目录 当且用户的家目录 /home/sunyi
					默认用户登录在/home/用户下
					/opt 应用安装目录
					/usr unix share resources 共享目录/安装软件

路径

通过路径找见文件/文件夹

绝对路径 :以/开头都是绝对路径

			   文件名:interfaces
			    /etc/network/interfaces 该文件的绝对路径
			    修改该文件 vi  /etc/network/interfaces
			    查看该文件 cat /etc/network/interfaces

相对路径:在当前目录描述其他目录/文件

			./代表当前目录
			../代表上一级目录
			../../上一级的上一级目录
			   、

密码

passwd 修改密码

安装系统时创建了一个账户密码 sunyi/sunyi
默认提供一个root用户(没有密码)
修改当前用户密码 passwd 会提示创建一个复杂密码
修改root密码
sodu(临时提升权限)passwd root
输入当前用户的密码做验证
输入root用户的新密码,建议还是root

简单命令

命令格式:Command [option(s)] [argument[s]]

command: 命令关键字
options: 可以有多个选项
arguments: 可以有多个参数

cat -n a.txt

注意事项:
中间用空格隔开
单行命令一般不超过256个字符
大小写敏感

clear 清屏

Tab 补全目录

pwd 显示当前工作目录

ls(list) / 列出

ls -a //显示隐藏文件和隐藏目录,也就是以点(.)开头的文件和目录 
ls -R //递归显示目录中的内容 
ls -t //显示目录中的内容列表,并使用时间排序,默认是按着名字排序 
ls -l //显示详细信息 
ls -a -l //这些参数可以多个一起使用 
ls -al //参数可以分开也可以合在一起写 
ls -F //显示文件的类型,目录/ 可执行文件* 普通文件

Linux学习(完整)_第1张图片

cat 查看文件

cat /+(Tab) 列出文件夹

pwd (print work directory) 打印当前工作目录

cd (change directory)改变目录

要切换的目录,可以使用相对路径,也可以使用绝对路径。
例如:
cd …/test
cd /home/test
cd 直接输入cd会自动切换到当前用户的家目录。

passwd 修改密码

su 切换到root用户(一般不要用root账户)

exit 切回原来用户

用户

创建一个新的用户swift,家目录为/home/swift,用户登录后使用bash

sudo useradd -mk /home/swift -s /bin/bash swift

给新建的swift用户设置密码:

sudo passwd swift

切换到swift用户:

su - swift
Linux学习(完整)_第2张图片

使用sudo命令测试:

sudo clear
在这里插入图片描述
是因为swift用户不在sudo这个用户组中,所以无法使用sudo命令:

id 命令

查看组
Linux学习(完整)_第3张图片

使用sudo命令,删除swift用户,并删除swift用户对于的家目录 /home/swift,并且是强制删除

sudo userdel -r -f swift
-r级联删除
-f强制删除

思维导图1

Linux学习(完整)_第4张图片

ssh 连接自己电脑

先在linux安装ssh
然后Windows powershell连接linux
ssh 用户名@服务器地址
如 ssh [email protected]
网址可通过ifconfig进行查看(如果linux关了就连不上了)

权限

使用ls -l 命令,可以查看文件或目录的相关权限
Linux学习(完整)_第5张图片
截屏中标注的部分就是当前b.txt文件针对用户的权限。
r 读权限
w 写权限,对目录来说,可生成文件与子目录或删除文件与子目录
x 执行权限,对目录来说,可查找该目录下内容
-表示没有任何权限

rw- r-- ---
rw- 表示当前文件对拥有者的权限 
r-- 表示当前文件对同组人的权限
--- 表示当前文件对其他人的权限

在添加或者删除某个权限的时候:
u 表示拥有者
g 表示同组人
o 表示其他人
a 表示所有人

例如

chmod u+x b.txt 
chmod g-r b.txt 
chmod u+r,g-2 b.txt 
chmod a=rw b.txt

0000 0001 x 执行权限 十进制数字 1
0000 0010 w 写权限 十进制数字 2
0000 0100 r 读权限 十进制数字 4
在这种情况下,任意权限组合相加得出的数字结果,都是唯一。

//7一定是1+2+4所得,表示拥有者、同组人、其他人都是可读可写可执行 chmod 777 b.txt

1 文件

1.1 touch命令

例如,创建一个文件或者修改文件的更新时间

touch a.txt

当a.txt文件不存在的时候,会创建该文件
当a.txt文件存在的时候,会更新文件的修改时间
例如,创建多个文件

touch a b c d

直接创建四个文件a b c d

1.2 mkdir命令

例如,创建一个目录

mkdir test

例如,创建多个平级目录

mkdir test1 test2 test3

例如,在当前用户家路径下创建一个子目录

mkdir ~/test4

例如,创建多级子目录,-p表示如果子目录不存在就创建

mkdir -p test1/test2/test3

1.3 cp命令

例如,复制当前目录下a.txt文件内容到b.txt中 cp a.txt b.txt
如果b.txt不存在,则自动创建b.txt文件
如果b.txt 存在,则自动覆盖b.txt文件内容
如果,使用-i 进行覆盖提示

cp -i a.txt b.txt

Linux学习(完整)_第6张图片
y是覆盖,n是取消操作,直接回车也是取消操作
例如,复制多个文件,到一个指定目录

cp a.txt b.txt test

复制a.txt b.txt文件到test目录中,要求这些文件和目录都是存在的

例如,复制文件夹和它的内容,到另一个文件夹中

cp -r test1 test2

复制test1文件及其内容到test2目录中
如果test2目录不存在,则创建test2并把test1目录中的内容复制进去,不包含test1目录
如果test2目录存在,则把整个test1目录及其内容全都复制到test2中,包含test1目录

mv命令

例如,移动一个文件

mv a.txt test 

将a.txt移动到test目录中
注意,也可以同时移动多个文件到目录中

mv a.txt b.txt c.txt test

例如,将test目录中的a.txt移动到当前目录

mv ./test/a.txt .

例如,修改一个文件的名字,将a.txt改为b.txt

mv a.txt b.txt

例如,-i参数,覆盖提示

mv -i a.txt b.txt

例如,修改目录的名字

mv dir1 dir2

这是dir2不存在的时候
例如,将一个目录移动到另一个目录中

mv dir1 dir2

这是dir2存在的时候

rm命令

例如,删除一个文件

rm a.txt

例如,删除前提示确认

rm -i a.txt

例如,删除多个文件

rm a b c d

同时删除四个文件,分别是a b c d
例如,删除空目录

rmdir test

如果目录非空,则报错
例如,删除非空目录

rm -r test

例如,删除非空目录,并且删除前确认

rm -r -i test

或者

rm -ri test

例如,删除非空目录,强制删除,不做任何提示

rm -r -f test

或者

rm -rf test

思维导图2

Linux学习(完整)_第7张图片

1.6 man命令

例如,查看ls命令的使用手册

man ls

空格,每次往下翻一个屏幕的内容
回车,每次往下翻一行内容
b,每次向上翻回一页
f, 每次向下翻一页
q,退出当前手册界面
/stirng,查找指定字符串,例如,/the 就是查找这个单词
n,配合/string命令,可以快速调整跳到下一个指定字符串的位置

telnet

使用telnet命令进行远程登录服务器
ifconfig ,查看ip地址
telnet远程登录服务器的要求:

  1. 本机有telnet客户端,可以使用telnet命令
  2. 服务器主机安装了telnet服务器端,并已经开启服务
  3. 本机可以ping通服务器主机的ip地址

2 特殊字符

2.1 *

表示通配,可以代表0~n个字符
例如,列出所有txt结尾的文件

ls *.txt

例如,删除所有txt结尾的文件

rm *.txt

2.1 *

表示通配,可以代表0~n个字符
例如,列出所有txt结尾的文件

ls *.txt

例如,删除所有txt结尾的文件

rm *.txt 

2.2 ?

表示任意的一个字符
例如,显示a?.txt文件

ls a?.txt 

2.3 ;

表示在一行语句中连续执行多个命令,命令之间使用分号进行分割
例如,先cd回到家目录,然后再执行ls命令

cd;ls

例如,先显示时间,再显示日历,再显示当前路径

date;cal;pwd 

2.4 >和>>

输出重定向符合,将来原本输出到命令行中的内容,重定向输入到另外一个地方。

>

表示往文件中写入内容,是覆盖操作
例如,把hello写入到a文件中

echo "hello" > a

a文件如果不存在,则自动创建,a文件如果存在,则覆盖之前的内容
例如,cal命令输出的日历写入到a文件中

cal > a 

>>

表示往文件中写入内容,是追加操作
例如,先把date命令显示的日期写入到a文件中,再把cal显示的日历追到a文件中,再查看a文件的内容

date >> a cal >> a
cat a

例如,把2020年12月的日历,写入到a文件中,覆盖之前的内容

cal 12 2020 > a 2.5

|

管道符,可以把第一个命令的结果,交给第二个命令作为参数进行操作
例如,把当前日历通过打印机进行打印

cal | lp

如果当前网络中配置好打印机并连接成功的话,可以打印出日历
例如,查看/etc/passwd中的内容并筛选出briup相关的信息

cat /etc/passwd | grep "briup" grep

命令进行对结果进行过滤筛选

3 查看内容

3.1 cat命令

例如,显示文件中的所有内容

cat a.txt

例如,把a.txt和b.txt的内容合并到c.txt中

cat a.txt b.txt > c.txt

例如,把c.txt文件内容,设置为空

cat /dev/null > c.txt 

Linux系统中,/dev/null(空设备文件或黑洞文件)是一个特殊的设备文件,所有写入其中的数据,都会
被丢弃的无影无踪,/dev/null通常被用于丢弃不需要的数据输出,或作为用于输入流的空文件。这些操
作通常由重定向完成。
例如,清空a文件

cat /dev/null > a

例如,将本来要输出的内容直接丢弃不要

ls -R > /dev/null

3.2 more命令

more和cat一样,也是查看内容的命令,但是more命令可以一点点的显示内容,而不是一次全显示出
来。
例如,使用more命令查看/etc/passwd文件内容

more /etc/passwd

在这种情况下,可以使用命令进行操作。
空格,每次往下翻一个屏幕的内容
回车,每次往下翻一行内容
b,每次向上翻回一页
f, 每次向下翻一页
q,退出当前查看内容界面
v,进入vi模式(只读),在vi模式下,输入:q 则退出vi模块回到more的查看模式
在vi模式下,使用/stirng,查找指定字符串,例如,/the 就是查找这个单词
在vi模式下,n,配合/string命令,可以快速调整跳到下一个指定字符串的位置

more也经常和管道费 | 搭配使用
例如: ls -R | more

4 vi编辑器

vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的
强大不逊色于任何最新的文本编辑器。

4.1 三种模式

vi编辑器有三种模式,命令模式,命令行模式,编辑模式
命令模式,可以使用简单的命令进行文本内容的操作
命令行模式,可以使用复杂点的命令进行文本内容操作
编辑模式,可以直接编辑文本内容
例如,直接使用vi打开文件的时候,就是命令模式

echo "hello" > a vi a

这时候,不能直接编辑文件,但是可以简单的命令操作文件内容,例如yy命令复制当前行,
p命令把复制内容粘贴到下一行。
先yy命令然后p命令
dd删除当前行
在命令模式下,按冒号(shift+:)进入到命令行模式: 输入命令w,然后回车,把内容进行保存
命令行模式执行完命令自动返回到命令模式
在命令模式下,按命令i或者a或者o都可以进入到编辑模式,然后可以直接编辑内容
i 表示在光标当前位置处插入,并变为编辑模式
a 表示在光标所在位置后插入,并变为编辑模式
o 表示在光标所在行的下方插入空行,并变为编辑模式
在插入模式下,可以像在记事本中一样编辑文件内容了。
编辑模式下按Esc,退回到命令模式。
编辑完成后,先按Esc进入到命令模式,再按(shift+:)进入到命令行模式,再输入wq,然后回车,表示
保存内容并退出
如果是 wq! 则表示保存并强制退出

vi a.txt

命令模式(默认): 可以通过简单命令操作文本内容(但是不可以具体编辑)
例如yy 复制当前行  p粘贴  
  dd 删除当前行

命令行模式: 可以通过复杂命令操作文本内容(但是不可以具体编辑)
在命令模式下按shift+: 进入命令行模式
在命令行模式 一直按栅格键 即可回退命令模式
例如退出
  q : quit
  wq: write quit
  q!: 强制退出
例如行号
  set nu / set nonu

编辑模式
在命令模式下,按i a o 即可编辑
i: 当前光标输入
a: 当前光标后输入
o: 下一行输入

在编辑模式下,按ESC回退到命令模式
然后在命令模式按shfit+: 即可进入命令模式

4.2 命令模式

命令 作用
x 删除一个字符
dw 删除一个单词
3dw 删除3个单词
dd 删除一行,光所在行
2dd 删除2行,光标所在行和下一行
r 替换一个字符,在某个字符上按r,然后再按另一个新字符,这样新字符就会替换原来的老 字符
cw 先删除这个单词,再进入到编辑模式
cc 先删除当前行,再进入到编辑模式
C 大写C(shift+c),删除光标所在位置到当前行的末尾,然后进入编辑模式
yy 复制当前行
yw 复制一个单词
p 粘贴复制的内容
~ shift+~,把字符进行大小写转换
J shift+j,把当前行和下一行进行连接
u 撤销之前的操作
G shift+g,将光标定位到文件末尾
nG 将光标定位到文件第n行,这里n代表的是行号
/hello 查找和hello的位置,然后使用n可以定位到下一个匹配的地方,从上往下查找
?test 查找和test的位置,然后使用n可以定位到下一个匹配的地方,从下往上查找
将把光标移动到下一个字的字尾
w 将光标移至下一个字的字首
b 将光标移至上一个字的字首
h 将光标左移
l 将光标右移
j 将光标下移
k 将光标上移

4.3 命令行模式

Linux学习(完整)_第8张图片

5 环境变量

5.1 Linux
设置临时的环境变量的值:

name=tom

使用$符合,获取环境变量的值:

echo $name

注意,这种临时设置环境变量的方式,一旦关闭命令创建,这个环境变量就失效了

设置用户级别的环境变量:把环境变量配置到用户家目录中的.bashrc中
vi .bashrc
Linux学习(完整)_第9张图片

保存退出后,使用 source 命令,让修改过的配置文件生效:Linux学习(完整)_第10张图片
当前默认使用的bash,在这个窗口中切换到sh中,然后再查看sh中是否能使用刚刚配置的环境变量:Linux学习(完整)_第11张图片

打开命令窗口默认使用的bash是父shell,又打开的sh是子shell,这时候父shell中配置的环境变量没有传递给子shell中,如果想让它进行传递,需要使用export命令将配置好的环境导出。(exit退出)

先退回到bash中,使用vi打开.bashrc进行修改:
vi .bashrc
Linux学习(完整)_第12张图片
保存退出,再进行上面的测试过程:
Linux学习(完整)_第13张图片

可以看出,导出的环境变量已经在子shell中生效了 在这个实验操作中,一定要理解 source 命令和 export 起到的作用

如果想设置全局的环境变量,就是所以用户都可以访问到,那么就需要在 /etc/profile 中进行配置环境
变量,但是需要使用root权限才能修改,或者使用sudo命令。修改方式和上面一样。
建议一般在~/.bashrc中进行配置即可。
Linux学习(完整)_第14张图片
Linux学习(完整)_第15张图片
Linux学习(完整)_第16张图片
Linux学习(完整)_第17张图片

5.2 windows

windows系统中,环境变量的意义和作用和Linux中列举出的基本一致。

windows和Linux中环境变量的主意区别:
配置的地方或方式不同
引用变量的符号不同,windows使用变量名字俩边加%符号,Linux使用变量名字左边加$符号
多个路径之间分割的符号不同,windows使用分号,Linux使用冒号
windows系统中环境变量名字的大小写不敏感,而Linux中大小写是敏感的
Linux学习(完整)_第18张图片
Linux学习(完整)_第19张图片

6 归档压缩

6.1 归档

归档,把若干个文件或目录简单的合并在一起,它并不对文件进行压缩,就是将多个文件前后连接

在一起,形成一个大文件。
另外还会额外的添加一些信息,所以归档后的总文件的大小,反而往往比之前文件之和还要大一
些。
例如,把指定文件和目录进行归档

 tar -cvf work.tar a b c test1 test2

例如,解除归档文件到指定目录中

tar -xvf work.tar -C dir1

tar命令常用的选项及其作用:
Linux学习(完整)_第20张图片

6.2 压缩

压缩,是一种通过特定的算法来减小计算机文件大小的机制,Linux中的文件压缩命令有多种,其 中最常用的命令就是gzip。

例如,将归档好的文件进行压缩

gzip work.tar

在tar进行归档之后直接进行压缩:

tar -zcvf work.tar.gz a b c test1 test2

6.3 解压

例如,对gz文件进行解压,解压到当前目录

gunzip work.tar.gz

例如,对tar.gz文件进行解压并解除归档

tar -zxvf work.tar.gz -C dir2

思维导图

Linux学习(完整)_第21张图片

你可能感兴趣的:(linux,学习,运维)