BSP Day 41

Linux 入门

文件管理

1.文件类型

Unix/Linux对数据文件(.mp3、.bmp),程序文件(.c、.h、*.o),设备文件(LCD、触摸屏、鼠标),网络文件( socket ) 等的管理都抽象为文件,使用统一的方式方法管理。 Linux下一切皆文件。

在Unix/Linux操作系统中也必须区分文件类型,通过文件类型可以判断文件属于可执行文件、文本文件还是数据文件。在Unix/Linux系统中文件可以没有扩展名。

通常,Unix/Linux系统中常用的文件类型有7种:普通文件、目录文件、设备文件、管道文件、链接文件和套接字。

(1)普通文件(-)

普通文件是计算机操作系统用于存放数据、程序等信息的文件,一般都长期存放于外存储器(磁盘、磁带等)中。普通文件一般包括文本文件、数据文件、可执行的二进制程序文件等。

在Unix/Linux中可以通过file命令来查看文件的类型。如果file文件后面携带文件名,则查看指定文件的类型,如果携带通配符“*”,则可以查看当前目录下的所有文件的类型。

(2)目录文件(d)

Unix/Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。

目录文件只允许系统管理员对其进行修改,用户进程可以读取目录文件,但不能对它们进行修改。

每个目录文件至少包括两个条目,“…”表示上一级目录,“.”表示该目录本身。

(3)设备文件(b(块设备文件)/c(字符设备文件))

Unix/Linux系统把每个设备都映射成一个文件,这就是设备文件。它是用于向I/O设备提供连接的一种文件,分为字符设备和块设备文件。

字符设备的存取以一个字符为单位,块设备的存取以字符块为单位。每一种I/O设备对应一个设备文件,存放在/dev目录中,如行式打印机对应/dev/lp,第一个软盘驱动器对应/dev/fd0。

deng@itcast:~/share$ echo “hello world” > /dev/pts/22 hello world

(4)管道文件(p)

管道文件也是Unix/Linux中较特殊的文件类型,这类文件多用于进程间的通信。

(5)链接文件(I)

似于 windows 下的快捷方式,链接又可以分为软链接(符号链接)和硬链接。
 

示例:

普通文件

deng@itcast:~/test$ ls -l /etc/passwd

-rw-r--r-- 1 root root 2372 3月 21 22:48 /etc/passwd

目录文件

deng@itcast:~/test$ ls -ld /etc

drwxr-xr-x 134 root root 12288 5月 28 11:28 /etc

字符设备

deng@itcast:~/test$ ls -l /dev/input/mouse0

crw-rw---- 1 root input 13, 32 5月 26 17:01 /dev/input/mouse0

块设备

deng@itcast:~/test$ ls -l /dev/sda1

brw-rw---- 1 root disk 8, 1 5月 26 17:01 /dev/sda1

创建一个管道文件

deng@itcast:~/test$ mkfifo fifo

deng@itcast:~/test$ ls -l fifo

prw-rw-r-- 1 deng deng 0 5月 28 11:59 fifo

 

符号链接

deng@itcast:~/test$ ls -l /bin/sh

lrwxrwxrwx 1 root root 4 11月 17 2017 /bin/sh -> dash

deng@itcast:~/test$

 

套接字文件

deng@itcast:~/tmp/test$ ls -l /run/systemd/notify

srwxrwxrwx 1 root root 0 8月 8 11:00 /run/systemd/notify

文件权限(chmod) 

 

Linux系统中不仅是对用户与组根据UID,GID进行了管理,还对Linux系统中的文件,按照用户与组进行分类,针对不同的群体进行了权限管理,用他来确定谁能通过何种方式对文件和目录进行访问和操作。

文件的权限针对三类对象进行定义

owner 属主,缩写u

group 属组,缩写g

other 其他,缩写o

每个文件针对每类访问者定义了三种主要权限

r:Read 读

w:Write 写

x:eXecute 执行

另 X:针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)

