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 ~]#
# root:当前用户
# @ :没有意义
#xh:主机名
# ~:家目录
# #:表示超级用户
[xh@xh ~]$ :$ 表示普通用户
ls命令
# 命令 选项 参数 三部分组成 选项和参数可以调换
ls:查看当前路径下的文件,以及文件夹
# 如果想把命令写全了就加 -- 不写全就加 -
ls --all = ls -a:查看所有文件,包括隐藏文件,以点开头的都是隐藏文件
ls -a /temp
ls -l:查看每个组,权限,修改时间
# 以下三个一样
ls -l -a
ls -la
ls -al
命令补全
# 一下或者两下tab建
# 一下的话会直接找到你要用的命令
# 两下,可能会用到的全列出来
# ifconfig 在7的版本没有,需要装软件
yum install net-tools -y
yum install net-tools
# yum install bash-completion -y 补齐选项 安装完成之后需要重新连接 还是按两下tab键
ls - 两下tab建,所有的选项都会提示出来
命令快捷键
Ctrl + a #光标跳转至正在输入的命令行的首部
Ctrl + e #光标跳转至正在输入的命令行的尾部
Ctrl + c #终止前台运行的程序 ##################
Ctrl + d #在shell中,ctrl-d表示推出当前shell。
Ctrl + z #将任务暂停,挂至后台
Ctrl + l #清屏,和clear命令等效。 ##############
Ctrl + k #删除从光标到行末的所有字符
Ctrl + u #删除从光标到行首的所有字符
Ctrl + r #搜索历史命令, 利用关键字,Tab建选中,只能找到最近的一条
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 # ls 内置了别名
6、命令 --help # 查看命令该怎么用
7、man 命令 # 也是查看命名的使用方法,按q退出
重启 关机 注销
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 # 根路径下的usr
cd usr # 当前路径下的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 a b c
touch file{1..10}
touch file{a..z}
rm
删除文件
选项:-r: 递归 -f: 强制删除 -v: 详细过程
rm file.txt #删除文件, 默认rm存在alias别名,rm -i所以会提醒是否删除文件
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/ #移动文件至tmp目录:不一样mv file1 tmp
mv /tmp/file1 ./ #移动tmp目录的文件至当前目录
mv dir/ /tmp/ #移动目录至/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 #-p保持原文件或目录的属性
cp -r /etc/ /tmp/ #复制目录需要使用-r参数, 递归复制
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 #-3 不显示最后3行
head -n +3 3.txt #就只显示前三行
tail
tail -n 文件名 (不加默认结尾十行)
tail -f 文件名 实时跟踪最后十行
tail -f /var/log/messages :动态查看文件变化
tail -n -3 3.txt #-3 只显示最后三行
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 #把字符串按“ ” 分割,取出第2和第5个
wc
wc -l /etc/services
ls | wc -l # 统计当前路径下有多少文件和文件夹
ps aux |grep ssh | wc -l # 统计有多少个ssh相关的进程
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