Linux-shell
1 shell
############# shell是什么
-Bash Shell是一个命令解释器(python解释器),它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕
-没有图形化界面了
-远程链接工具,链接上,就打开了一个shell窗口,可以输入命令
-进入和退出
bash
exit
#############shell 能干什么
使用Shell实现对Linux系统的大部分管理,例如:
1.文件管理(文件创建,移动,复制,删除,编辑…)
2.权限管理(不同用户不通权限)
3.用户管理(创建,删除….)
4.磁盘管理(挂载)
5.网络管理
6.软件管理
原来win上通过 点点点 完成的操作,现在都用bash命令来操作
#############shell 如何使用
1 直接输入命令 –> 效率低 –>适合少量的工作
ls
pwd
2 Shell Script(shell 脚本) –> 效率高–>适合复杂重复性的工作
-django项目部署:
uwsgi -x xx.xml
celery work,beat
-vi test.sh
for i in {1..100}
do
echo "create test$i"
done
-方式一:chmod +x test.sh #加入执行权限
./test.sh # 可以执行
-方式二:
bash test.sh
#############Shell提示符
### 1 [root@lqz ~]# 解释
root:用户
@:没有含义
lqz:主机名
~ :路径,用户家路径,root用户家路径是 /root
# : 超级用户
$ :普通用户
### 2 主机名
hostname # 查看主机名
### 3 创建用户(先听)
useradd lqz # 在/home 路径下创建一个根用户同名的文件夹--->这个用户家路径
passwd lqz # 给用户设置密码
#使用lqz登录 ---》final-shell重新使用lqz链接
# root用户链接了,切换成lqz用户
su 用户名 # 要不要输入密码,取决于你是谁
### 4 whoami
看我是谁
Shell基础语法
# 格式
#命令 选项 参数
command [-options] [arguments]
# 以ls命令为例
ls -a
ls --all
ls -al # 等同于 ls -l 等同于 ll
ls -al /home
# 必须以命令开头,选择和参数,可以有,也可以没有
shell 补全
# 敲了命令,按tab,如果有多种选择,都会列出来,如果没有了,只有这一个,直接补齐
# 查看本机ip
ip addr
# 使用 ifconfig:找不到,外部命令,第三方软件支持 win:ipconfig
yum install net-tools -y
ifconfig # 查看ip了
# 问题:
-刚刚不能上网了----》dns有问题---》解决:加了个dns2
-把yum源改成了阿里云的源----》
/etc/yum.repos.d
http://mirrors.aliyun.com/repo/Centos-7.repo # 下载Centos-7.repo 放在这个路径下即可
yum clean all
yum makecache
shell命令快捷键
Ctrl + a #光标跳转至正在输入的命令行的首部
Ctrl + e #光标跳转至正在输入的命令行的尾部
Ctrl + c #终止前台运行的程序
Ctrl + z #将任务暂停,挂至后台
Ctrl + l #清屏,和clear命令等效。
Ctrl + k #删除从光标到行末的所有字符
Ctrl + u #删除从光标到行首的所有字符
Ctrl + r #搜索历史命令, 利用关键字,Tab建选中
Ctrl + w #按单词或空格进行向前删除
Ctrl + 左右建 #按单词或空格进行向前向后跳
#在命令行前加面加 "#" 则该命令不会被执行
命令History
# history 可以查看命令历史
# 使用上下键可以快速选择之前执行过的命令
# !! 执行上一条命令
# !数字 执行history历史中第 数字 行的命令
# !yum 最近一次的yum命令
# history -d 100 删除第100条历史记录
# history -c 清空记录(保存到文件中的还有)
# history -w 保存历史集合,保存到当前用户的家目录 .bash_history
# > .bash_history 清空文件的保存(操作完,不让别人看你执行的命令)
命令别名
# 设置别名
alias xx='ls -al' # 以后敲xx等同于ls -al
alias lqz='ifconfig'
#取消别名
unalias lqz
# 上述操作只在当前会话生效,永久生效
echo "alias lqz=ls -al" >> /etc/bashrc # 所有人都生效
echo "alias lqz=ls -al" >> /root/bashrc #只针对于root
Shell获取帮助
# 命令 --help 提示你怎么用
# man ls
q退出
空格翻页,上下键翻页
内部命令,什么是外部命令
# 内部命令
linux内置的命令 ls pwd
# 外部命令 --第三方软件支持的
ifconfig
# type -a pwd 查看是内部还是外部
# yum provides ifconfig
# 查看环境变量---》任意路径敲命令,都能找到,命令在环境变量中
echo $PATH #用 : 分割
# 外部命令,一般都在 :/usr/sbin/
外置命令内存缓存
如果是外置命令还会涉及到一个内存缓存,也就是说,当我们出现重复执行相同的命令,会通过缓存调取执行,也就意味着不会搜索PATH路径
2 文件管理
2.1 系统目录结构
# Windows: 以多根的方式组织文件 C: D:
# Linux:以单根的方式组织文件 /
##### 1.存放命令相关的目录
/bin, 普通用户使用的命令 /bin/ls, /bin/date
/sbin,管理员使用的命令 /sbin/service,poweroff,useradd…
只要看到bin路径,就应该意识到放的是可执行文件
# which 命令名
# whereis 命令名 更全
####2 存放用户相关数据的家目录,比如:windows不同的用户登陆系统显示的桌面背景不一样
/home,普通用户的家目录, 默认为/home/lqz
环境变量的东西不要删,删掉试一下
/root,超级管理员root的家目录, 普通用户无权操作
#####3.系统文件目录
/usr,相当于C:Windows
/usr/local,软件安装的目录,相当于C:Program
/usr/bin/,普通用户使用的应用程序(重要)
/usr/sbin,管理员使用的应用程序(重要)
/usr/lib,库文件Glibc 32bit
/usr/lib64,库文件Glibc 64bit
# 1
df -h #df -h查看系统中文件的使用情况
Size 分割区总容量
Used 已使用的大小
Avail 剩下的大小
Use% 使用的百分比
Mounted on 路径地址
# 2
du -sh * 查看当前目录下各个文件及目录占用空间大小
du -sh /usr/
# 3 标准是实现自动化的基础
不通主机的相同的软件,都放在相同路径下,便于管理,实现自动化
现在一般安装的软件,不放在/usr/local下了
# 4 总共有一千来个命令
ls /usr/bin/ | wc -l
ls /usr/sbin/ | wc -l
# 5 查看命令依赖那些库文件
ldd /bin/ls
# 补充:动态链接库文件
-win上能看到 xx.dll
-linux上能看到 xx.so
-c,c++编写过后,编译后会产生两种东西
-可执行文件
-动态链接库问题
###4 启动目录
/boot 存放的系统启动相关的文件,例如:kernel,grub(引导装载程序)
linux内核+GUN软件
#### 5.配置文件目录
/etc,极其重要,后续所有服务的配置都在这个目录中
/etc/sysconfig/network-script/ifcfg-,网络配置文件
/etc/hostname,系统主机名配置文件,主机名很重要,有些特殊服务要依赖主机名,没有主机名会报错起不来;修改了要重启:reboot
/etc/resolv.conf,dns客户端配置文件,域名解析服务器,一般我们不配置,因为网卡的配置好了,会覆盖掉它,网卡的优先级高
/etc/hosts,本地域名解析配置文件,域名解析,先找自己的hosts,再去域名解析
/etc/motd :登录后显示的信息
# 1
/etc/hosts 对应windows C:windows/system32/drivers/etc/hosts,黑客钓鱼网站
# 2 测试修改
yum install httpd -y
systemctl stop firewalld
echo "lqz NB" >/var/www/html/index.html
systemctl start httpd
#### 6 可变的目录与临时目录
/var,存放一些变化文件,比如/var/log/下的日志文件,登陆日志
/var/tmp,进程产生的临时文件
/tmp,系统临时目录(类似于公共厕所),谁都可以使用
# 1 查看登陆日志
cat /var/log/secure #查看登陆时间
# 2 进程产生的临时文件(360清理垃圾,就是会清理)
##### 7.设备目录文件
/dev,存放设备文件,比如硬盘,硬盘分区,光驱,等等
/dev/sd 硬盘设备
/dev/null,黑洞设备,只进不出。类似于垃圾回收站
/dev/random,生成随机数的设备
/dev/zero,能源源不断的产生数据,类似于取款机,随时随地取钱
###8.虚拟的文件系统(如对应的进程停止则/proc下对应目录则会被删除)
/proc,反映系统当前进程的实时状态 :process
PS:类似于小汽车的仪表板,能够看到汽车是否有故障,或者是否缺油了
ls /proc # 可以看到很多id号,pid号,进程号,唯一
ls 进程id号的文件夹
如果进程被关闭,id号的文件夹就没了
id号每次启动都不唯一,只有一个进程唯一,systemd 是进程号1的进程,所有进程都是基于它派生出来的
###### 9其他
#1 media:提供设备的挂载点,媒体文件
# linux 新增了盘符,需要手动挂载
# 把光盘里的数据,挂载到media目录
mount /dev/cdrom /media/
# 2 mnt:提供设备的挂载点(同上)
# 3 opt:第三方工具,第三方软件默认安装的(mysql...)
# run :下有pid,log结尾的文件
ls /run
cat sshd.pid # 进程运行的pid号,放在文件中
ps aux |grep sshd
# .lock文件的作用,锁机制
# 假设现在执行
yum install tree
# 再开一个窗口执行相同命令
yum install tree
'''
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory : 71 M RSS (470 MB VSZ)
Started: Tue Aug 18 00:26:31 2020 - 00:24 ago
State : Sleeping, pid: 6191
'''
cat /run/yum.pid
参考文件:https://www.cnblogs.com/liuqingzheng/articles/17558867.html