文件目录的增删改查ARUL

A

  1. # 创建一个普通文本文件

R

U

L

  1. # 查询当前目录下的内容 ls命令
  2. # ls命令就是list的缩写
  3. [root@localhost tylor]# ls .
  4. cv_debug.log 公共 模板 视频 图片 文档 下载 音乐 桌面
  5. [root@localhost /]# ls .
  6. bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
  7. [root@localhost /]# ls /
  8. bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

几个特殊的目录

  1. . # 当前的目录
  2. [root@localhost tylor]# ls .
  3. cv_debug.log 公共 模板 视频 图片 文档 下载 音乐 桌面
  4. .. # 上一级的目录
  5. [root@localhost tylor]# ls ..
  6. tylor
  7. - # 代表当前登录用户的home目录 root用户就是/root 普通用户就是 /home/tylor
  8. [root@localhost /]# cd /home/tylor
  9. [root@localhost tylor]# ls
  10. cv_debug.log 公共 模板 视频 图片 文档 下载 音乐 桌面
  11. [root@localhost tylor]# ls --
  12. cv_debug.log 公共 模板 视频 图片 文档 下载 音乐 桌面
  13. - # 代表上一次的工作目录

相对路径和绝对路径

  1. [root@localhost home]# ls /home 绝对路径
  2. tylor
  3. [root@localhost home]# ls . 相对路径
  4. tylor

查找命令对应的包

  1. yum search killall
  2. yum -install psmisc

Linux常用命令

mkidr

  1. [caesar@vvkt7whznuckhiz2-0723575 ~]$ ls
  2. first.py
  3. [caesar@vvkt7whznuckhiz2-0723575 ~]$ mkdir haha.md ms.min
  4. [caesar@vvkt7whznuckhiz2-0723575 ~]$ ls
  5. first.py haha.md ms.min

tree

  1. # 以树状显示目录的层级结构;yum 相当于python的 pip
  2. yum -y install tree # y 意味着默认同意安装
  3. [caesar@vvkt7whznuckhiz2-0723575 ~]$ mkdir -p a/b c/d
  4. [caesar@vvkt7whznuckhiz2-0723575 ~]$ tree
  5. .
  6. ├── a
  7. └── b
  8. ├── c
  9. └── d
  10. └── first.py

man

查看帮助信息,或者其他命令

  1. man mkdir
  2. MKDIR(1) User Commands MKDIR(1)
  3. NAME
  4. mkdir - make directories
  5. SYNOPSIS
  6. mkdir [OPTION]... DIRECTORY...
  7. DESCRIPTION
  8. Create the DIRECTORY(ies), if they do not already exist.
  9. Mandatory arguments to long options are mandatory for short options too.
  10. -m, --mode=MODE
  11. set file mode (as in chmod), not a=rwx - umask
  12. -p, --parents
  13. no error if existing, make parent directories as needed
  14. -v, --verbose
  15. print a message for each created directory
  16. -Z set SELinux security context of each created directory to the default type
  17. --context[=CTX]
  18. like -Z, or if CTX is specified then set the SELinux or SMACK security context to CTX
  19. --help display this help and exit
  20. --version
  21. output version information and exit
  22. GNU coreutils online help: <http://www.gnu.org/software/coreutils/> Report mkdir translation bugs to
  23. <http://translationproject.org/team/>
  24. AUTHOR
  25. Written by David MacKenzie.
  26. COPYRIGHT
  27. Copyright © 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later
  28. <http://gnu.org/licenses/gpl.html>.
  29. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent per
  30. mitted by law.
  31. SEE ALSO
  32. mkdir(2)
  33. The full documentation for mkdir is maintained as a Texinfo manual. If the info and mkdir programs are prop
  34. erly installed at your site, the command
  35. info coreutils 'mkdir invocation'
  36. should give you access to the complete manual.
  37. GNU coreutils 8.22 November 2020 MKDIR(1)

简短帮助信息

  1. [caesar@vvkt7whznuckhiz2-0723575 ~]$ mkdir --help
  2. Usage: mkdir [OPTION]... DIRECTORY...
  3. Create the DIRECTORY(ies), if they do not already exist.
  4. Mandatory arguments to long options are mandatory for short options too.
  5. -m, --mode=MODE set file mode (as in chmod), not a=rwx - umask
  6. -p, --parents no error if existing, make parent directories as needed
  7. -v, --verbose print a message for each created directory
  8. -Z set SELinux security context of each created directory
  9. to the default type
  10. --context[=CTX] like -Z, or if CTX is specified then set the SELinux
  11. or SMACK security context to CTX
  12. --help display this help and exit
  13. --version output version information and exit
  14. GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
  15. For complete documentation, run: info coreutils 'mkdir invocation'

