[Linux 01] linux基本概念和简单使用

Linux


linux开机启动的程序叫daemon守护进程,windows叫服务service

1. 目录结构

sync # 关机前数据同步
shutdown # 关机
shutdown -h 10 # 10min关机
reboot # 重启
halt  # 关机并power off

[Linux 01] linux基本概念和简单使用


1.1 树状目录

系统文件(不要动):

/bin:  binary, 目录存放常用的命令
/boot: 存放启动linux时使用的核心文件,包括一些连接文件和镜像文件
/lib 存放基本的动态连接库,如windows 的DLL文件
/lost+found : 存放突然非法关机的文件
/proc: 虚拟目录,是系统内存的映射,可以通过访问目录来获取系统信息(不用管)
/srv : 存放一些服务启动之后需要提取的数据(不用管)、
/sys: 文件系统sysfs的存放地方
/user/src: 内核源代码默认的放置位置(不要动)
/run: 是一个临时文件,存储系统启动以来的信息,当重启时目录被删除(不要动)

挂载:

/dev device, 挂载linux外部设备,如u盘,和访问文件是一样的
/mnt 系统为了让用户临时挂载别的文件系统,可以将光驱等挂载,也可以挂载本地文件
/media 自动识别设备,u盘,光驱等,识别后会挂载在这个目录下

用户目录:

/root 为系统管理员目录, #用 ls -al 可以查看隐藏文件
	                   #进入root权限: sudo -i , 然后输入密码,切换到myuser,用exit就可
/sbin: super user, 存放系统管理员使用的系统管理程序
/usr: 用户的很多应用程序和文件都在这个目录下,类似于windows下的program files目录
	/user/bin : 系统用户使用的应用程序
	/user/sbin: 超级用户使用的比较高级的管理程序和系统守护程序

常用目录:

/etc  目录用来存放所有系统管理所需要的配置文件和子目录(各种redis、等的配置文件位置)
/home 和windows的user一样,里面的目录一般以用户的账号命名
/opt 用来安装软件的项目,比如数据库等。
/tmp : 用来存放临时文件,安装包等/var: 用来存放不断扩充的东西,习惯将经常被修改的目录放在这里,如日志文件
如果是远程,/www 放置服务器相关的资源、环境、项目。

2. 常用基本命令

2.1 目录管理

所有linux参数都可以组合使用

./ #表示当前目录
ls # 参数
-a #列出所有文件,包括隐藏文件
-l #列出详细信息,包括属性和权限等
cd #切换目录,其中,以/ 开头的都是绝对路径,其他都是相对与本路径的相对路径

# 创建mkdir, 删除 rmdir
# 对于多层目录的创建和删除:
mkdir -p test1/test2/test3
rmdir -p test1/test2/test3 #如果不加-p不报错,因为语法没有问题,但删不掉多层目录;

# cp 文件名 要复制到的位置
cp install.sh /home/roy  # 如果文件重复,linux将询问是否覆盖

# 移除 文件、或者目录
rm 
-f 忽略不存在的文件,不会出现警告,强制删除
-r 递归删除目录
-i 互动,询问是否删除

# 移动、 重命名 mv
mv 
-f # 强制移动
-u # 只替换已经更新过的文件
mv 文件/文件夹  目的地
mv 文件名 新文件名 # 对文件夹重命名

2.1 文件属性

十位数的属性, eg: drwxr-xr-x

第一位字母:

  • d: 表示一个目录
  • -:表示一个文件
  • l:表示一个链接文档link, 如windows中的快捷方式,并且用ls -l列出之后,会显示指向的文件地址
  • b:表示装置文件中可供存储的接口设备(可随机存储装置)
  • c:表示装置文件里面的串行端口设备,如鼠标和键盘

后9位:三个为一组, r read, w write, x execute。可读可写可执行

属主权限(属主必须存在于这个系统中)

属组权限(文件拥有者的同组人员,管理、游客,这个组必须存在于系统中),

其他用户权限(和这个文档没有关系的用户)

2.3 修改文件属性:

  • 更改文件属组: chgrp -R 属组名 文件名 # -R 递归修改此文件下的所有属性
  • 更改文件属主: chown -R 属主名 文件名 # 前两个一般不修改
  • chmod : 用来修改文件的权限

方式一: r-4, w-2, x-1 , 分别计算三个组的分数,然后进行修改

​ eg: chmod 777 filename 表示把权限设置为 -rwxrwxrwx;

方式二:使用符号

...不会

2.4 查看文件内容

cat # 从第一行开始显示内容
tac # 从最后一行开始显示内容
nl # 显示的时候显示行号,使用: nl 文件名, 就是cat,但有行号信息
more # 查看文件时,只显示一部分,(可以使用space键进行翻页,enter为显示下一行,:f 可以显示当前的行号, q 退出)
less # 可以往前翻页, more只可以往下翻页,	(
	space翻页,
	上下键进行上下一行,
     q 退出, 
     /要查找的字符串 查找下一个字符串
     ?要查找的字符串 向上查找
     n   查找下一个
     N   向上查找
     )
     
head -n 20 文件名 # 只看前几行
tail -n 20 文件名 # 只看后几行
# 可以使用 man 命令, 来看帮助:
eg; man cat

