✨你好啊,我是“ 罗师傅”,是一名程序猿哦。
🌍主页链接:楚门的世界 - 一个热爱学习和运动的程序猿
☀️博文主更方向为:分享自己的快乐 briup-jp3-ing
❤️一个“不想让我曾没有做好的也成为你的遗憾”的博主。
💪很高兴与你相遇,一起加油!

前言

Linux 服务的基本操作

历史

Linux - 维基百科,自由的百科全书 (wikipedia.org)

Linux系统内核+GNU系统套件 = 各种 版本的Linux操作系统

图解

系统

一个Linux操作系统,由是哪个重要的部分组成。内核、Shell、文件系统

  • Kernel
    • 内核,管理硬件设备、内存、进程、交互空间、文件系统、系统程序等。
  • Shell
    • Shell是用户和kernel之间的接口,它也是一个命令解释器,当用户在linux界 面发出一个指令时,命令先传到shell,然后在将这个指令翻译成计算机可 以识别的二进制语言,然后传给计算机内核,告诉他要做什么事情。计算机内核将结果返还给shell,shell翻译成人所熟悉的语言,将结果展示出来
    • 指令-->shell-->二进制-->内核-->result to shell--> show result

常见的几种Shell

  • Bourne shell (sh)
    • 是一个快捷方式,已经被/bin/bash所取代
  • Korn shell (ksh)
    • 语法与Bourne shell 相同,同时具备了C shell 的易用特点
  • C shell (csh)
    • 使用的是”类C“语法,csh是具有C语言风格的使用shell
  • Bourne-again shell (bash)
    • 大多数Linux系统默认使用的Shell,是Bourne shell的一个免费版本,它是最早的Unix Shell

默认普通用户会显示$符号,root账号会显示#符号

1
2
3
查看用户默认使用的shell, echo $SHELL
briup@ubuntu:~$ echo $SHELL
/bin/bash
1
2
3
4
5
6
查看用户当前使用的shell, ps
briup@ubuntu:~$ ps
PID TTY TIME CMD
3519 pts/0 00:00:00 bash
3534 pts/0 00:00:00 ps
PID 进程编号,TTY 与进程关联的终端,TIME 进程使用的总cpu时间,CMD 正在执行的命令行命令

File System

不同的Linux系统或者同一系统的不同版本,文件系统的目录结果可能 会有所区别,但基本属于大同小异

Solaris系统的目录结构:

路径

1
2
3
4
5
# 绝对路径
cat /hello.txt # ("/")根目录
# 相对路径
cat ./hello.txt # ("./")当前目录
cat ../hello.txt # ("../")父级目录

注意,这里的cat是查看文件内容的一个命令

密码

  • 普通用户修改密码 :

    • passwd
  • 设置root(超级用户)用户密码:

    • sudo passwd root

sudo,命令表示临时使用最高权限(root账号权限)进行操作

  • 当前用户,切换到root用户:

注意,普通用户和root用户的命令提示符有所不同

用户

  • 创建一个新的用户swift,家目录为/home/swift,用户登录后使用bash
1
sudo useradd -mk /home/swift -s /bin/bash swift
  • 给新建对的swift用户设置密码
1
sudo passwd swift
  • 切换到swift用户
1
su swift 或者 su - swift
  • 使用sudo命令测试
1
2
3
4
swift@ubuntu:~$ sudo clear
[sudo] swift 的密码:
swift 不在 sudoers 文件中。此事将被报告。
swift@ubuntu:~$

是因为swift用户不在sudo这个用户组中,所以无法使用sudo命令

  • id 命令
1
2
3
swift@ubuntu:~$ id
用户id=1003(swift) 组id=1003(swift) 组=1003(swift)
swift@ubuntu:~$
  • 切换到briup账号,使用sudo命令,将用户swift添加到sudo组中
1
sudo gpasswd -a swift sudo

注意,切换到root用户也可以直接操作

  • 切换到swift用户,查看是否已经在sudo组中,并且测试sudo命令是否可用
1
2
swift@ubuntu:/home/briup$ id
用户id=1003(swift) 组id=1003(swift) 组=1003(swift),27(sudo)
  • 切换到briup用户,使用sudo命令,将swift用户从sudo组中删除
1
2
3
4
swift@ubuntu:/home/briup$ su briup
密码:
briup@ubuntu:~$ sudo gpasswd -d swift sudo
正在将用户“swift”从“sudo”组中删除
  • 使用sudo命令,删除swift用户,并删除swift用户对于的家目录 /home/swift,并 且是强制删除
1
2
3
4
5
briup@ubuntu:~$ sudo userdel -rf swift
userdel: user swift is currently used by process 5358
userdel: swift 邮件池 (/var/mail/swift) 未找到
briup@ubuntu:~$ id swift
id: “swift”:无此用户

注意:千万不要频繁使用 -rf 频繁删除东西啊啊啊~害怕

命令

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

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

例如:显示a.txt的内容,并且显示行号

  • cat -n a.txt

注意事项

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

常用的几个命令:

  • clear 清屏
  • pwd 显示当前工作目录
  • cd 切换目录
  • ls 显示当前目录下的内容列表
1
2
3
4
5
6
7
ls -a //显示隐藏文件和隐藏目录,也就是以点(.)开头的文件和目录
ls -R //递归显示目录中的内容
ls -t //显示目录中的内容列表,并使用时间排序,默认是按着名字排序
ls -l //显示详细信息
ls -a -l //这些参数可以多个一起使用
ls -al //参数可以分开也可以合在一起写
ls -F //显示文件的类型,目录/ 可执行文件* 普通文件
1
2
3
4
5
6
7
8
9
10
11
12
13
-rw-rw-r-- 1 briup briup 199 7月 16 12:16 a.txt
从左到右
- 文件类型,普通文件是- 目录是d 链接文件是l 块设备
文件是b 字符设备文件是c
命令管道文件是p sock文件是s
rw-rw-r-- 权限设置,这里是分三组,分别为拥有者权限、同组人权
限、其他人权限
1 链接号
briup 拥有者
briup 拥有组
199 文件大小
7月 16 12:16 最后修改时间
a.txt 文件名字
  • ls -F

权限

使用ls -l 命令,可以查看文件或目录的相关权限

  • ls -l 或者 ll
  • 截屏中标注的部分就是当前b.txt文件针对用户的权限。
    • r 读权限
    • w 写权限,对目录来说,可生成文件与子目录或删除文件与子目录
    • x 执行权限,对目录来说,可查找该目录下内容
    • - 表示没有任何权限
1
2
3
4
rw- r-- ---
rw- 表示当前文件对拥有者的权限
r-- 表示当前文件对同组人的权限
--- 表示当前文件对其他人的权限
  • 在添加或者删除某个权限的时候:
    • u 表示拥有者
    • g 表示同组人
    • o 表示其他人
    • a 表示所有人
1
2
chmod u+x b.txt
chmod 777 b.txt

也可以是数字来表示权限

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

example:

1
2
# 7 = 1+2+4 即 二进制 111
chmod 777 b.txt

❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭!

书山有路勤为径,学海无涯苦作舟💪。