systemctl命令

  1. systemctl status redis # 查看redis服务的状态
  2. systemctl start redis # 开启服务
  3. systemctl stop redis # 停止服务
  4. systemctl restart redis # 重启服务
  5. systemctl enable redis # 设置开机自启
  6. systemctl disable redis # 关闭开机自启

history命令

可以查看当前用户的历史命令

  1. !608 # 重新执行608行的命令

echo命令

相当于python中的print函数,可以输出字符串给用户看

  1. [root@tylor ~]# echo "You love I"
  2. You love I
  3. [root@tylor ~]#

第二种方法,记得为变量赋值时不能在变量和符号之间有空格

  1. # $符号用于取值,类似于Ajax中的$
  2. # Linux在命令行对变量的赋值是临时的
  3. # 变量名区分大小写
  4. name="How are you"
  5. echo $name
  6. How are you

cat

查看文件内容

  1. [caesar@vvkt7whznuckhiz2-0723575 ~]$ cat first.py
  2. #!coding:utf-8
  3. print("Hello World!")
  4. [caesar@vvkt7whznuckhiz2-0723575 ~]$ cat -n first.py
  5. 1 #!coding:utf-8
  6. 2 print("Hello World!")

Linux中的重定向符号

  1. > # 重定向输出覆盖符, 如同python 中的with open中的 w 模式
  2. >> # 重定向输出追加符, 如同 a 模式
  3. < # 重定向谢图覆盖符,用的很少, 主要在数据库导入中,MySQL数据导入
  4. << # 用在cat命令中,很少见

案例

  1. [root@vvkt7whznuckhiz2-0723575 caesar]# cat >>木兰诗.text << EOF
  2. > 唧唧复唧唧
  3. > 木兰当户织
  4. > 不闻机杼声
  5. > 慰问女叹息
  6. > EOF
  7. [root@vvkt7whznuckhiz2-0723575 caesar]# cat -n 木兰诗.text
  8. 1 唧唧复唧唧
  9. 2 木兰当户织
  10. 3 不闻机杼声
  11. 4 慰问女叹息

cp命令

拷贝

  1. # 用在对配置文件的备份,代码文件的备份 防止突然写错
  2. # 复制文件
  3. [root@vvkt7whznuckhiz2-0723575 caesar]# cat -n _木兰诗句.text
  4. 1 唧唧复唧唧
  5. 2 木兰当户织
  6. 3 不闻机杼声
  7. 4 慰问女叹息
  8. # 复制文件夹需要添加 -r 递归
  9. caesar@vvkt7whznuckhiz2-0723575 ~]$ cp -r a new_a
  10. [caesar@vvkt7whznuckhiz2-0723575 ~]$ tree
  11. .
  12. ├── a
  13. └── b
  14. ├── c
  15. └── d
  16. ├── first.py
  17. ├── new_a
  18. └── b
  19. ├── \346\226\260_\346\234\250\345\205\260\350\257\227\345\217\245.text
  20. └── \346\234\250\345\205\260\350\257\227.text

mv命令

移动文件夹或者重命名

  1. # 重命名 mv original_name new_name
  2. [caesar@vvkt7whznuckhiz2-0723575 ~]$ mv 木兰诗.text new_木兰诗句.text
  3. [caesar@vvkt7whznuckhiz2-0723575 ~]$ ls
  4. a c first.py new_a new_木兰诗句.text _木兰诗句.text
  5. # 移动位置
  6. # 1 如果文件存在,只需要输入目标文件夹[移动是,工作路径需要与被移动的文件保持一致]
  7. [caesar@vvkt7whznuckhiz2-0723575 ~]$ mv first.py a
  8. [caesar@vvkt7whznuckhiz2-0723575 ~]$ tree
  9. .
  10. ├── a
  11. ├── b
  12. └── first.py
  13. ├── c
  14. └── d
  15. ├── new_a
  16. └── b
  17. ├── new_\346\234\250\345\205\260\350\257\227\345\217\245.text
  18. └── \346\226\260_\346\234\250\345\205\260\350\257\227\345\217\245.text
  19. # 第二种移动方法,如果文件不存在则新建并且移入,需要移动时当前工作路径与被移动文件保持一致
  20. [caesar@vvkt7whznuckhiz2-0723575 ~]$ cd a
  21. [caesar@vvkt7whznuckhiz2-0723575 a]$ mv first.py e
  22. [caesar@vvkt7whznuckhiz2-0723575 a]$ tree
  23. .
  24. ├── b
  25. └── e

