《Linux》Notes

Linux 命令 篇

0、基础目录

清空当前命令行信息

1
clear

1、文件命令

颜色

  • 蓝色

    文件夹d

  • 青色

    软链接l,通过 ls -l 可以看到会指向真实文件或文件夹

  • 红色

    .tar/.tar.gz 归档压缩包

  • 黑色

    文件-

查看当前目录

1
2
3
4
5
ls
详细模式
ls -l
查看隐藏文件
ls -a

显示当前位置

1
2
pwd
即print working directory

切换目录

1
2
cd
即change directory

几个特殊的目录

1
2
3
4
5
6
7
8
9
10
~
代表当前用户的主目录
.
代表当前目录
..
代表上一级目录

cd ~
cd ~/example
cd ../example

目录操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mkdir abc
mkdir -p abc/123/text
//创建目录即make directory,-p参数将路径的层次目录全部创建

rmdir abc
//删除空目录即remove directory,空目录才能删除,若目录非空,则删除失败

rm -rf abc
rm -rf /*
//删除文件或目录即remove,可以删除非空目录,会连带里面的内容都删除,-rf参数表示强制删除

cp -rf example example2
//复制文件或目录即copy

mv hello helloworld
//移动文件或目录(重命名)即move

归档

1
2
3
4
tar -cvf xxx.tar file1 file2 file3
tar -zcvf xxx.tar.gz example/
//即tape archive,创建档案打包
//c表示create创建档案v表示verbose显示详情f表示file,z表示gzip压缩

还原归档

1
2
3
4
tar -xvf example.tar
tar -xvf example.tar -C mydir
tar -zxvf example.tar.gz
//其中,-C参数指定存放目标目录,默认解到当前目录,z解压缩

软链接

1
2
ln -s example examplelink
//即windows的快捷方式,s表示soft软链接(默认为硬)

2、用户

添加用户

1
2
3
useradd -m test1
//其中sudo表示以管理员身份执行,如下,后面同理
//sudo useradd -m test1

修改用户密码

密码不会显示的,但实际上输入了

1
passwd test1

删除用户

1
userdel test1

注意,删除用户后,不会自动删除/home/test1的文件

可以自己删除sudo rm -rf /home/test1

  • 注意

    • 登陆系统时,默认不允许以root用户登陆

    • 只有特殊用户才能执行sudo

      test1就不能执行sudo

    • 能执行sudo命令的用户叫做 sudoer

超级用户root

类似Windows下的管理员Administrator用户

root有全部权限

  • 设置密码

    sudo passwd root

  • 切换到 root用户(switch user)

    su root

    切换用户仅对当前会话终端有效(临时切换而已),不影响当前桌面环境

  • 退出

    exit

用户组

默认在同名的组

1
2
3
4
5
6
7
8
9
10
11
//创建组
groupadd boys
//创建用户(g表示添加用户同时加到组boys里)
useradd -m -g boys ming
//修改现有用户到新组(usermod用户信息)
usermod -g boys ming

//查看用户和组(一行表示一个group的信息,名称+ID)
cat /etc/group
//查看用户列表(一行一个用户信息)
cat /etc/passwd

以root 登陆桌面

默认不允许

要修改配置

  • 其他用户登陆

  • 切换到root用户

    su root

  • 打开配置1

    gedit /etc/pam.d/gdm-autologin

    注释掉#

    #auth required pam_succeed_if.so user != root quiet_success

  • 打开配置2

    gedit /etc/pam.d/gdm-password

    注释掉

    #auth required pam_succeed_if.so user != root quiet_success

  • 关闭虚拟机,重启

3、文件

文件权限

  • -owner

    文件的属主

  • -r

    是否可读read

  • -w

    是否可写write

  • -x

    是否可执行excute

  • 权限分为三部分

    • 自己
    • 同组
    • 别人

    例如:

    rwxrwxr-x

    rwxrwxr--

    r--------

修改文件权限

只有文件的属主或root可以修改文件权限

1
2
3
4
5
6
chmod o+w example.txt
chmod o-w example.txt
chmod +w example.txt
//即change file mode 修改文件的访问权限
//o表示other别人,+w表示增加write权限,-w表示除去write权限
//人员:a所有人,u自己,o别人,不加人员默认是自己和本组

修改文件属主

1
2
3
chown
//即change owner修改文件的属主,不常用
chown -R 新属主 文件

4、可执行脚本

  • 颜色

    • 普通文本

      黑色

    • 可执行脚本

      绿色

  • 脚本Script,一种解释执行的程序

    Linux 下常见的三种脚本程序

    • Shell 脚本 *.sh
    • Perl 脚本 *.pl
    • Python 脚本 *.py

    脚本文件,本质是一个文本文件

    • 是一个文本文件,具有可执行权限
  • 脚本程序都是由解释器来执行的

    • Shell 脚本解释器 /bin/sh
    • Perl 脚本解释器 /bin/perl
    • Python 脚本解释器 /bin/python3
  • 执行脚本

    两种方式

    • ./hello.py
    • /bin/python3 hello.py

    第二种,相当于传入参数

Shell 脚本

  • 按Shell 语法写出来的脚本

    是Linux 自带的脚本语言

    相当于Windows 下的 DOS 批处理脚本

  • 写文本

hello.sh

1
2
3
#!/bin/sh

echo "hello,world"
  • 添加执行权限

    chmod +x hello.sh

    Linux很严格,自己也要加上x执行权限,才能执行脚本

  • 执行

    ./hello.sh

    执行必须加上路径!

    注意不能是hello.sh,要加上./

Python 脚本

  • 也要走三步流程
    • 加上开头
    • 添加执行权限
    • 用路径执行
1
2
3
#!/bin/python3

print("hello,world")

5、变量

SHELL中的变量

1
2
3
4
5
6
7
8
#!/bin/sh

# 定义变量
OUTDIR = /opt

# 使用变量
echo "output to : ${OUTDIR}"
ls ${OUTDIR}

环境变量

  • 定义一个环境变量

    export OUTDIR=/opt

    然后就可以通过${OUTDIR}来作为/opt使用了

    但是,你在一个终端里定义的环境变量,

    只在当前终端有效

  • 查看当前环境变量命令

    printenv

  • 环境变量是可以在脚本中直接使用的

用户环境变量

  • ~/.profile中定义

    这个隐藏文件本质也是一个SHELL脚本

  • 打开这个文件

  • 在文件末尾文本添加

    export OUTDIR=/opt

  • 重启

原理:当用户打开终端时,会自动执行.profile

将变量注入到当前环境中。

注:

每个用户有自己的.profile

有些Linux 是.bash_profile

系统环境变量

  • 定义的环境变量对所有用户都有效
  • /etc/profile
  • 需要以root命令执行
    • 一般不直接修改/etc/profile
    • 而是在/etc/profile.d/下创建一个自定义的脚本
    • gedit /etc/profile.d/myprofile.sh
    • 写入脚本
    • 重启

PATH 环境变量

  • PATH,最常见的一个环境变量

    用于描述可执行程序的搜索路径

  • 查看

    echo $PATH

  • 路径

    • 冒号:分开多个路径
  • 默认的,系统从以下目录中搜索可执行程序

    • /usr/bin
    • /usr/sbin
    • /usr/local/bin
    • /usr/local/sbin

    注意,是usr不是user!!!

    其中,sbin为超级用户root 才能执行的程序

    /usr/下系统自带的程序,

    /usr/loacl才是用户安装的程序。

  • 修改

    • 在系统变量修改方法中:
      打开gedit /etc/profile.d/myprofile.sh
    • 写入export PATH=$PATH:/home/seymour0314
    • 重启

    当然,使用其他方法也可以,就是PATH生效范围不一样

    若你添加了某个路径,

    那么下次执行这个路径下的可执行文件时,

    就不用通过路径执行了

image-20230418183545180

6、虚拟机网络

  • 先把 VMware 设置在管理员方式运行下

  • 看网络配置部分

  • 注意,宿主机能上网,虚拟机才能上网

7、软件包管理器

注意要sudo执行

  • apt

    • 安装

      apt install net-tools

    • 移除

      apt remove net-tools

    • 搜索

      apt search xxx

    • 列表

      apt list | grep xxx

8、FTP 服务器

  • 比如,传文件给Ubuntu主机

  • 可以在要传文件的主机上使用FileZilla软件传给虚拟机

  • 客户端 FileZilla(Windows)

  • 服务器 vsftpd (Ubuntu)

9、SSH 服务器

  • 略,服务器用到

10、文本编辑

vi/vim

  • vim是vi 的升级版

打开文本编辑

1
vim abc.txt
  • 如果目标文件存在,则打开编辑
  • 如果不存在,会新建一个

切换模式

  • 两个模式

    • 编辑模式 Insert Mode :按i键进入
    • 命令模式 Command Mode :按Esc键进入
  • 退出

    先进入命令模式

    • :wq保存退出
    • :q退出
    • :q!强制退出(放弃保存)