linux1

day1

Linux的基本使用

输入密码登录,不能以访客登陆

关机时候先关闭ubuntu,在关闭vmware

Linux文件系统介绍

Linux没有类似windows的盘符,只有一个根目录,用/表示

所有的文件和子目录都在根目录下面

Linux是多用户操作系统,每个用户都有一个属于自己的目录,叫主目录,主目录在/home下

Linux常用的系统目录,系统目录的文件不能随便修改删除

Linux命令快速演练

进入终端--右键打开终端

Ctrl+shift+ +--放大字体

Ctrl+- --缩小字体

ls # 查看当前目录内容

cd # 切换目录

cd dbs # 进入dbs目录

cd .. # 回到上级目录

touch a.txt # 创建一个空文件a.txt

mkdir aaa # 创建一个目录aaa

rm a.txt # 删除a.txt

rm -r aaa # 删除目录aaa

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps1.jpg)

Linux命令的常用方式

上下键快速调出之前执行过的命令

Tab自动补齐

Linux下所有的命令和文件目录名大小写字母不同

Linux命令后面如果有参数,命令和参数之间一定有空格

Linux命令一般都是小写字母构成的

查看linux命令帮助

命令--help

Man命令

按空格键向下翻页

按tab键向上翻页

按q退出

Pwd查看当前目录

Pwd

Ls查看内容

-a查看所有内容

-l用列表方式显示详细信息

-h一般和-l联合使用,-hl显示文件大小的时候,用人性方式显示大小

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps2.jpg)

Ls -l的结果

第一部分:d目录,-是文件,l链接文件

第二部分:rwxrwxr-x,文件存储权限

第三部分:2 硬链接数

第三部分:python python 文件所属的用户和组名

第四部分:4096,文件大小

第五部分:文件最后修改时间

第六部分:文件或者目录名

权限

Rwxrwxrwx,三部分组成,每三个字母为一组

第一组:文件所属用户的权限

第二组:文件所属组的权限

第三组:其他用户和组对文件的权限

r读 w写 x执行 -没有对应权限

rwx---r-- # 用户可读可写可执行,组不能读写执行,其他用户可读,不能写和执行

rw-rw---- # 用户可读可写不可执行,组可读可写不可执行,其他用户无任何权限

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps3.jpg)
Ls 目录名 显示指定目录内容

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps4.jpg)

通配符

*任意多个字符

?一个字符

[abc]abc字符中的任意一个

[a-f]a到f字符的任意一个

cd /bin # 把当前目录切换为根目录的bin目录

ls *l # 查看前面任意字符,最后l结尾的文件或者目录

ls l* # 查看l开头,后面任意

ls a*l # 查看a开头,l结尾,中间任意

ls l? # l开头,后面只有一个任意字符

ls [abc]* # a或者b或者c开头,后面任意

ls [a-g]* # a到g之间任意开头,后面任意

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps5.jpg)

Chmod修改权限

u用户user,g组group,o其他other,a所有all

+增加-去除=直接赋值

cd # cd直接回车代表回到用户的主目录

touch a.txt # 新建一个文件,用于练习chmod命令

chmod u+r a.txt # 为a.txt所属用户增加r权限

chmod u-r a.txt # 所属用户去掉r权限

chmod g+rw a.txt # 组增加r和w权限

chmod o-rwx a.txt # 其他用户所有权限都去掉

chmod a+rwx a.txt # 所有用户增加所有权限

chmod u=r a.txt # 给所属用户赋值r,wx不要

chmod a=r a.txt # 给所有用户入职r,wx不要

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps6.jpg)

数字法

R4 w2 x1

chmod 777 a.txt rwxrwxrwx

chmod 567 a.txt r-xrw-rwx

chmod 123 a.txt --x-w--wx

Cd切换当前目录

cd 目录名 进入指定的目录

cd .. 回到上级目录

cd

cd ~ 回到用户的主目录

cd / 回到根目录

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps7.jpg)

相对路径和绝对路径

相对路径总是从当前目录开始计算

cd dbs # 进入当前目录下的dbs目录

cd .. # 返回当前目录的上级目录

绝对路径总是从根目录开始

cd / # 回到根目录