alias命令

  1. [caesar@vvkt7whznuckhiz2-0723575 ~]$ alias
  2. alias egrep='egrep --color=auto'
  3. alias fgrep='fgrep --color=auto'
  4. alias grep='grep --color=auto'
  5. alias l.='ls -d .* --color=auto'
  6. alias ll='ls -l --color=auto'
  7. alias ls='ls --color=auto'
  8. alias vi='vim'
  9. alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

案例

快捷启动Django项目

  1. alias start="python3 /home/mysite/manage.py runserver 0.0.0.0:8000"

find命令

可以用于搜索机器上的所有资料,按照文件名字搜索,Linux一切皆文件

  1. # 基本语法
  2. # find 你要从那找 type 文件类型是什么 -size 你要的文件多大 -name 你要的文件名字是什么
  3. # 在系统上全局搜索.txt文件
  4. find / .txt
  5. # 指定在 ```etc```目录下进行局部搜索一个网卡配置文件,网卡名字是以ifcfg开头的文本类型的文件
  6. # 访问 etc需要先转入root权限
  7. find /etc -type f -name "ifcfg"
  8. [root@vvkt7whznuckhiz2-0723575 caesar]# find /etc -type f -name "ifcfg*"
  9. /etc/sysconfig/network-scripts/ifcfg-lo
  10. /etc/sysconfig/network-scripts/ifcfg-eth0

全局搜索和python相关的文件以及文件夹

  1. [root@vvkt7whznuckhiz2-0723575 caesar]# find / -name "python"
  2. /etc/python
  3. /usr/bin/python
  4. /usr/share/gdb/python
  5. /usr/share/gcc-4.8.2/python
  6. /usr/share/swig/2.0.10/python
  7. /usr/libexec/systemtap/python

全局查找类型为文件夹,名字以python开头的所有对象[大量删减输出结果]

  1. [root@vvkt7whznuckhiz2-0723575 caesar]# find / -type d -name "python*"
  2. /etc/python
  3. /usr/lib/python2.7
  4. /usr/lib/python3.6
  5. /usr/libexec/systemtap/python

123

  1. # 准备数据
  2. # mkdir /tmp/python{1..5} 在/tmp文件夹下创建出 python1 python2 ... python5
  3. # mkdir /tmp/python_{a..d} 在/tmp文件夹下创建出 python_a python_b ... python_d

找到所有文件及文件夹的名字包含python的对象

  1. [root@vvkt7whznuckhiz2-0723575 tmp]# find . -name "python*"
  2. ./python4
  3. ./python5
  4. ./python1
  5. ./python_a
  6. ./python_c
  7. ./python3
  8. ./python_d
  9. ./python2
  10. ./python_b

找到类型为文件,名字含有python的对象

  1. [root@vvkt7whznuckhiz2-0723575 tmp]# find . -type f -name "python*"
  2. ./python_a
  3. ./python_c
  4. ./python_d
  5. ./python_b

反之,找出所有的文件夹

  1. [root@vvkt7whznuckhiz2-0723575 tmp]# find . -type d -name "python*"
  2. ./python4
  3. ./python5
  4. ./python1
  5. ./python3
  6. ./python2

查找所有文件或者文件名以python开头,并且文件大小超过15M的

  1. [root@vvkt7whznuckhiz2-0723575 tmp]# find . -size +15M -name "python*"
  2. ./python3.txt
  3. ./python2.txt

