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命令的语法
- 语法=命令 +选项 +参数(目录,文件夹)
选项: 可供选择的项目,可接可不接,但是接了有特殊的作用
- 选项可以组合
ls -l -a == ls -la
ls -a -l -d == ls -lad
- 选项的顺序
可以不讲究,谁在前面或者后面都可以
- 选项之间有依赖关系
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