Linux
linux开机启动的程序叫daemon守护进程,windows叫服务service
1. 目录结构
sync # 关机前数据同步
shutdown # 关机
shutdown -h 10 # 10min关机
reboot # 重启
halt # 关机并power off
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 撤销
输入模式:
底线模式:
: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 环境安装