查看文件,文件夹大小

  1. # ls -lh # -h参数是显示文件单位,以kb,mb, gb大小为单位,-l是列表形式列出文件
  2. [root@vvkt7whznuckhiz2-0723575 tmp]# ls -lh
  3. total 44M
  4. drwxr-xr-x 2 root root 4.0K Sep 29 09:27 hsperfdata_root
  5. drwxr-xr-x 2 root root 4.0K Sep 29 16:03 python1
  6. drwxr-xr-x 2 root root 4.0K Sep 29 16:03 python2
  7. -rw-r--r-- 1 root root 16M Sep 29 16:15 python2.txt
  8. drwxr-xr-x 2 root root 4.0K Sep 29 16:03 python3
  9. -rw-r--r-- 1 root root 18M Sep 29 16:15 python3.txt
  10. drwxr-xr-x 2 root root 4.0K Sep 29 16:03 python4
  11. drwxr-xr-x 2 root root 4.0K Sep 29 16:03 python5
  12. -rw-r--r-- 1 root root 0 Sep 29 16:05 python_a
  13. -rw-r--r-- 1 root root 0 Sep 29 16:05 python_b
  14. -rw-r--r-- 1 root root 0 Sep 29 16:05 python_c
  15. -rw-r--r-- 1 root root 0 Sep 29 16:05 python_d
  16. -rw-r--r-- 1 root root 10M Sep 29 16:14 python.txt
  17. prw-r--r-- 1 root root 0 Sep 29 16:18 wrapper-616-1-in
  18. prw-r--r-- 1 root root 0 Sep 29 16:18 wrapper-616-1-out

Linux的管道符命令

  1. 1. 过滤服务器上的进程信息
  2. 2. 过滤服务器的端口信息

grep命令

是Linux强大的三剑客之一,从文本中过滤有用信息的命令

  1. 1. 语法
  2. grep "你想要过滤的字符串" 需要过滤的文件 # 用法1
  3. cat 文件 | grep "你想要的内容" # 用法2
  4. 2. 准备一个文件

第一种用法

  1. [root@vvkt7whznuckhiz2-0723575 ~]# vim admir.text
  2. [root@vvkt7whznuckhiz2-0723575 ~]# cat admir.text
  3. 跟着我左手右手一个慢动作
  4. # 左右右手慢动作成果
  5. [root@vvkt7whznuckhiz2-0723575 ~]# grep "个" admir.text
  6. 跟着我左手右手一个慢动作

第二组—过滤结果显示行号,查看文件时显示行号

  1. [root@vvkt7whznuckhiz2-0723575 ~]# vim admir.text
  2. [root@vvkt7whznuckhiz2-0723575 ~]# grep -n "大" admir.text
  3. 15:一个大西瓜,送给你也不送给他
  4. [root@vvkt7whznuckhiz2-0723575 ~]# cat -n admir.text
  5. 1
  6. 2
  7. 3
  8. 4
  9. 5
  10. 6
  11. 7
  12. 8
  13. 9 跟着我左手右手一个慢动作
  14. 10
  15. 11 # 左右右手慢动作成果
  16. 12
  17. 13
  18. 14
  19. 15 一个大西瓜,送给你也不送给他

第二组—忽略大小写,查看ALLOW_HOST是否被修改

  1. # 查找包含空格的内容
  2. [root@vvkt7whznuckhiz2-0723575 ~]# grep " " admir.text
  3. ALLOW_HOST = []
  4. # 以空开头,空结尾的空白行
  5. [root@vvkt7whznuckhiz2-0723575 ~]# grep "^$" admir.text
  6. # 反向查找 grep -v " " admin.text
  7. [root@vvkt7whznuckhiz2-0723575 ~]# grep -v "^$" admir.text
  8. "不要总是想着画龙"
  9. ALLOW_HOST = []
  10. # 过滤#开头的哪一行数据,相当于cat命令 + find 命令
  11. [root@vvkt7whznuckhiz2-0723575 ~]# grep "^#" admir.text
  12. #"不要总是想着画龙"
  13. # 过滤非空行,非#开头
  14. [root@vvkt7whznuckhiz2-0723575 ~]# grep -v "^$" admir.text | grep -v "^#"
  15. ALLOW_HOST = []

第二种—关于内容

  1. [root@vvkt7whznuckhiz2-0723575 ~]# cat /etc/passwd | grep "ssh"
  2. sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

head tail 命令