注意:root账户不受文件权限的读写限制,执行权限受限制

对于文件和目录来说,r,w,x有着不同的作用和含义:

针对文件:

 r:读取文件内容
 
 w:修改文件内容
 
 x:执行权限对除二进制程序以外的文件没什么意义

 针对目录:目录本质可看做是存放文件列表、节点号等内容的文件

 r:查看目录下的文件列表
 
 w:删除和创建目录下的文件
 
 x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)

用户获取文件权限的顺序: 先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。

修改文件权限的方法

chmod 修改权限 change mode

方法1:mode法

格式:chmod who opt per file

  who:u g o a(all)
  
  opt:+ – =
  
  per:r w x X

方法2:数字法

格式:chmod XXX file

  rwx rw- r–	
  111 110 100
  7   6   4
  
  r:4
  w:2
  x:1

 例:chmod 764 file 给file文件添加 rwxrw-r– 权限

chmod -R +X dir 给dir目录添加X执行权限,dir目录下文件不添加执行权限

(如果dir目录下有文件已具备执行权限,则添加该文件执行权限)

注意:只有文件所属者或者sudo或者root用户,才有权力更改文件权限

修改文件所属组chgrp

chgrp [-R] groupname filename
# -R 可选 递归修改filename下所有文件的所属组

不使用 -R 

[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root root 4096 Jun 15 20:56 etc
[root@node1 muzihua]# chgrp muzihua etc/
[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root muzihua 4096 Jun 15 20:56 etc
[root@node1 muzihua]# ll etc/|head -n 5
total 1176
-rw-r--r--  1 root root     44 Jun 15 20:56 adjtime
-rw-r--r--  1 root root   1512 Jun 15 20:56 aliases
-rw-r--r--  1 root root  12288 Jun 15 20:56 aliases.db
drwxr-xr-x  2 root root   4096 Jun 15 20:56 alternatives

 使用 -R

[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root root 4096 Jun 15 20:56 etc
[root@node1 muzihua]# chgrp -R muzihua etc/
[root@node1 muzihua]# ll etc/|head -n 5
total 1176
-rw-r--r--  1 root muzihua     44 Jun 15 20:56 adjtime
-rw-r--r--  1 root muzihua   1512 Jun 15 20:56 aliases
-rw-r--r--  1 root muzihua  12288 Jun 15 20:56 aliases.db
drwxr-xr-x  2 root muzihua   4096 Jun 15 20:56 alternatives

chown修改文件所属用户及所属组 

chown既可以修改文件的所属用户,也可以修改文件的所属组,chown熟练使用后,便可以代替chgrp对文件进行所属组的修改。

chown [-R] ownname:groupname filename

只修改文件所属用户(不使用-R) 

[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root root 4096 Jun 15 20:56 etc
[root@node1 muzihua]# chown muzihua etc/
[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 muzihua root 4096 Jun 15 20:56 etc
[root@node1 muzihua]# ll etc/|head -n 5
total 1176
-rw-r--r--  1 root root     44 Jun 15 20:56 adjtime
-rw-r--r--  1 root root   1512 Jun 15 20:56 aliases
-rw-r--r--  1 root root  12288 Jun 15 20:56 aliases.db
drwxr-xr-x  2 root root   4096 Jun 15 20:56 alternatives

 只修改文件所属用户(使用-R) 

[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root root 4096 Jun 15 20:56 etc
[root@node1 muzihua]# chown -R muzihua etc/
[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 muzihua root 4096 Jun 15 20:56 etc
[root@node1 muzihua]# ll etc/|head -n 5
total 1176
-rw-r--r--  1 muzihua root     44 Jun 15 20:56 adjtime
-rw-r--r--  1 muzihua root   1512 Jun 15 20:56 aliases
-rw-r--r--  1 muzihua root  12288 Jun 15 20:56 aliases.db
drwxr-xr-x  2 muzihua root   4096 Jun 15 20:56 alternatives

  只修改文件所属组(不使用-R) 

[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root root 4096 Jun 15 20:56 etc
[root@node1 muzihua]# chown :muzihua etc/
[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root muzihua 4096 Jun 15 20:56 etc
[root@node1 muzihua]# ll etc/|head -n 5
total 1176
-rw-r--r--  1 root root     44 Jun 15 20:56 adjtime
-rw-r--r--  1 root root   1512 Jun 15 20:56 aliases
-rw-r--r--  1 root root  12288 Jun 15 20:56 aliases.db
drwxr-xr-x  2 root root   4096 Jun 15 20:56 alternatives

  只修改文件所属组(使用-R) 

[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root root 4096 Jun 15 20:56 etc
[root@node1 muzihua]# chown -R :muzihua etc/
[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root muzihua 4096 Jun 15 20:56 etc
[root@node1 muzihua]# ll etc/|head -n 5
total 1176
-rw-r--r--  1 root muzihua     44 Jun 15 20:56 adjtime
-rw-r--r--  1 root muzihua   1512 Jun 15 20:56 aliases
-rw-r--r--  1 root muzihua  12288 Jun 15 20:56 aliases.db
drwxr-xr-x  2 root muzihua   4096 Jun 15 20:56 alternatives

 同时修改文件所属用户和所属组 (不使用 -R)

[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root root 4096 Jun 15 20:56 etc
[root@node1 muzihua]# chown muzihua:muzihua etc/
[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 muzihua muzihua 4096 Jun 15 20:56 etc
[root@node1 muzihua]# ll etc/|head -n 5
total 1176
-rw-r--r--  1 root root     44 Jun 15 20:56 adjtime
-rw-r--r--  1 root root   1512 Jun 15 20:56 aliases
-rw-r--r--  1 root root  12288 Jun 15 20:56 aliases.db
drwxr-xr-x  2 root root   4096 Jun 15 20:56 alternatives

  同时修改文件所属用户和所属组 (使用 -R)

[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 root root 4096 Jun 15 20:56 etc
[root@node1 muzihua]# chown -R muzihua:muzihua etc/
[root@node1 muzihua]# ll
total 4
drwxr-xr-x 62 muzihua muzihua 4096 Jun 15 20:56 etc
[root@node1 muzihua]# ll etc/|head -n 5
total 1176
-rw-r--r--  1 muzihua muzihua     44 Jun 15 20:56 adjtime
-rw-r--r--  1 muzihua muzihua   1512 Jun 15 20:56 aliases
-rw-r--r--  1 muzihua muzihua  12288 Jun 15 20:56 aliases.db
drwxr-xr-x  2 muzihua muzihua   4096 Jun 15 20:56 alternatives

网络设置

安装ifconfig

sudo apt install net-tools

ping

ping + ip,连接俩台电脑

Linux常用命令

关机和重启

shutdown -h now                 #立刻关机

shutdown -h 5                      #5分钟后关机

poweroff                               #立刻关机

halt                                       #立刻关机

-------------------------------------------------------------------------------------------------------------------------

shutdown -r now                   #立刻重启

shutdown -r 5                        #5分钟后重启

reboot                                    #立刻重启

 

注意:1.不管关闭还是重启,都应该先运行sync命令,把内存数据写入磁盘

           2.who 一下看谁还在线,要不可能会让其他人也跟着关机

帮助命令 --help、man

命令 --help         #查看简版用法

man 命令           #查看详细版用法

 pwd查看当前绝对命令

 pwd                #显示当前绝对路径

查看进程ps

进程介绍

                a.在Linux中每个执行程序的都称为一个进程,每一个进程都分配一个ID号(PID)

                b.每一个进程都会对应一个父进程,而这个父进程会有很多个子进程

                c.每个进程都有两种存在方式(前台或后台)

                d.一般系统服务都是以后台形式存在,都会常驻到系统中,直到关机才结束
 

ps                                        #显示当前进程状态

ps -A                                    #显示所有进程

ps -au                                  #以用户的形式显示进程信息

ps -aux                                #显示所有进程信息(较详细)

查看进程树

pstree                                #可以以树的形式查看进程信息

pstree -p                            #显示进程的PID

pstree -u                            #显示进程的所属用户

(也可以-p -u一起用) 

more命令

Linux more命令类似于cat,不过会以一页一页的形式显示,更方便使用者逐页阅读用空格下一页,b为上一页

more -s testfile                         #逐页显示testfile的内容

more +20 testfile                      #从20行开始显示文件内容

grep命令

grep "printf" 1.c                        #查找文件中printf的字符串

grep -c "printf" 1.c                    #查找printf出现的次数 

| 是管道,我们可以用| + grep 内容来检索我们想要的内容

结束进程kill

kill 25546                                  #正常方式中止进程25546(进程号)

kill -9 25546                              #直接杀死进程25546

kill -KILL 25546                         #直接杀死进程25546

kill -15 25546                             #释放资源后,杀死25546 

ifconfig查看网卡信息

#显示网络设备信息

ifconfig

...

需要sudo权限

#关闭eth0网卡

ifconfig eth0 down

#开启eth0网卡

ifconfig eth0 up

...

#给eth0网卡配置IP地址,加上掩码,加上个广播地址192.168.1.255

ifconfig eth0 192.168.1.202 netmask 255.255.255.0 broadcast 192.168.1.255 

动态监控进程top

top和ps类似,但是top它会实时更新,动态监测进程

top -d                         #每隔几秒更新,默认3s

top -i                          #不显示闲置或者僵死的进程

top -p                         #指定监控的进程ID,仅监控某个进程的状态

目录操作命令

切换目录 cd

cd /home/ddd                        #绝对路径,切换到ddd目录

cd ../                                      #回到上级目录

cd ..                                       #回到上级目录

cd ../..                                    #回到上上级目录

cd ./                                       #在当前目录下

cd /                                        #进入根目录

cd ~                                       #进入当前用户下的家目录

cd -                                        #返回上一个目录

查看目录 ls

ls                                              #查看当前目录下所有文件

ls -a                                          # 查看所有文件(包括隐藏文件)

ls -l                                           #按名称、列表查看当前目录下目录和文件的详细信息

ls -al                                         #按名称、列表查看当前目录下所有目录和文件的详细信息

ls -lst                                        #按时间顺序查看

ls -lrt                                         #按时间倒序查看

 创建目录 mkdir

 mkdir aaa                                        #创建aaa文件夹

 mkdir aaa/bbb                                 #在aaa里创建bbb(aaa必须存在)

 mkdir -p aaa/bbb                             #在aaa里创建bbb(aaa不存在则自动创建)

删除目录 rmdir

rmdir aaa                                        #删除aaa空目录

rmdir -p aaa/bbb/ccc                       #删除当前目录下的空aaa/bbb/ccc

rm -rf aaa/bbb/ccc                           #递归删除

rm -fr ./*                                           #删除当前目录下的所有文件及目录  

拷贝目录 cp

cp -r bbb ccc                                #递归将bbb目录及里面的内容复制到ccc目录下

cp -r -p aa bb                               #保持文件属性(时间戳)递归把aa目录复制到bb目录下

修改目录 mv

mv aaa ccc                                    #将目录aaa改名为ccc

mv ccc/bbb .                                  #将ccc下的bbb目录剪切到当前目录下

历史命令 history

history

history + 10                                   #显示最新的10条命令

命令路径查询which

which 命令                                        #查询命令的路径

whitis 

whitis 命令                                        #打印该命令的单行说明 

wc

wc 文件名                                          #打印文本文件中的字数

ls -al | wc -l                                         #统计ls -al命令的行数 

 wget

wget 是从互联网检索内容的实用工具,它拥有最大的flags之一

wget //http:www.baidu.com/index.html                            #从百度下载文件 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixiaxiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值