1. 基础命令

  • ctrl+l 清除屏幕
  • ctrl+alt 从虚拟机里返回到真实机器
  • ip add 查看linux系统的ip地址
  • cd命令

cd /进入根目录

cd 进入文件夹 change directory to another directory

cd .. 返回到上一级文件夹

. 当前目录

.. 上一级目录

~ 用户主目录(家目录)

- 上一次所在的工作目录(遥控器上的返回键)

  • ls 查看文件夹里的内容 list
  • mkdir 新建文件夹 make directory(目录=文件夹)
  • rm -rf 文件名
  • pwd 查看当前所在的路径
  • man 查看命令的使用手册 manuals 手册,指南

按q退出 quit

  • 新建用户 useradd liuxiaoxiao
sudo  passwd  liuzizheng   修改密码
  • tree 以树状格式列出目录的内容
  • su - 切换用户
  • exit 退出登录系统
  • 判断命令

[ -d /backup ] 判断/backup目录是否存在 directory

[ -f /backup/a.txt ] 判断/backup/a.txt文件是否存在

  • 命令1 || 命令2

如果命令1执行失败,就执行命令2,如果命令1执行成功,就不执行命令2

  • 命令1 && 命令2

如果命令1执行成功,就执行命令2,如果命令1执行不成功,就不执行命令2

  • date 获得当前的时间
[root@localhost bak]# date +%Y%m%d%H%M%S   
 20230326160111

%Y year

%m month (01..12)

%d day

%H hour (00..23)

%M minute (00..59)

%S second (00..60)

  • 命令替换 --》varname=$(命令)

2. linux命令的语法

  • 语法=命令 +选项 +参数(目录,文件夹)

选项: 可供选择的项目,可接可不接,但是接了有特殊的作用

  1. 选项可以组合

ls  -l  -a  ==   ls -la
ls  -a -l -d   ==  ls -lad

  1. 选项的顺序

可以不讲究,谁在前面或者后面都可以

  1. 选项之间有依赖关系

ls  -l  -d /boot
ls  -lh /boot

  • 长选项: 长格式

--all

  • 短选项: 短格式

-a

  • 如果不接参数,默认以当前文件夹作为参数
  • -a 显示所有的文件,包括隐藏文件
  • -A 显示所有的文件,不包括隐藏文件的.和.. ,其他隐藏文件都显示
  • -l 显示文件的详细信息 --》以长格式显示
-l     use a long listing format
with -l, print sizes in human readable format (e.g., 1K 234M 2G)
  • -h, --human-readable
  • -r, --reverse 和字母顺序相反的排列顺序
reverse order while sorting
  • -d 查看文件夹本身的信息 directory
  • alias 别名: 命令的另外一个名字
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
  • unalias 取消别名
  • 定义的别名不要和系统里的命令名字冲突,如果冲突后果就是导致原来的命令不能使用
  • touch 新建空文件 ---》windows里的空文本文件
  • 重定向: 将本来应该在屏幕上的输出,重定向到文件里
  • > 正确的输出重定向
  • 将成功执行的命令在屏幕上的输出重定向到文件里,如果文件不存在就新建,如果文件存在就覆盖原来的内容

[root@localhost bak]# echo 123456 >1.txt

  • >> 追加正确输出重定向
  • 将成功执行的命令在屏幕上的输出重定向到文件里,如果文件不存在就新建,如果文件存在就不覆盖原来的内容,只是在文件的末尾追加内容

[root@localhost bak]# echo 123456 >>1.txt

  • 错误的输出重定向
  • 2> 将错误执行的命令在屏幕上的输出重定向到文件里,如果文件不存在就新建,如果文件存在就覆盖原来的内容
  • 2>> 追加错误输出重定向
  • 将错误执行的命令在屏幕上的输出重定向到文件里,如果文件不存在就新建,如果文件存在就不覆盖原来的内容,只是在文件的末尾追加内容
  • &> 不管正确的还是错误的都重定向
  • 将执行的命令在屏幕上的输出重定向到文件里,如果文件不存在就新建,如果文件存在就覆盖原来的内容
  • &>> 追加正确的还是错误的都重定向
  • 将执行的命令在屏幕上的输出重定向到文件里,如果文件不存在就新建,如果文件存在就不覆盖原来的内容,只是在文件的末尾追加内容

[root@localhost bak]# ls &>>3.txt

  • /dev/null 是一个特殊的文件,任何的内容重定向到这个文件都不保存,会消失
  • 文件类型

d 表示是文件夹 directory

— 表示普通文件

  • 绝对路径
  • 不考虑你当前的位置,从“/”到达目标文件需要经过的文件系统目录树的所有分支

/home/hello/docs/share

  • 跟你当前所在的路径没有关系,从/开始一层一层往下走,绝对不会搞错的路径,单向,从上而下
  • 相对路径
  • 参照你当前的位置,到达目标文件需要经过的文件系统目录树的所有分支
  • 不以“/”开头
  • 以当前文件夹作为参照物,可进可退
  • rm 删除文件和文件夹 remove

rm  -rf feng      rm  -rf /feng

-r 递归删除

-r, -R, --recursive

-f, --force 强制删除,不给与提醒

  • cp 复制文件和文件夹 copy

1.复制文件

