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@Ma ~]#   
    root:用户
    @:没有含义
    Ma:主机名
    ~:路径,用户家路径,root用户家路径是  /root
    #:超级用户
    $:普通用户
        
    ### 2 主机名
    	hostname  # 查看主机名
       
     ### 2 主机名
    	hostname  # 查看主机名
    
    ### 3 创建用户(先听)
    	useradd xm  # 在/home 路径下创建一个根用户同名的文件夹--->这个用户家路径
        passwd xm   # 给用户设置密码
        #使用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源改成了阿里云的源----》
    	cd /etc/yum.repos.d
     # 下载Centos-7.repo 放在这个路径下即可
    	wget http://mirrors.aliyun.com/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路径