首页 > 系统相关 >MacOS-shell-PS1

MacOS-shell-PS1

时间:2023-06-12 20:46:53浏览次数:53  
标签:bin MacOS shell export usr homebrew PS1

1. shell
	1.1 查看当前使用的shell
	1.2 查看系统支持那些shell
	1.3 修改默认的shell解释器
2. PS1命令提示符
	2.1 查看当前的PS1
	2.2 临时修改PS1
	2.3 永久修改PS1
	2.4 添加命令序号,时间
	2.5 彩色显示
	2.6 文件类型
	2.7 彩色的命令前缀
3. 其他
	3.1 增加命令历史记录数量
	3.2 意外状况
	3.3. zshrc

 

1. shell

1.1 查看当前使用的shell

 % echo $SHELL   /bin/zsh  % echo $0   -zsh  % env | grep SHELL   SHELL=/bin/zsh  

1.2 查看系统支持那些shell

 % cat /etc/shells  # List of acceptable shells for chpass(1).  # Ftpd will not allow users to connect who are not using  # one of these shells. /bin/bash /bin/csh /bin/dash /bin/ksh /bin/sh /bin/tcsh /bin/zsh  

1.3 修改默认的shell解释器

 % chsh -s /bin/sh   

2. PS1命令提示符

2.1 查看当前的PS1

 % echo $PS1 %n@%m %1~ %  

2.2 临时修改PS1

 % export PS1="%n@%m %1~ %" tom@tomdeMacBook-Air ~ %  缩减前缀  % export PS1="%n %1~ %"  

2.3 永久修改PS1

直接运行export,仅在当前终端会话期间生效,关闭重开后,刚修改的命令前缀就会失效。 若要保留修改,可将以上命令写入用户的配置文件。 当前使用的shell是zsh,用户目录下相关的隐藏文件有:  % ls -a |grep zsh   .zsh_history   .zsh_sessions   .zshrc    % pwd  /Users/tom 访达窗口,使用快捷键 [command]+[shift]+[.] 显示隐藏文件 将上面的命令写入配置文件(.zshrc),然后执行下面的命令,刷新当前shell的配置。即刻生效。  % source ~/.zshrc    注:/etc/profile系统配置文件:对所有用户都生效,但会被用户的设置覆盖。不建议修改此文件。  

2.4 添加命令序号,时间

 % export PS1="%n[%h][%T] %1~ %" tom[1072][3:34] ~ %   

2.5 彩色显示

当前的zsh开启彩色模式 export CLICOLOR=1 ls,查看目录文件,就能看到不同的类型使用不同的颜色显示 有些shell或许还需要下面的命令指定文件类型的颜色 export LSCOLORS=ExGxFxdaCxDaDahbadeche https://www.zhihu.com/question/318045233/answer/636356772 这里有详细的字母对照解释  

2.6 文件类型

代码 文件类型 说明:
d directory, 目录 目录
l symbolic link,
符号链接
符号链接,ln命令生成的文件
s socket,
套接字
(伪文件) 套接字(sockets), 数据接口文件,通常用在网络数据连接。
可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。
最常在/var/run
p pipe, 管道 (伪文件) 管道(pipe, FIFO,数据输送文件),
FIFO也是一种特殊的文件类型,
它主要的目的是,解决多个程序同时存取一个文件所造成的错误。
b block special,
块设备
(伪文件) 区块设备(block), 存储数据以供系统存取的接口设备。
比如硬盘分区。/dev/
c character special,
字符设备
(伪文件) 字符设备(character),即串行端口的接口设备。
例如键盘、鼠标等,这些设备的特色就是(一次性读取),不能截断输出。
- regular,
普通文件
普通文件, 纯文本文件(ASCII);二进制文件(binary);
数据格式的文件(data);各种压缩文件.

MacOS的app应用程序在ls命令下显示为和目录一样的d类型。
文件类型 说明:
executable 可执行的
executable with setuid bit set 设置了 setuid 位的可执行文件
executable without setgid bit set 未设置 setgid 位的可执行文件
directory writable to others, with sticky bit 其他人可写的目录,有粘性位
directory writable to others, without sticky bit 其他人可写的目录,没有粘滞位

2.7 彩色的命令前缀

autoload -U colors && colors  PROMPT="%{$fg_bold[cyan]%}%n%{$reset_color%}[%h] %{$fg_bold[green][%T] %{$fg_bold[yellow]%}%1~ %{$reset_color%}%# " 以上命令添加到用户配置文件即可,这里用的是 source ~/.zshrc  说明: %n 用户名;[%h] 命令序号;[%T] 时间;%1~ 目录  $fg的意思为颜色浅一些。$fg_bold意思为颜色深一些。[ ]里的就是颜色。 上面这个命令的写法,可选用的颜色有:
  • 黑 black
  • 红 red
  • 绿 green
  • ⻩ yellow
  • 蓝 blue
  • 紫 magenta
  • ⻘ cyan
  • 白 white
 

3. 其他

3.1 增加命令历史记录数量

export HISTFILESIZE=20000 export HISTSIZE=10000  

3.2 意外状况