1 head查看前十行信息

  1. [root@vvkt7whznuckhiz2-0723575 ~]# head /etc/passwd
  2. root:x:0:0:root:/root:/bin/bash
  3. bin:x:1:1:bin:/bin:/sbin/nologin
  4. daemon:x:2:2:daemon:/sbin:/sbin/nologin
  5. adm:x:3:4:adm:/var/adm:/sbin/nologin
  6. lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  7. sync:x:5:0:sync:/sbin:/bin/sync
  8. shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
  9. halt:x:7:0:halt:/sbin:/sbin/halt
  10. mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
  11. operator:x:11:0:operator:/root:/sbin/nologin

2 查看前三行

  1. [root@vvkt7whznuckhiz2-0723575 ~]# head -3 /etc/passwd
  2. root:x:0:0:root:/root:/bin/bash
  3. bin:x:1:1:bin:/bin:/sbin/nologin
  4. daemon:x:2:2:daemon:/sbin:/sbin/nologin

3 显示后十行[tail /etc/passwd]

  1. [root@vvkt7whznuckhiz2-0723575 ~]# tail /etc/passwd
  2. games:x:12:100:games:/usr/games:/sbin/nologin
  3. ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
  4. nobody:x:99:99:Nobody:/:/sbin/nologin
  5. systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
  6. dbus:x:81:81:System message bus:/:/sbin/nologin
  7. polkitd:x:999:998:User for polkitd:/:/sbin/nologin
  8. tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
  9. sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
  10. postfix:x:89:89::/var/spool/postfix:/sbin/nologin
  11. caesar:x:1000:1000::/home/caesar:/bin/bash

4 显示最后两行[tail -2 /etc/passwd]

  1. [root@vvkt7whznuckhiz2-0723575 ~]# tail -2 /etc/passwd
  2. postfix:x:89:89::/var/spool/postfix:/sbin/nologin
  3. caesar:x:1000:1000::/home/caesar:/bin/bash

5 实时监控,可以用于监控线上的日志文件,检测用户的请求信息

  1. tail -f 文件名 #实时刷新文件内容

Linux基础命令 - 图1

scp命令

在两台Linux设备[Mac OS]之间,通过网络安全地传输文件,文件夹;

如果发送的是整个文件夹,就需要加上 -r 参数表示递归