网络配置: /etc/systemd/networkd.conf

2.5 硬链接和软链接 :

硬链接: A文件 的硬链接 B, A、B都是引用,删除任意一个,另一个都可以继续访问文件

软链接: A文件 的软链接B(实际就是win的快捷方式), 删除A,则快捷方式B不可以访问A了

文件夹test:

touch f1
ln f1 f2
ln -s f1 f3
ll
--------------------------显示: 
-rw-r--r-- 2 roy  roy     0 Feb 17 11:33 f1  #文件
-rw-r--r-- 2 roy  roy     0 Feb 17 11:33 f2	 #文件
lrwxrwxrwx 1 roy  roy     2 Feb 17 11:34 f3 -> f1 #l链接
------------------------
echo "linux learning">> f1
cat f1
#开始删除f1
rm -rf f1
#此时可以访问f2, 显示内容,但f3不存在
#f1, f2可以理解为指针指向文件
#f3 是指向f1指针的指针

3. Vim编辑器

三种模式: 命令模式(Command Mode), 输入模式(Insert Mode),底线模式(Last Line Mode)

命令模式

  • vim newfile.txt 新建一个文件,进入命令模式;如果文件存在,则修改文件;
  • i 进入输入模式;按ESC 从输入模式退出到命令模式
  • 命令模式中,按: 进入底线模式
  • u 撤销

[Linux 01] linux基本概念和简单使用

输入模式

底线模式

:q! #强制退出
ZZ #如果文档没有动过,则直接离开; 如果文档被修改过,则保存后离开
:set nu  #显示行号
:set nonu # 不显示行号

4. Linux账号管理

linux是一个多用户多任务分时操作系统,任何一个要使用系统资源的用户,都需要像管理员申请一个账户

账户管理工作:

  • 用户账户的添加、删除和修改、
  • 用户口令管理
  • 用户组管理

4.1 用户管理

本质: 对etc/passwd 文件进行修改

# 添加用户,本质: 在etc/passwd 文件中写如一个用户,可以cat查看
useradd -选项 用户名
-m: 自动创建这个用户的主目录在/home下
-G: 给用户分配组
# 删除用户
userdel -选项 用户名
-r: 删除用户的同时删除用户的文件夹
# 修改用户
usermod -选项 修改的内容 用户名
-d: 修改用户的目录为/home/233, 但修改的是etc/passwd文件中的地址,需要自己先在/home下创建一个文件夹
usermod -d /home/233 test_user
# 切换用户
# 每一行最后是# 表示是超级用户; $表示普通用户
su 用户名 # 从root切换到普通用户时
sudo su   # 从普通切换到root用户时, 需要输入密码;从普通用户退出到root使用:exit
root@DESKTOP-3I1DQUG:/home# hostname 查看主机名,
hostname otherName #修改为其他的名字,是临时的;永久修改在配置文件 etc/hostname 中修改

#用户密码问题
passwd 用户名 #root用户可以修改密码
passwd #普通用户直接输入可以修改密码
passwd -l 用户名 #root用户冻结其他账号
passwd -u 用户名 #解锁账户

4.2 用户组管理

本质: 对etc/group 文件进行修改

系统可以对一个用户组中的所用用户集中管理,如(开发、测试、运维、root组等)

groupadd 用户组名 #创建用户组,默认id开始于1000, -g 可以指定id
groupdel 用户组名 #删除用户组
# 修改
groupmod -参数 修改的内容 [-参数 修改的内容] 用户组名 #可以有多组参数和修改内容
groupmod -g 600 -n newName oldName
#普通用户切换组:
$时, newgrp 组名 # 如果有权限就切过去了

passwd文件解释:
用户名: 登录密码(看不到,用x代替):用户id: 用户组id: 注释性描述: 主目录: 登录shell

密码在etc/shadow 中存储

cat /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

5. Linux磁盘进程管理

5.1 磁盘管理

usr : Unix software resource

df -h # 列出磁盘的使用量情况,-h为用human readable表示
du -a -h # 列出某个文件夹中的所有文件名和文件大小,包括某个子文件夹中的子子文件夹信息
du -sm /* # 查看目录下每个文件的占用情况
mount /dev/my_device /mnt/my_device #可以挂载格式不兼容的外部设备等设备到本地,来实现访问
umount -f 挂载位置  # 强制卸载

5.2 进程管理

每个进程都有一个父进程,进程的存在方式: 前台、后台;

ps -参数  # 任务管理器
-a 显示当前终端运行的所有进程信息(一个)
-A 显示所有的进程信息
-u 以用户的信息显示进程
-x 显示后台运行进程的参数

#
ps -aux | grep 字符串
| # 在linux中叫做管道符 eg: A|B, 把A参数查出来的结果通过B参数
grep #查找文件中符合条件的字符串

#
ps -ef | grep 某个进程 #显示某个进程的父进程(一般不使用,而是通过目录树来查看)
pstree -pu #显示进程树
-p 显示父id
-u 用户组

# 结束进程
kill -9 id #结束某个进程(死循环时使用)

p15-p18 环境安装

上一篇:解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A


下一篇:Linux打怪通关攻略(17)Linux 进程管理