tom[1006] [12:19] ~ % brew list     zsh: command not found: brew  tom[1007] [12:19] ~ % /opt/homebrew/bin/brew list 修改了前缀后,使用brew命令,提示找不到命令了?但使用完整路径则可以正常运行 查看路径参数,不明白为什么丢失了homebrew的路径,有知道的还请告知。 tom[1007] [12:19] ~ % echo $PATH                  /usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin 对比之前的路径 tom@tomdeMacBook-Air ~ % echo $PATH /opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin 正好缺少了这2个路径,原因不明,手动添加即可。 /opt/homebrew/bin:/opt/homebrew/sbin: 这里添加到配置文件里, export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:$PATH 然后刷新配置文件   % source ~/.zshrc   

3.3 zshrc

文件总揽  % cat ~/.zshrc  export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles # export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles # export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles # export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.cloud.tencent.com/homebrew-bottles # export HOMEBREW_BOTTLE_DOMAIN=''   export HISTFILESIZE=20000 export HISTSIZE=10000 export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:$PATH export CLICOLOR=1   autoload -U colors && colors PROMPT="%{$fg_bold[cyan]%}%n%{$reset_color%}[%h] %{$fg_bold[green][%T] %{$fg_bold[yellow]%}%1~ %{$reset_color%}%# "   补充:参考下文,还有更多选择 https://www.freecodecamp.org/news/how-to-configure-your-macos-terminal-with-zsh-like-a-pro-c0ab3f3c1156/  

标签:bin,MacOS,shell,export,usr,homebrew,PS1
From: https://www.cnblogs.com/sztom/p/17476049.html

相关文章

  • shell数组的差集
    https://stackoverflow.com/questions/29396154/jq-setdiff-of-two-arrays1.echo-n'{"all":["A","B","C","ABC"],"some":["B","C"]}'|jq'.as$d|.all|del(.[i......
  • shell脚本
    1.运行脚本可以显示出本机的ip地址2.如果ip地址中有3这个数字,那么就打印出当前的系统时间3.如果ip地址中不含3这个数字,就批量建立用户magedu_00,magedu_01,...magedu_100并且所有用户同属于magedu组4.打印出/etc/passwd这个文件中可以登陆的用户(非/usr/sbin/nologin)5.yum......
  • Shell脚本_统计当前shell脚本已经运行了几分几秒
    可以使用date命令获取当前时间,再与脚本开始运行的时间进行计算,最后将计算结果转换为分钟和秒数。示例代码:#!/bin/bash#记录脚本开始运行的时间start_time=$(date+%s)#执行脚本的主体代码sleep5#计算脚本已经运行的时间end_time=$(date+%s)elapsed_time=$((end......
  • shell中中括号实现变量运算
     001、[root@PC1test03]#a=100[root@PC1test03]#echo$a100[root@PC1test03]#echo$a+500100+500[root@PC1test03]#echo$[a+500]##中括号可以实现变量运算600[root@PC1test03]#echo$a*3100*3[root@PC1test03]#echo$[a*3]300[root@PC1test03]#......
  • python的shell用法
    python的shell用法python[-bBdEhiIOqsSuvVWx?][-ccommand|-mmodule-name|script|-][args]Python-mpython-mmodule名args检索对应的模块名去执行,对于一个普通的模块,可能下面两种写法实际上是等效的:python-mtestpythontest.py两种写法都是将对应的py文......
  • 常用的webshell管理工具的流量特征 4
    一、菜刀流量特征最开始是明文传输,后来采用base64加密:PHP类WebShell链接流量如下:第一:“eval”,eval函数用于执行传递的攻击payload,这是必不可少的;第二:(base64_decode(POST[z0])),(base64decode(_POST[z0])),(base64_decode(POST[z0])),(base64ecode(_PO......
  • macos升级后安装cocoapods
    1、安装rvmcurl-Lget.rvm.io|bash-sstable2、安装rubyrvmautolibsread-onlyrvminstall2.7.2rvmuse2.7.2rvmlist 参考:https://juejin.cn/post/6950518188798902286https://blog.csdn.net/sinat_31057219/article/details/116601781 ......
  • 14-7 shell脚本进阶数组
    一、数组的基本用法关联数组需要先声明[root@centos8~]#declare-adeclare-aBASH_ARGC=()declare-aBASH_ARGV=()declare-aBASH_COMPLETION_VERSINFO=([0]="2"[1]="7")declare-aBASH_LINENO=()declare-aBASH_SOURCE=()declare-arBASH_VERSINFO=([0]=&......
  • shell中if else if的写法,if elif
    需求描述:在写shell脚本的过程中,用到了ifelse的写法,突然有多个参数需要判断那么就想到了ifelseif的用法,于是进行如下的测试。测试过程:1.写如下的测试脚本,进行多个值的判断#!/bin/bashif[[$1='tomcat']];thenecho"Inputistomcat"elseif[[$1=......
  • Powershell 应用之一
    前言:对于一个Windowsserver运维的管理员来说,powershell命令至关重要,它不仅仅能够提高你的工作效率,也是你工作中的好帮手,所以应该静下心来好好学习命令,虽然一开始不太习惯用着用着你就会爱不释手。一、AD对象日常管理用户管理例子1:统计OU下总共有多少个AD账号(Get-ADUser-Filter......