cd /home # 回到根目录的home下

cd /bin # 回到根目录的bin目录下

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps8.jpg)

cd # 回到主目录

cd ..

cd

cd /home

cd

cd dbs

cd

cd /home/python/dbs

cd

cd ../../bin

cd

cd /bin

Touch

如果文件不存在,创建新文件

如果文件存在,修改文件的最后修改日期

touch a.txt

touch b.txt

Mkdir

创建目录

-p创建有层级关系的多级目录

mkdir abc # 创建一个abc目录

mkdir -p a/b/c # 创建a目录,里面有b目录,里面有c目录

rm

删除文件或者目录

-r删除目录

-f强制删除,即使不存在,也不提示

rm a.txt # 删除文件a.txt

rm -r abc # 删除目录abc

rm -f a.txt # 删除文件a.txt,即使文件不存在,也不报错不提示

rm -rf abc # 删除目录abc,即使目录不存在,也不报错不提示

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps9.jpg)

cp拷贝文件

cp 源文件 目标文件

-r 如果是目录,那么就需要加r参数

-i 如果目标文件已经存在,i参数会提示是否覆盖目标文件

cd

touch a.txt

mkdir abc

cp a.txt abc/a.txt # 把文件a.txt拷贝到目录abc下,文件名还叫a.txt

cp a.txt abc/b.txt # 把文件a.txt拷贝到目录abc下,文件名改为b.txt

cp -i a.txt abc/b.txt # 把文件a.txt拷贝到目录abc下,文件名改为b.txt,如果b.txt已经存

在,会提示是否覆盖

mv移动文件

mv 源文件 目标文件

mv命令与cp命令语法基本一致,区别是cp之后源文件存在, mv之后源文件不存在

cd

touch a1.txt

mv a1.txt abc/a1.txt # 把a1.txt移动到abc目录下,名字还叫a1.txt

mv abc/a1.txt a1.txt # 把abc目录下的a1.txt移动到当前目录

mv a1.txt a2.txt # 把a1.txt改名为a2.txt

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps10.jpg)

cat查看文件

查看文件内容

cd /proc

cat cpuinfo # 查看文件cpuinfo的内容

cat version # 查看文件version的内容

cat -n cpuinfo # 显示文件内容同时显示行号

cat -b cpuinfo # 显示文件内容,空行不编号

more分屏显示

查看文件内容,如果内容特别多,会自动分屏显示

more memino # 查看文件meminfo内容,如果内容一屏显示不下,会自动分屏, 按空格键显示下一屏

grep查找指定内容

在指定的文件中查找指定的内容

grep '要找的内容' 文件名

grep 'cpu' cpuinfo # 在文件cpuinfo中查找字符串cpu

grep -n 'cpu' cpuinfo # 查找字符串cpu,并显示行号

grep -v 'cpu' cpuinfo # 查找没有字符串cpu的行

grep -i 'cpu' cpuinfo # 查找字符串cpu不区分大小写

Grep的模式查找

^字符 # 查找以指定字符开头的行

字符$ # 查找以指定字符结尾的行

^字符.*字符$ 查找指定字符开头,指定字符结尾的行

grep ^a cpuinfo # 查找字符a开头的行

grep 0$ cpuinfo # 查找字符0结尾的行

grep ^a.*0$ # 查找a开头,0结尾的行

Echo回显

echo hello # 执行结果就是显示hello

echo aaaaa # 执行结果就是显示aaaaa

Clear清除屏幕

clear # 把当前屏幕清空

重定向

Linux允许把一个命令执行的结果,放入另外一个文件中

重定向符

>如果目标文件不存在,就创建文件,如果存在就覆盖文件

>>如果目标文件不存在,就创建文件,如果存在就在文件后面追加

cd

ls > a.txt # 把ls命令执行的结果放入a.txt中,如果a.txt文件不存在就创建,如果存在就覆盖

ls -l >> a.txt # 把ls -l命令执行结果方法哦a.txt,如果a.txt不存在就创建,如果存在,在文件

内容后面追加

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps11.jpg)

管道 |

Linux允许把一个命令的输出作为另一个命令的输入

命令1 | 命令2

ls -l > a.txt

