导学

  • 导学

0.显示提示符格式

[root@cent7 ~]#echo  $PS1
\[\e[1;5;41;33m\][\u@\h \W]\$\[\e[0m\]
修改提示符格式范例
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"

提示符格式说明:

  • \e 控制符\033
  • \u 当前用户
  • \h 主机名简称
  • \H 主机名
  • \W 当前工作目录基名
  • \t 24小时时间格式
  • \T 12小时时间格式
  • !命令历史数
  • # 开机后命令历史数
centos范例
PS1="\[\e[1;32m\][\t \[\e[1;33m \]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"
永久生效
echo  'PS1="\[\e[1;32m\][\t \[\e[1;33m \]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"'      >>  /etc/profile.d/env.sh
ubuntu
PS1='\[\e[1;35m\][\u@\h \W]\$\[\e[0m\]'

echo  'PS1='\[\e[1;35m\][\u@\h \W]\$\[\e[0m\]''    >>   .bashrc
  • shell基础命令
cat /proc/  cpu  info 查看cpu信息,processor 0 为一个U, 1为两个,flags超线程。
lspci 查看主板信息
free –m 查内存 (total属性下显示的是内存的大小)。
fidsk -l 查硬盘空间
df -h 查硬盘
du -sh 查看文件夹大小
top 这个比较全,内存 进程 负载 都有了。
uptime 查运行时间 负载情况 等等的信息
uname -r 查看内核版本
who 查看现在登录的角色
who am i  我用的什么角色登录
echo $SHELL     查看解释器
  • 命令的执行过程

shell命令分为内部命令和外部命令

内部命令:存在内核中,用   help和enable可以进行查看

外部命令:存在   $PATH    (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin)

通过type可以区别

[root@ubuntu ~]#type  hostname     #外部命令
hostname is /bin/hostname
[root@ubuntu ~]#type  alias       #内部命令
alias is a shell builtin
  • 命令的执行过程

1.先查看内部命令

2.在查看外部命令

  • 存在$PATH中的路径查找
  • 直接调用内存中的路径,(用过一遍的命令会缓存到内存中)

3.提示

-bash: sfef: command not found

  • 存在的一种没有命令的情况
[00:02:18  root@cent8 yum.repos.d]#ls 
repo
[00:03:00  root@cent8 yum.repos.d]#hash
hits    command
   1    /usr/bin/mv
   1    /usr/bin/uname
   1    /usr/bin/yum
   1    /usr/bin/mkdir
   3    /usr/bin/ls
[00:04:10  root@cent8 yum.repos.d]#mv  /usr/bin/ls  /usr/sbin/
[00:04:25  root@cent8 yum.repos.d]#ls 
-bash: /usr/bin/ls: No such file or directory

解决方法:

1.退出终端,重新进入

2.[00:09:48  root@cent8 yum.repos.d]#hash  -r  

  •  别名
[18:21:51  root@cent8 ~]#alias  who='who am i'          #自定义的优先级高于外部命令和内部命令
[18:22:06  root@cent8 ~]#who
root     pts/0        2023-05-17 18:21 (10.0.0.1)
[18:22:51  root@cent8 ~]#\who                    #取消别名的定义
root     pts/0        2023-05-17 18:21 (10.0.0.1)
root     pts/1        2023-05-17 18:22 (10.0.0.1)
  •  在服务器字符界面,用win显示图形的操作方法

一、

1..安装xmanager,打开Xmanager - Passive

2.在服务器上安装相应的软件,比如gedit

[14:15:42  root@cent8 ~]#yum  -y install  gedit

3.启动相应的命令

[14:58:18  root@cent8 ~]#export  DISPLAY=10.0.0.1:0.0        #这里的地址是自己的电脑虚拟网卡地址

[15:00:23 root@cent8 ~]#yum -y install libglvnd-glx-1:1.3.2-1.el8.i686


root@cent8 ~]#gedit

二、安装mobaxterm

 

yum install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils
  • screen的安装

解决screen-x.tgz编译报错“configure: error: !!! no tgetent”


wget
http://ftp.gnu.org/gnu/ncurses/ncurses-6.2.tar.gz tar zxvf ncurses-6.2.tar.gz cd ncurses-6.2 ./configure --prefix=/usr/local/ncurses make && make install

最后添加环境变量到~/.bashrc
vim ~/.bashrc


添加
export LDFLAGS=-L/usr/local/ncurses/lib

export CPPFLAGS=-I/usr/local/ncurses/include


source ~/.bashrc #使上述修改的环境变量生效

wget http://ftp.gnu.org/gnu/screen/screen-4.8.0.tar.gz

tar -xvf screen-4.8.0.tar.gz

cd screen-4.8.0
// 第1步
./configure
// 第2步,make可能需要安装,sudo yum install make 即可
make
// 第3步
make install
// 第4步
install -m 644 etc/etcscreenrc /etc/screenrc
// 第5步
cp ./screen /bin

  •  echo 
选项:
-E (默认) 不支持\解释功能
-n 不自动换行
-e 启用\字符的解释功能

echo"$VAR NAME#用变量值替换,弱引用
echo'$VAR NAME#变量不会替换,强引用

启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

\a 发出警告声

\b 退格键
\c 最后不加上换行符号
\e escape,相当于\033
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t插入tab
\\ 插入\字符
\Onnn 插入nnn (八进制) 所代表的ASCII字符
\xHH插入HH (十六进制) 所代表的ASCII数字 (man 7 ascli)

 

echo 高级用法
在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码具有颜色的字符,其格式如下:
"\033[字符背景额色;字体额色m字符串\033[0m"
\033[30m -- 033[37m 设置前景色
\033[40m -- 033[47m 设置背景色

\033[0m  关闭所有属性
\033[1m  设置高亮度
\033[4m  下划线
\033[5m  闪烁
\033[7m  反显
\033[8m  消隐
\033[nA  光标上移n行
\033[nB  光标下移n行

\033[nC  光标右移n列

\033[nD  光标左移n列

\033[x;yH  设置光标位置x行y列
\033[2]  清屏
\033[K  清除从光标到行尾的内容
\033[s  保存光标位置
\033[u  恢复光标位置
\033[?25l  隐藏光标
\033[?25h  显示光标
\033[2J\033[0;0H   清屏且将光标置顶

 

 

命令行扩展``:和$()
把一个命令的输出打印给另一个命令的参数,放在``中的一定是有输出信息的命令
$(COMMAND)或`COMMAND`~
范例:比较“”,"、``三者区别
选择语言
[root@centos8 ~]#echo "echo $HOSTNAME!echo centos8.localdomain”
[root@centos8 ~]#echo 'echo $HOSTNAME!’
echo SHOSTNAME
[root@centos8 ~]#echo `echo $HOSTNAMEcentos8.1ocaldomain`
#结论:
单引号:强引用六亲不认,变量和命令都不识别,都当成了普通的字符串,"最傻"

双引号:弱引用,不能识别命令,可以识别变量,"半傻不精" 反向单引号:里面的内容必须是能执行的命今并目有输出信息,变量和命今都识别,并目会将反向单引号的内容当成命今进行执行后,再交给调用反向单引号的命令继续,"最聪明"

 

posted @ 2023-05-16 16:13  mmniu  阅读(56)  评论(0编辑  收藏  举报