使用通配符发送多个文件 scp -r ./*

案例1

准备两台Linux机器

  1. # 需求1 将机器1的 /mp/admin.text 发送到机器2的 /tmp目录下
  2. [root@vvkt7whznuckhiz2-0723575 tmp]# scp /tmp/admin.text root@192.168.178.235:/tmp/
  3. # 需求2 把机器2的/tmp目录下的资料给拿到本地的/opt目录下
  4. scp 你想要的内容 内容发送到哪里
  5. [root@vvkt7whznuckhiz2-0723575 tmp]# scp root@192.168.178.235:/tmp/python1.txt /opt

lrzsz工具

用于window和Linux之间互相传递文件

  1. # 安装此工具
  2. yum -y install lrzsz
  3. # 安装好之后存在两个命令,分别是 rz和 sz
  4. rz 表示接受 sz表示发送

du命令

  1. # 用法
  2. du [参数] [文件或者目录]
  3. -S 显示总计
  4. -h K, M, G为单位显示,可读性高

案例

  1. # 统计 var/log/文件夹的大小 du -sh /var/log
  2. [root@vvkt7whznuckhiz2-0723575 ~]# du -sh /var/log
  3. 1.6M /var/log
  4. # du -sh 显示当前文件夹下所有文件的大小
  5. [root@vvkt7whznuckhiz2-0723575 ~]# cd /tmp
  6. [root@vvkt7whznuckhiz2-0723575 tmp]# du -sh
  7. 44M .
  8. # du -h显示当前文件夹下单个文件或者文件夹的大小
  9. [root@vvkt7whznuckhiz2-0723575 tmp]# du -h
  10. 4.0K ./python4
  11. 4.0K ./.X11-unix
  12. 4.0K ./python5
  13. 4.0K ./.XIM-unix
  14. 4.0K ./python1
  15. 4.0K ./.font-unix
  16. 4.0K ./.ICE-unix
  17. 4.0K ./.Test-unix
  18. 4.0K ./python3
  19. 36K ./hsperfdata_root
  20. 4.0K ./python2
  21. 44M .

top命令

类似于Windows的任务栏,能够动态的显示进程信息 比如 CPU, 内存,网络,磁盘IO等

  1. top - 16:14:18 up 1:07, 3 users, load average: 0.00, 0.01, 0.05
  2. Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie
  3. %Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  4. KiB Mem : 1881620 total, 1491064 free, 153456 used, 237100 buff/cache
  5. KiB Swap: 4194300 total, 4194300 free, 0 used. 1577672 avail Mem

ps命令

用于查看Linux进程信息的命令

语法格式

  1. ps -e f # -ef,是一个组合参数 -e -f的缩写,-默认显示Linux所有进程信息以及pid,时间,进程名等信息
  2. # 过滤进程
  3. [root@vvkt7whznuckhiz2-0723575 tmp]# ps -ef | grep "python3"
  4. root 1553 1534 0 16:11 pts/2 00:00:02 python3
  5. root 1556 1462 0 16:20 pts/1 00:00:00 grep --color=auto python3

产生需求

  1. 1. Django运行后,如何验证是否运行,它会产生什么内容?
  2. 能够查看日志,检测到用的请求
  3. 产生一个python相关的进程信息

kill命令

杀死进程的命令

  1. kill 进程的ID号,也就是PID
  2. 如果遇见卡死的进程,杀不掉,就发送 -9 强制关闭
  3. kill -9 pid

netstat[端口]命令

查看Linux的网络端口情况

  1. 语法如下:
  2. 常用的命令组合 -t -n -u -l -p
  3. # netstat -tunlp 显示机器所有的tcp udp的端口连接情况
  4. [root@vvkt7whznuckhiz2-0723575 tmp]# netstat -tunlp
  5. Active Internet connections (only servers)
  6. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  7. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1024/sshd
  8. tcp6 0 0 :::22 :::* LISTEN 1024/sshd
  9. udp 0 0 0.0.0.0:68 0.0.0.0:* 743/dhclient
  10. # 有些公司为了保护服务器安全,更改了默认的远程连接端口
  11. # 用如下命令去登录服务器
  12. ssh -p 26675 xiaohu@123.168.13.157

案例1

  1. # 过滤指定服务
  2. [root@vvkt7whznuckhiz2-0723575 tmp]# netstat -tunlp | grep ssh
  3. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1024/sshd
  4. tcp6 0 0 :::22 :::* LISTEN 1024/sshd

案例2—查看端口占用

  1. [root@vvkt7whznuckhiz2-0723575 ~]# netstat -tunlp | grep "22"
  2. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1035/sshd
  3. tcp6 0 0 :::22 :::* LISTEN 1035/sshd

PATH变量

定义一些常用软件可执行命令的目录,放入系统中可以快捷查询,无需每次使用时都输入绝对路径,相当于Windows下的环境变量

  1. 1. 为什么Linux能够快速输出python可执行文件的位置
  2. [root@tylor ~]# which python3
  3. /usr/bin/python3
  4. 2.

查看所有环境变量

  1. # 冒号分隔多个环境变量
  2. echo $PATH
  3. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

修改Linux的全局配置文件

准备信息 etc/profile末尾添加

  1. ### set Chinese support
  2. export LC_ALL=zh_CN.UTF-8
  3. ### 这是自定义变量,每次开机都能读取,第一条是系统中文的变量
  4. ### 我自定义的第一条环境变量
  5. export name="一叶知秋"
  1. 1. 全局配置文件的名字是 /etc/profile
  2. 2. 编辑这个文件,写入你希望永久生效的变量和值。系统每次开启都会读取这个文件,让其生效
  3. 3. 操作步骤,添加先行添加支持中文的环境变量,然后添加自定义变量,最后退出登录再重新登录,相当于reload
  4. [root@tylor ~]# vim /etc/profile
  5. [root@tylor ~]# echo $name
  6. 一叶知秋

临时修改环境变量

  1. # 第一步查看python的环境变量
  2. [root@tylor ~]# which python
  3. /usr/bin/python
  4. # 第二步查看系统环境变量
  5. [root@tylor ~]# echo $PATH
  6. usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
  7. # 第三步临时修改环境变量
  8. [root@tylor ~]# PATH="usr/local/sbin:/usr/local/bin"
  9. # 第四步再次查看python环境变量
  10. [root@tylor ~]# which python
  11. /usr/bin/which: no python in (usr/local/sbin:/usr/local/bin)
  12. # 第五步再次查看系统环境变量
  13. [root@tylor ~]# echo $PATH
  14. usr/local/sbin:/usr/local/bin
  15. ### 结论: 对系统环境变量的临时修改会影响软件执行文件的查找

安全检查思路

  1. 4813 2022-03-19 08:12:32 root pstree
  2. 4814 2022-03-19 08:15:46 root yum search psmisc
  3. 4815 2022-03-19 08:17:24 root yum -y install psmisc
  4. 4816 2022-03-19 08:17:41 root pstree
  5. 4817 2022-03-19 08:18:04 root docker ps -a
  6. 4818 2022-03-19 08:19:20 root ll /proc
  7. 4819 2022-03-19 08:19:34 root top
  8. 4820 2022-03-19 08:20:15 root ll /proc/1434
  9. 4821 2022-03-19 08:21:04 root /ect/crontab
  10. 4822 2022-03-19 08:21:17 root /etc/crontab
  11. 4823 2022-03-19 08:21:30 root crontab -l
  12. 4824 2022-03-19 08:22:03 root ls /etc/rc*/
  13. 4825 2022-03-19 08:22:42 root ls /etc/rc.d/init.d
  14. 4826 2022-03-19 08:23:28 root cat README
  15. 4827 2022-03-19 08:23:46 root cd /etc/rc.d/init.d
  16. 4828 2022-03-19 08:23:48 root ls
  17. 4829 2022-03-19 08:23:55 root cat README
  18. 4830 2022-03-19 08:24:46 root cd ..
  19. 4831 2022-03-19 08:24:47 root ls
  20. 4832 2022-03-19 08:26:05 root chkconfig --list | grep on
  21. 4833 2022-03-19 08:26:42 root cat /etc/passwd
  22. 4834 2022-03-19 08:28:36 root cat /etc/shadow
  23. 4835 2022-03-19 08:32:51 root cat /etc/shadow grep root
  24. 4836 2022-03-19 08:33:06 root cat /etc/shadow | grep root
  25. 4837 2022-03-19 08:34:49 root lastlog

Linux单引号和双引号的区别

  1. # 单引号的内容仅仅是字符串,不识别任何其他特殊符号
  2. # 双引号能够识别特殊符号
  3. # 二者的比较
  4. [root@tylor ~]# echo $name
  5. 一叶知秋
  6. [root@tylor ~]# echo '$name'
  7. $name
  8. [root@tylor ~]# echo "$name"
  9. 一叶知秋

Vim编辑器的使用

最基本的编辑器

  1. Windows
  1. 记事本
  2. sublime
  3. notepad++

linux

  1. vi 等同于记事本,很难用,没有语法颜色提示等
  2. vim 等同于notepad++,有颜色高亮,支持安装第三方插件,语法不全等高级编辑器

Vim使用流程

  1. 1. 安装vim
  2. yum -y install vim
  3. 2. vim打开一个不存在的文件等同于新建
  4. 3. 按下字母 i 进入编辑模式,按下esc退出编辑模式进入命令模式
  5. 4. 按下 shif + : 进入底线命令模式
  6. 5. 输入:wq!, write写入内容,quit退出vim 强制退出
  7. 6. 运行该文件
  8. [caesar@tylor ~]$ python first.py
  9. Hello World!

测试文件内容[以防万一,指定编码集]

  1. #!coding:utf-8
  2. print("Hello World!")

参数说明

  1. # 从命令模式进入输入模式,可输入 a, i, o
  2. a 指的是在光标的后面开始编辑
  3. i 表示在光标处开始编辑
  4. o 表示在光标的下一行开始编辑
  5. # 在命令模式下,常用的命令
  6. $ 快速移动到行尾 % 找到括号的另外一半
  7. 0 快速移动光标到行首 yy 复制光标当前行
  8. x 删除光标所在的字符 3yy 复制光标当前及以后
  9. dd 删除整行数据 4dd 删除光标向下的第四行
  10. g 移动到文件的第一行 u 撤销上一次的动作
  11. G 移动到文件的最后一行 dG 删除光标当前行到行尾的所有内容
  12. /string 从开头寻找目标字符[高亮显示]
  13. string 从文件的第几行,向上搜索字符串

底线命令模式

  1. :数字 快速定位到某一行
  2. :set nu 显示vim的行号

永久显示行号

  1. vim ~/.vimrc
  2. 写入 set number