grep ^d a.txt

# 把以上两步合成一步的语法

ls -l | grep ^d

ls -al | more # 把ls -al的结果分屏显示

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps12.jpg)

![img](file:///C:Users39861AppDataLocalTempksohtml4800wps13.jpg)

Find

查找指定文件

find 开始目录 -name 文件名

find ./ -name a.txt # 从当前目录开始查找所有子目录,是否有文件a.txt

Ln

Ln作用是创建一个链接文件,链接文件类似于windows的快捷方式

-s创建软连接

ln a.txt a # 给文件a.txt创建一个硬链接a

ln -s a.txt aa # 给文件a.txt创建一个软链接aa

硬链接和软链接的区别

硬链接文件与源文件大小一致

软链接不管源文件多大,总是很小

源文件每多一个硬链接ls -l的时候显示硬链接数会增加1

软链接不会影响ls -l显示的硬链接数

当源文件不存在了,硬链接可以使用,但软链接就无效了

目录的权限

R--可以用ls查看目录的内容

W--可以在目录下增加和删除文件

X--可以通过cd进入目录

操作这个练习的步骤

回到主目录下

创建一个目录

尝试用chmod修改这个目录的权限,然后ls查看目录,或者cd进入目录,或者在目录下增加文件

Cd user进入当前目录下的user目录

Cd /user 进入根目录下的user目录

命令1 | 命令2

Ls | grep

Ls -a | more

命令1必须有输出, 命令2必须能读文件

如果只在当前目录查找文件用ls,在当前文件的子目录查找用find

day2

随堂材料
cd user    # 进入当前目录下的user目录
cd /user  # 进入根目录下的user目录
cd -user #  这样写是不对的

cd * 

命令1 | 命令2
命令1必须有输出  命令2必须能读文件

ls | more

ls | grep
grep | ls

/etc目录下有文件ucf.conf
/proc目录下有文件cpuinfo
把这两个文件通过vi, 内容合并为一个文件,文件在用户的主目录下,文件名为a1.txt
文件第一行修改为hello
最后一行修改为world,保存a1.txt退出
gzip

压缩和解压文件

压缩--gzip 要压缩的文件

压缩后源文件不存在

解压--gzip -d 要解压的文件

解压后,压缩文件不见了

ls -l > a.txt
gzip a.txt
gzip -d a.txt.gz

linux1

zip

压缩和解压文件

压缩:zip a.zip a.txt#把文件a.txt压缩为 a.zip
#压缩完之后,源文件和压缩文件都存在
解压:uzip a.zip
#解压之后,压缩文件a.zip仍然存在

linux和unix下,首选用gzip压缩,zip压缩是为了和windows有通用的压缩格式

tar

把多个文件或者目录打包成一个文件

打包:tar -cvf 打包文件.tar 要打包的目录
查看打包文件内容:tar -tvf 打包文件.tar
解包:tar -xvf 打包文件.tar
mdkir abc
cd abc
#在abc目录下随便创建几个文件
cd ..#打包abc目录,一定要返回abc的上级目录
tar -cvf abc.tar abc#把目录abc打包成一个文件abc.tar
rm -r abc#已经打包成文件了,abc目录没用了
tar -tvf abc.tar#查看tar文件内容
tar -xvf abc.tar解包

linux1

tar和gzip的配合使

不会单独使用tar,实际场景是tar之后总是用gzip压缩

z参数可以实现自动使用gzip压缩和解压

打包同时压缩:tar -zcvf 打包压缩文件名.tar.gz 目录名

解压后解包:tar -zxvf 打包压缩文件名.tar.gz
tar -zcvf abc.tar.gz abc#把abc目录打包并压缩为abc.tar.gz

tar -zxvf abc.tar.gz#把文件解包同时解压
df

查看磁盘使用情况

df
df -h用人性化方式显示
ps

查看系统进程信息

进程就是正在运行的程序

ps aux或者ps -aux效果相同

linux1

top

动态查看进程信息c

top#推出top界面按q键

linux1

linux1

kill

终止进程

kill PID
kill -9 pid强制杀死进程pid

使用kill的步骤

  • 先用ps aux找到要杀的进程pid
  • 然后用kill pid杀死

linux1

ping

检查与目标主机是否网络联通

ping 目标域名或者ip地址

linux1

ifconfig

查看网卡信息

ifconfig

linux1

su

切换用户

su - 用户名

如果是root,切换到其他用户不需要密码

su - root #等价于su - 切换到root用户的主目录
su root等价于 su
-代表切换用户,同时把当前目录修改为用户的主目录
没有-  代表只切换用户,不改变当前用户的目录

linux1

exit

返回前一个用户

su切换到用户,可以用exit返回到之前的用户

useradd

增加用户

useradd -d 目录名
useradd -m 目录名
  1. 只有root有权限添加用户,所有执行useradd前先切换到root用户
  2. -d指定添加用户的主目录
  3. -m如果指定的用户不存在,就自动创建这个目录
  4. 用户的主目录和用户名一样
  5. 主目录都要放到/home下
su - #切换到root用户的主目录
useradd -d /home/user1 user1 -m#创建一个用户名叫user1,主目录在/home/user1,如果主目录不存在,自动创建

linux1

passwd

修改密码.

passwd 用户名,省略用户名代表修改用户自己的密码
普通用户只能修改自己的密码,只有root用户才能修改其他用户的密码

passwd user1 #修改用户user1的密码
whoami

显示当前登录用户名

whoami

linux1

userdel

删除用户

  1. 只有root用户才有权限删除用户
  2. r删除用户的主目录和邮箱
  3. f强制删除,即使用户已经登陆,也删除
不要用user1用户su到root用户
su - 
userdel -rf user1
user1最好不是登陆状态

linux1

vi
  • 用vi新建一个文件--vi a.txt

  • 输入内容--hello

    进入vi后按i键(插入文本)接下来可以输内容

  • 保存退出--按esc保存,按冒号,输入wq回车

linux1

vi的三种模式
  1. 命令模式--第一次进入vi,默认就是命令模式
  2. 输入模式--在命令模式下按i键,进入输入模式//输入模式下按esc,回到命令模式
  3. 末行模式--在命令模式下按冒号进入末行模式//输入wq进入命令模式
  4. 不论在什么模式,按esc总能回到命令模式
  5. 输入模式不能直接进入末行模式
vi的启动方式
  1. vi新文件 创建一个新文件
  2. vi 已有文件--打开文件
  3. vi 空--没有输入文件,先进入vi的命令模式
从命令模型进入输入模式的指令
  • i--在光标当前位置插入
  • a--在光标后面的位置插入
  • o--在关闭所在行的下一行插入
  • O--在光标所在行的上一行插入
  • A--在关闭所在行的行尾插入
  • L--在光标所在行的行首插入
启动vi没有指定文件名的操作方式
  • 如果启动vi没有输入任何内容--按冒号进入末行,接着按q回车

  • 启动vi输入了内容

    1.不保存退出(先回到命令行//按冒号进入末行,输入q!)

    2.保存退出(先回到命令行//按冒号进入末行,输入w 文件名,末行继续输入q)

命令模式下的删除指令
  • x--删除光标所在的一个字符
  • dd--删除光标所在的一行
  • ndd--n是数字,代表删除从光标开始向下指定的数量行eg 5dd删除光标一下5行
命令模式下的撤销指令
  1. u--撤销
  2. ctrl+r--反撤销
命令模式下的复制和粘贴
  • yy--复制光标所在的一行
  • nyy--复制光标所在向下n行eg3yy
  • p--在光标以下进行粘贴
命令模式下的查找指令
/要查找的字符串
  • n--查找下一个
  • N--查找上一个
末行模式指令
  • w--保存不退出
  • w 文件名--保存到指定文件
  • wq--保存退出//不可写qw
  • q!--不保存退出
  • q--如果文件内容没有修改,q直接退出||如果文件修改,不能用q退出,否则报错

linux1

案例

linux1

cd
vi /proc/cpuinfo # 进入vi后在命令模式下27yy,代表拷贝27行,退出vi 
vi /etc/ucf.conf # 把光标移动到文件最后,按p,把刚才的内容粘贴过来 
# 把第一行内容修改为hello,最后一行修改为world 
# 回到末行模式 w a1.txt 
# q!退出vi