shell简介
shell的英文含义是“壳”;
它是相对于内核来说的,因为它是建立在内核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核。
Linux中的shell,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息;
由于Linux不同于Windows,Linux是内核与界面分离的,它可以脱离图形界面而单独运行,同样也可以在内核的基础上运行图形化的桌面。
这样,在Linux系统中,就出现了两种shell表现形式,一种是在无图形界面下的终端运行环境下的shell,另一种是桌面上运行的类似Windows 的MS-DOS运行窗口,前者我们一般习惯性地简称为终端,后者一般直接称为shell。
使用shell可以实现:
1.文件管理: 创建, 移动, 赋值, 删除, 编辑...
2.权限管理: 不同用户的不同权限管理.
3.用户管理: 创建以及删除用户.
4.磁盘管理: 磁盘挂载.
5.网络管理: IP的配置.
6.软件管理: 下载及运行等等.
xshell
Xshell是一个远程工具,可以远程连接linux系统 ,SSH,远程管理 Xshell来远程访问Linux系统的终端 。
使用方式:
下载,安装xshell

通过对虚拟机的快照设置可以快速回到某一步

shell提示符
| [root@xh ~] |
| |
| |
| |
| |
| |
| [xh@xh ~]$ :$ 表示普通用户 |
ls命令
| |
| ls:查看当前路径下的文件,以及文件夹 |
| |
| ls --all = ls -a:查看所有文件,包括隐藏文件,以点开头的都是隐藏文件 |
| ls -a /temp |
| |
| ls -l:查看每个组,权限,修改时间 |
| |
| ls -l -a |
| ls -la |
| ls -al |
命令补全
| |
| |
| |
| |
| |
| yum install net-tools -y |
| yum install net-tools |
| |
| |
| ls - 两下tab建,所有的选项都会提示出来 |
| |
命令快捷键
| Ctrl + a |
| Ctrl + e |
| Ctrl + c |
| Ctrl + d |
| Ctrl + z |
| Ctrl + l |
| Ctrl + k |
| Ctrl + u |
| Ctrl + r |
| Ctrl + w |
| Ctrl + 左右建 |
| |
| |
!命令
| !!://执行上一条命令 |
| !vim://执行历史命令中最近的以 vim 开头的命令,如 !ls,!cat... |
| !$://上一条命令的最后一个参数,[与 Alt + . 相同(在Xshell中用不了)] |
| !$:p://打印输出 !$ 的内容 |
| !blah:p://仅打印输出,而不执行 |
| !*://上一条命令的所有参数 |
| !*:p://打印输出 !* 的内容 |
| ^blah://删除上一条命令中的 blah |
| ^blah^foo://将上一条命令中的 blah 替换为 foo |
| ^blah^foo^://将上一条命令中所有的 blah 都替换为 foo |
| |
history历史记录
| history查看历史命令 |
| !数字 快速执行数字那一行 |
| !yum 快速执行最近一条yum命令 |
| history -d 70 把历史记录的第70行删除 |
| history -c 清空所有记录(连到人家服务器,操作完了,执行一下) |
| history -w 可以把 历史记录写到用户家路径的.bash_history文件中 |
| |
设置命令别名
- 将复杂的难记的命令简单化
- "alias 别名=命令"
- "" : 取消特殊意义, 取消了别名的意义: \ls,
- 取消别名 : "unalias 别名"
| 1、设置别名 |
| alias www='ls /' 只在当前bashshell中生效 |
| |
| 2、永久生效(全局,局部),将别名写到环境变量中去 |
| echo "alias wk='ifconfig'" >> /etc/bashrc |
| |
| 3、取消别名 |
| which ls //先查看命令的完整路径, 在使用完整路径来运行 |
| \ls //反斜杠可以取消特殊意义, 取消ls的别名意义 |
| unalias //直接取消别名 |
| |
| 如果写到配置文件中,取消的话unalias wk+去配置文件删除 |
| |
| 4、内置的别名:在环境变量的配置文件中放着 |
| alias ls |
| |
| 5、/bin/ls -al /root |
| |
| 6、命令 --help |
| |
| 7、man 命令 |
重启 关机 注销
| shutdown -r 10 //10分钟后重启 |
| shutdown -r 0 //立即重启 |
| shutdown -r now //立即重启 |
| init 6 //立即重启 |
| reboot //立即重启 |
| |
| shutdown -h 10 //10分钟后关机 |
| shutdown -h 0 //立即关机 |
| shutdown -h now //立即关机 |
| init 0 //立即关机 |
| halt //立即关机 |
| poweroff //立即关机. |
| |
| |
| 1.exit |
| 2.logout |
| 3.Ctrl + d |
| |
| |
| shutdown -c |
| |
路径定位
| 1 . .. 相对路径,. 是当前,..是上一级 |
| |
| 2 注意:带斜杠和不带斜杠 |
| cd /usr |
| cd usr |
| 3 执行当前路径下的某个文件 |
| ./xx linux |
| xx windows |
| 4 ~当前用户的家路径:root /root jack /home/jack |
mkdir
创建目录
| 选项:-v 显示详细信息 -p 递归创建目录 |
| mkdir dir1 |
| mkdir /home/od/dir1 /home/od/dir2 |
| mkdir -v /home/od/{dir3,dir4} |
| mkdir -pv /home/od/dir5/dir6 |
| mkdir -pv /home/{od/{diu,but},boy} |
| mkdir /dir1 在根目录下创建dir1 |
| mkdir ./dir1 在当前目录下创建dir1 |
| mkdir ../dir1 在上一个目录下创建dir1 |
touch
新建文件
| touch file |
| touch file2 file3 |
| touch /home/od/file4 file5 |
| touch file{a,b,c} |
| touch file{1..10} |
| touch file{a..z} |
rm
删除文件
| 选项:-r: 递归 -f: 强制删除 -v: 详细过程 |
| rm file.txt |
| rm -f file.txt |
| |
| rm -r dir/ |
| rm -rf dir/ |
| |
| 1.rm删除示例 |
| mkdir /home/dir10 |
| touch /home/dir10/{file2,file3,.file4} |
| rm -f /home/dir10/ //不包括隐藏文件 |
| ls /home/dir10/ -a |
| . .. .file4 |
| |
| 2.rm删除示例2 |
| touch file{1..10} |
| touch {1..10}.pdf |
| rm -rf file |
| rm -rf .pdf |
| rm -f file* |
| rm -f *.txt |
rmdir
删除空目录,如果删除的目录有其他文件或者子目录存在,就会删除不成功
| rmdir [参数] 目录名 |
| 参数 -p 删除父目录,要求父目录没有其他目录存在 |
| -v 显示命令的详细执行过程 |
mv
移动文件
| mv file file1 |
| mv file1 /tmp/ |
| mv /tmp/file1 ./ |
| mv dir/ /tmp/ |
| |
| touch file{1..3} |
| mv file1 file2 file3 /opt/ |
| |
| mkdir dir{1..3} |
| mv dir1/ dir2/ dir3/ /opt |
cp
复制文件
| 选项: -v:详细显示命令执行的操作 -r: 递归处理目录与子目录 -p: 保留源文件或目录的属性 |
| cp file /tmp/file_copy |
| cp name /tmp/name1 |
| cp file /tmp/ |
| cp -p file /tmp/file_p |
| cp -r /etc/ /tmp/ |
| cp -rv /etc/hosts /etc/hostname /tmp |
| cp -rv /etc/{hosts,hosts.bak} |
| cp -rv /etc/hosts{,-org} |
cd
切换命令
| cd 切换到家目录 |
| cd ./ 当前路径 |
| cd ../ 上级路径 |
| cd - 切换到上次工作路径 |
| cd ~ 切换到root下的家目录 |
| pwd (print working directory)打印当前工作路径 |
查找命令
查看
| tree:树状形式显示 |
| 需要安装:yum install tree |
| tree /home/ |
| |
| cat :查看文本内容 |
| cat >> test2.txt <<EOF |
| > ads |
| > adf |
| > EOF |
| |
| less,more:文本查看,分页 |
| less /etc/services |
| more只支持向前浏览,less命令允许向前或向后浏览文件 |
| less [选项] 文件名 |
| 可以使用/ 查找 n向下 N向上查找 |
| less打开文件:ctrl+b:下翻页 ctrl+f:上翻页 |
| Page Up 向上翻页,Page Down 向下翻页 |
| |
| head |
| head -n 文件名 (不加默认开头十行) |
| head -n1 /etc/services :查看该文件第一行 |
| ps aux | head -n5 :查看前5个进程 |
| head -n -3 3.txt |
| head -n +3 3.txt |
| |
| tail |
| tail -n 文件名 (不加默认结尾十行) |
| tail -f 文件名 实时跟踪最后十行 |
| tail -f /var/log/messages :动态查看文件变化 |
| tail -n -3 3.txt |
| tail -n +3 3.txt |
| |
| grep:查找命令 |
| -grep "xh" test2.txt 查找文件中有xh的行 |
| -ps aux | grep ssh 查看sshd进程是否在运行 |
| “^……”表示以……开头,“……$”表示以……结尾 |
| “^$”表示空行 |
| |
| wget:下载yum install wget |
| wget 路径 默认下载在当前路径 |
| wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo |
| |
| curl:连通性 |
| 可以连百度等 curl www.baidu.com |
| django:127.0.0.1:8080端口,先在本地curl一下,看看能不能通,可能是防火墙,阿里云的安全组 |
| curl -o /home/a.png https:72743-20190.png |
| |
| 上传下载 (4g以内) |
| yum install lrzsz -y |
| rz:上传,选择文件直接上传 |
| sz:sz 文件路径 可以下载到当前主机 |
| |
| which 命令 :找出命令的绝对路径 |
| 去/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/b in:/root/bin 路径找有没有 |
| |
| whereis命令:找出命令的路径以及文档手册信息 |
| whereis -b ls 查找ls命令,只找二进制(可执行文件) |
| |
| sort |
| sort file.txt 对内容进行排序 |
| sort -t ":" -k2 file.txt |
| sort -t ":" -n -k2 file.txt |
| |
| uniq 去重,连续挨着的才能去,所以要跟sort连用 |
| sort file2.txt | uniq |
| cut |
| Im xh, is QQ 3524130451 |
| cut -d " " -f2,5 file.txt |
| |
| wc |
| wc -l /etc/services |
| ls | wc -l |
| ps aux |grep ssh | wc -l |
du
| du -a all,统计磁盘空间占用时包含的所有文件 |
| du -h 人性化方式 |
| du -s 只统计每个参数所占用空间总的大小(summary),不统计子目录 |
| du -d 打印目录(或文件,带 --all)的总计 |
文件属性与类型
| ls -l |
| ls -lh 以人性化显示,kb,gb |
| -:文件类型 |
| rw-r--r--.:权限 |
| 1:硬链接的 |
| root:属主(属于哪个用户) |
| root:属组(属于哪个组) |
| 43856 :文件大小 |
| Aug 19 11:54 :修改时间 |
| a.png:文件名字 |
| |
| 权限 |
| r:可读权限 数字表示 4 |
| w:可写权限 数字表示 2 |
| x:可执行权限 数字表示 1 |
| |
| 文件类型: |
| 字符设备(c) character,所有输入输出的设备 终端 /dev/tty1, /dev/zero |
| 块设备(b) block,所有存储设备称之为块设备文件,硬盘 /dev/sda1, /dev/sda2 |
| 软连接文件(l) 类似与windows下的快捷方式 |
| 目录文件(d) 相当于windows下的的文件夹 |
| 普通文件(f或-) 类似windows下的记事本、word等,可以使用相关命令进行编辑,查看文件内容 |
| 管道文件(p) pipe,管道文件 |
| 套接字文件(s) socket,套接字文件 |
| |
| |
| 通过file来查看详细的类型 |
| file a.txt |
| file /bin/ls |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY