bash shell 介绍和使用
什么是Bash shell(壳)
是一个命令解释器,就是一个软件 执行就是bash,可以在里面输入命令,做交互,exit退出
能干什么
原来在windows上点点点完成的是,它都能做到
使用Shell实现对Linux系统的大部分管理,例如:
1.文件管理(文件创建,移动,复制,删除,编辑…)
2.权限管理(不同用户不通权限) useradd ... 添加用户 passwd ...登录用户
3.用户管理(创建,删除….)
4.磁盘管理(挂载)
5.网络管理
6.软件管理
等等
平时我们如何使用Shell呢?
1 输入命令,低效
2 shell script:shell脚本 ,批量执行命令
shell提示符
[root@lqz ~]#
# root:当前用户
# @ :没有意义
#lqz:主机名
# ~:家目录
# #:表示超级用户
[lqz@lqz ~]$
Shell基础语法
# 命令 选项 参数 三部分组成
ls -a /temp
ls --all
# 以下三个一样
ls -l -a
ls -la
ls -al
命令补全
# 一下或者两下tab建
# 一下的话会直接找到你要用的命令
# 两下,可能会用到的全列出来
# ifconfig 在7的版本没有,需要装软件
yum insatll net-tools -y
yum insatll net-tools
# yum install bash-completion -y 补齐选项
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 + 左右建 #按单词或空格进行向前向后跳
#在命令行前加面加 "#" 则该命令不会被执行
history
# history查看历史命令
# !数字 快速执行数字那一行
# !yum 快速执行最近一条yum命令
# history -d 70 把历史记录的第70行删除
# history -c 清空所有记录(连到人家服务器,操作完了,执行一下)
# history -w 可以把 历史记录写到用户家路径的.bash_history文件中
命令别名
1 设置别名
alias www='ls /' 只在当前bashshell中生效
2 永久生效(全局,局部),
echo "alias wk='ifconfig'" >> /etc/bashrc
3 unalias wk
4 如果写到配置文件中,取消的话unalias wk+去配置文件删除
5 内置的别名:在环境变量的配置文件中放着
alias ls
6 /bin/ls -al /root # ls 内置了别名
7 命令 --help
8 man 命令
目录介绍
1 linux 是单根 / 根路径,windows是多根
2 bin和sbin:bin普通用户命令,sbin超级用户命令 都是usr下的文件夹软链接到根路径
3 home 、root:home普通用户的家路径,home下的用户名的文件夹
-用户一登录系统,是在自己的家路径 jack--》/home/jack
目录之usr
/usr,相当于C:Windows
/usr/local,软件安装的目录,相当于C:Program
/usr/bin/,普通用户使用的应用程序(重要)
/usr/sbin,管理员使用的应用程序(重要)
/usr/lib,库文件Glibc 32bit
/usr/lib64,库文件Glibc 64bit
1 df -h # 查看系统中文件的使用情况
2 du -sh /usr/ #查看当前目录下各个文件及目录占用空间大小
# 补充:远程执行ssh命令:
# ansiable:python写的,批量执行命令(速度比较慢,大量的主机,会卡顿)
# salstack:在客户端装agent,
# zabbix:监控,php写的,监控mysql运行情况
# /boot
存放的系统启动相关的文件,例如:kernel,grub(引导装载程序)
常用命令
1 tree /home/ 树状形式显示 yum install tree
2 cat :查看文本内容
cat >> test2.txt <<EOF
> ads
> adf
> EOF
3 less,more:文本查看,分页
less /etc/services
4 head -n1 /etc/services :查看该文件第一行
5 ps aux | head -n5 :查看前5个进程
6 tail -f /var/log/messages :动态查看文件变化
7 grep:查找命令
-grep "lqz" test2.txt 查找文件中有lqz的行
-ps aux | grep ssh 查看sshd进程是否在运行
8 less打开文件:ctrl+b:下翻页 ctrl+f:上翻页
9 wget:下载yum install wget
wget 路径 默认下载在当前路径
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
10 curl:连通性
你的django:127.0.0.1:8080端口,先在本地curl一下,看看能不能通,可能是防火墙,阿里云的安全组
curl -o /home/a.png https:72743-20190.png
11 上传下载 (4g以内)
yum install lrzsz -y
rz:上传,选择文件直接上传
sz:sz 文件路径 可以下载到当前主机
12 which 命令:
去/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 路径找有没有
13 whereis -b ls 查找ls命令,只找二进制(可执行文件)
14 sort
sort file.txt 对内容进行排序
sort -t ":" -k2 file.txt
sort -t ":" -n -k2 file.txt
15 uniq 去重,连续挨着的才能去,所以要跟sort连用
sort file2.txt | uniq
16 cut
Im lqz, is QQ 306334678
cut -d " " -f2,5 file.txt #把字符串按“ ” 分割,取出第2和第5个
17 wc
wc -l /etc/services
ls | wc -l # 统计当前路径下有多少文件和文件夹
ps aux |grep ssh | wc -l # 统计有多少个ssh相关的进程
文件属性文件类型
ls -l
ls -lh 以人性化显示,kb,gb
-:文件类型
rw-r--r--.:权限
1:硬链接的
root:属主(属于哪个用户)
root:属组(属于哪个组)
43856 :大小
Aug 19 11:54 :修改时间
a.png:文件名字
文件类型:
- #普通文件(文本, 二进制, 压缩, 图片, 日志等)
d #目录文件
b #设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c #设备文件(字符设备),终端 /dev/tty1, /dev/zero
s #套接字文件, 进程间通信(socket)
p #管道文件
l #链接文件
通过file来查看详细的类型
file a.txt
file /bin/ls
软连接,硬连接
1 软链接和硬链接:软链接新建inode,硬链接指向同一个inode
2 软链接---》快捷方式
-ln -s a.png /home/jack/a.png
-一般咱们对可执行文件建立软链接(删除不会删除原来)
-软链接目录:
redis-3.2.1---->编译安装
redis-3.2.1/bin 路径配到环境变量
软件升级
redis-4.2.1
-建立软链接redis---》redis-3.2.1
redis/bin 路径配到环境变量
软件升级
redis软链接到---》redis-4.2.1
3 ln /root/file /tmp/file_hard (了解)
标签:bin,文件,Ctrl,Linux,命令,usr,简单,操作,ls
From: https://www.cnblogs.com/piggthird/p/17824935.html