[root@localhost china_voice]# cp sc.txt hunantv
[root@localhost china_voice]# cp /etc/hosts   .

2.复制文件夹 -r (递归复制)

[root@localhost china_voice]# cp jiangsutv/ hunantv -r

  • mv 移动(剪切)或者重命名

1.移动,后面接的文件夹存在就是移动

[root@localhost china_voice]# mv hunantv hunan

2.重命名,后面接的文件夹不存在就是重命名

  • du -sh boot 查看文件的大小

3. vim编辑器

  • 进入vim
[root@sanchuang vim]# vim  zhangyp.txt

1.按字母 i 进入输入模式 insert 按 o 进入输入模式

2.输入内容

3.按ESC键返回到命令模式 escape 离开,逃离

  • yy 复制当前行
  • 4yy 复制4行 yank --》copy
  • p 粘贴 paste
  • dd 删除当前行 delete
  • 4dd 删除4行
  • u 撤销 undo

4.输入:wq 退出并且保存 write quit

  • :w 保存
  • :q 退出
  • :q! 强制退出不保存
  • cat 查看文本文件里的内容
[root@sanchuang vim]# cat  zhangyp.txt
  • bash 执行文件或者脚本
[root@localhost backup]# bash backup_log.sh
  • G 跳到文件的末尾
  • more 分页显示,适合看有很多行的文件,慢慢看
  • 回车: 下一行
  • 空格: 下一页
  • q 退出 quit
  • b 上一页 back
  • 显示完所有的行,自动退出
  • less 分页显示,适合看有很多行的文件,慢慢看
  • 回车: 下一行
  • 空格: 下一页
  • q 退出 quit
  • b 上一页 back
  • pageup --》pgup 上一页 pagedown --》pgdn 下一页
  • 不退出
  • head :默认显示文件的头10行
[root@sanchuang lianxi]# head -3 passwd    显示前三行
  • tail: 默认显示文件的尾10行
[root@sanchuang lianxi]# tail -6 passwd  显示后六行
  • | 管道符号
  • 管道: 实现的是进程和进程之间通信的一种方式
  • 作用:将前面一个命令的输出送给后面一个命令作为输入 --》 中间人

4. 查找命令

  • 查找命令都是到PATH变量指定的路径下找
PATH=/usr/python3.11/bin:/usr/local/python3.10/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/.local/bin:/root/bin:/root/.local/bin
  • which 查找我们执行的命令存放在哪里(那个文件夹里)
  • [root@sc-server liuxiaoxiao]# which ip /usr/sbin/ip
  • /usr 存放linux系统里的资源文件(程序) unix system resource
  • bin 存放二进制文件的目录 binary linux里的命令很多都是使用c语言编写的
  • sbin 存放有权限的用户的二进制文件的目录 super user binary ---》root
  • whereis 查找我们执行的命令存放在哪里
  • which 和whereis 只能到PATH指定的路径下查找命令
  • find 查找文件和文件夹的命令

find     /   -name  "hello"

  • / 查找的范围
  • -name 根据名字来查找
  • "hello" 具体的命令
  • -name 根据名字来查找
  • -iname 根据不区分大小写的名字查找
  • -size 根据大小来查找
  • +10M 大于10M的文件
  • -10M 少于10M
  • -mtime 根据文件的修改时间查找
  • +7 7天前的文件
  • -7 7天内的文件
  • -mmin 根据文件的修改时间--分钟查找
  • -type 根据文件类型查找
  • f 普通的文件 file
  • d 文件夹 directory
  • l 链接文件 link
  • -user

[root@localhost lianxi]# find /lianxi -user root
/lianxi   /lianxi/xiajingwei   /lianxi/zhaoyujia   /lianxi/liuzz.txt   /lianxi/feiruixi.tx

  • 条件的组合问题(默认情况下-a的优先级高,先执行逻辑与,再执行逻辑或)
  • -o :逻辑或,只要所给的条件中有一个满足,寻找条件就算满足 or
  • -not :逻辑非,在命令中可用“!”表示。该运算符表示查找不满足所给条件的文件
  • -a:逻辑与,系统默认是与,可不加,表示只有当所给的条件都满足时,寻找条件才算满足。 and
  • [root@localhost lianxi]# find /lianxi -name hello -exec rm -rf {} \;
  • -exec 执行 execute
  • rm -rf 删除的命令
  • {} 代表前面find命令查找到的内容 容器
  • \; find 执行命令的结束符号
  • -maxdepth 查找文件的时候目录的深度
  • 1 代表当前文件
  • 2 代表下一级文件
  • 3 下一级的下一级的目录,以此类推

[root@localhost china]# find . -maxdepth 3 -name "nongda.txt"
./hunan/changsha/nongda.txt ./hunan/nongda.txt

  • history 查看历史命令记录
  • \1. !number
  • !811 执行第811条命令
  • \2. !string 执行最近以string字符串开头的历史命令
  • history -c 清除历史命令
  • 上下方向键
  • 自定义变量

[root@sc-server src]# sg="feirx"
[root@sc-server src]# echo $sg

  • feirx
  • echo 相当于c语言 printf
  • $? 代表上一条命令的返回值
  • 0 说明上一条命令执行成功
  • 非0 说明上一条命令执行失败
  • 0~255