标题

linux学习笔记

一、初见命令

tty 当前连接的终端设备窗口号。      /dev/pts/1 /dev/pts/2

who   查看当前登陆该终端的所有用户

whoami 查看当前用户身份 //who am i 两种写法显示效果不一样

hostname -I 查看当前域名ip

free -h 当前系统消耗的内存/磁盘占用情况

runlevel 查看当前终端模式 (N  5)  (5  3)         // (上一个模式  当前模式)

init 切换模式 //3字符  5图形  (init 3

gedit 编辑修改文件 ( 例:geidt   /etc/motd) //motd是登录后的提示文件,issue登录前的提示文件

nano 编辑修改文件(字符界面的工具,不依赖于图形,可以输入中文进入文件)

ps aux 查看列出当前系统运行的所有程序

sudo passed 用户名 修改用户密码

sudo -i 切换成root用户

hostname 设置主机名(hostname NAME

//bj-yz-k8s-nodel-100-10.magedu.com

hostnamectl 可以把文件(断电不丢失)和内存(断电丢失)都改了 

(例:hostnamectl set0hostname 新的主机名)

//nano也可以修改文件,把主机名修改,断电不丢失

reboot 重新启动计算机

lscpu 查看当前一级缓存、二级缓存

exit; logout; 退出

echo (例:echo $PS1 $SHELL  $PATH)    //$SHELL当前shell类型

type 查看当前命令是否属于shell内部命令 (type xxx

hash 列出曾经执行过的外部命令的路径(即存储的位置)//该命令缓存在hash中

help 内部命令列表

hash -r 删除缓存

bc 计算器一种交互式命令(obase=2,定义输出是二进制)

rpm -qa | grep xxx  查询一个安装包是否安装

  php-fpm restart

5  cd opt/homebrew/etc/php

 brew services restart nginx

ubuntu上安装工具

安装ssh sudo apt-get install ssh

安装vim sudo apt-get install vim

 

 

shell

显示当前使用的shell echo ${SHELL}

显示当前系统使用的所有shell echo /etc/shells

 

 

二、命令提示符 prompt

例:[root@localhost ~]#

# 管理员

$ 普通用户

1、显示提示符格式

[root@centos8 ~]#echo $PS1

\[\e[1;35m\][\u@\h \W]\$\[\e[0m\]

(\h代表当前主机  \W代表当前用户名  \$代表提示符)

 

2、修改提示符

PS1=”\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]”

PS1=”\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\

[\e[0m\]\\$”

 

 

1;字体高亮 5;闪烁 41;背景颜色(41-47 33m字体颜色

 

\t显示时间

 

 

 

 

 

3、提示符格式说明

\e 控制符\033

\u 当前用户

\h 主机名简称

\H 主机名

\w 当前工作目录

\W 当前工作目录基名

\t 24小时时间格式

\T 12小时时间格式

! 命令历史数

# 开机后命令历史数

 

!!!提示符的修改是保存在内存中的,断电丢失,如果要永久修改提示符,修改env文件即可(只能在centos上操作,ubuntu不可以)

例:持久保存提示格式相关变量PS1  

[root@centos8 ~]# 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

[root@centos8 ~]#cat /etc/profile.d/env.sh

PS1=”\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\

[\e[0m\]\\$”

[root@centos8 ~]# exit

logout

Connection closed by foreign host.

Disconnected from remote host(centos8) at 15:28:38.

Type `help’ to learn how to use Xshell prompt.

[c:\~]$

Reconnecting in 1 seconds. Press any key to exit local shell.

.

Connecting to 10.0.0.100:22…

Connection established.

To escape to local shell, press ‘Ctrl+Alt+]’.

Activate the web console with: systemctl enable –now cockpit.socket

Last login: Wed Dec 11 15:28:34 2019 from 10.0.0.1

[15:28:40 root@centos8 ~]#

 

 

 

三、执行命令

优先级:别名>内部命令>外部命令

(如果一个命令既是别名又是内部命令,则优先执行别名的命令作用。如果想让它执行的是内部命令,见下文)

1、执行命令过程

输入命令后回车,提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分 配资源将其运行起来 

2.1、内部命令:shell自带

     外部命令:在文件系统路径下有对应的可执行程序文件

2.2、type 区别指定的命令是内部或外部命令

2.3、内部命令相关

    help 内部命令列表

    enable 管理内部命令

enable cmd 启用内部命令

enable -n cmd 禁用内部命令

enable -n 查看所有禁用的内部命令

2.4、执行外部命令

    查看外部命令路径:

    1. which: 显示外部命令的路径              //  which  -a |—skip-alias
    2. whereis:显示外部命令的文件路径及帮助文档的路径

2.5、Hash缓存表

    系统初始hash表为空,当外部命令执行时,默认会从PATH路径寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在则执行,不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用效率

hash命令常见用法

  • hash 显示hash缓存
  • hash -l 显示hash缓存,可作为输入使用
  • hash -p path name 将命令全路径path起别名为name
  • hash -t name 打印缓存中name的路径
  • hash -d name 清除name缓存
  • hash -r 清除缓存

 

3、命令别名

  1. alias 显示当前shell进程所有可用的命令别名
  2. alias NAME=‘VALUE’ 定义别名NAME,执行NAME,相当于执行VALUE例:[root@centos8 ~]#echo “alias free=’free -h'” >> .bashrc   (别名保存在bashrc文件中)

定义别名不能立马生效,可以退出重新登录 ..bashrc命令

别名生效方式:退出重新登录  或  .后面跟上一个文件,执行命令

  1. unalias 撤销别名

  unalias [-a] name [name …]

unalias -a 取消所有别名

 

注意:在命令行中定义的别名,仅对当前shell进程有效

如果想要永久有效,要定义在配置文件中

    • 仅对当前用户: ~/.bashrc
    • 对所有用户有效: /etc/bashrc

 

编辑配置给出的新配置不会立即生效,让bash进程重新读取配置文件方式如下:

source /path/to/config_file

.  /path/to/config_file

 

 

 

 

 

如果别名同原命令同名,如果要执行原命令,可使用

\ALIASNAME

“ALIASNAME”

‘ALIASNAME’

command ALIASNAME

/path/command //只适用于外部命令

 

别名是临时的,hash缓存的是外部命令

 

4、命令格式

COMMAND   [OPTIONS…] [ARGUMENTS…]

选项:用于启用或关闭命令的某个或某些功能

短选项:UNIX风格,-c 例如:-l,-h

长选项:GNU风格选项,–word 例如:–all, –human

BSD风格选项:一个字母, 例如:a,使用相对较少

参数:命令的作用对象,文件名、用户名等

 

id -u wang     (显示wang这个用户的id

ls –a

ls –all

free -h

free –human

ps a

 

 

注意:

  1. 多个选项以及多参数和命令之间使用空白字符分隔
  2. 取消和结束命令执行:Ctrl+c(强制退出),  Ctrl+d(一般退出)
  3. 多个命令可以用“,”符号分开
  4. 一个命令可以用\分成多行

 

 

 

 

 

 

四、常见命令

1、查看cpu

lscpu

cat /proc/cpuinfo

2、查看内存大小:

free

cat /proc/meminfo proc目录对应是内存中的数据,显示当前系统的状态,都以内存方式保存,即meminfo为内存中的文件)

3、查看硬盘和分区情况

lsblk

cat /proc/partitions

 

4、查看内核版本

uname -r

 

5、查看操作系统发行版本

centos

cat /etc/redhat-release           (红帽)

cat /etc/os-release                (Ubuntu

lsb_release -a

 

ubuntu

cat /etc/os-release

cat /etc/issue

lsb_release -a

 

6、日期和时间

    Linux的两种时钟

系统时钟:由Linux内核通过CPU的工作频率进行的

硬件时钟:主板

systemctl  status  chrony  可以查看chrony是否安装,这个软件可以校正系统时间,否则只能用date手动校正

  1. date  显示和设置系统时间

    date可以修改时间,例如:date 062018302020.50

[root@centos8 ~]#date +%s

1584689051

[root@centos8 ~]#date -d @`date +%s`

Fri Mar 20 15:24:18 CST 2020

[root@centos8 ~]#date -d @1584689051

Fri Mar 20 15:24:11 CST 2020

[root@centos8 ~]#date -d @1584689051 +%F_%T

2020-03-20_15:24:11

 

  1. clock,hwclock:  显示硬件时钟

    -s, –hctosys  以硬件时钟为准,校正系统时钟

   -w, –systohc  以系统时钟为准,校正硬件时钟 (clock -w)

  1. 时区         /etc/localtime

      设置时区 timedatectl set-timezone Asia/Shanghai

      列出所有时区 timedatectl list-timezones

centos:

[root@centos8 ~]#timedatectl set-timezone Asia/Shanghai

[root@centos8 ~]#ll /etc/localtime

lrwxrwxrwx. 1 root root 35 Dec 11 11:19 /etc/localtime ->

../usr/share/zoneinfo/Asia/Shanghai

 

ubuntu: cat /etc/timezone

root@ubuntu1804:~# cat /etc/timezone

Asia/Shanghai

  1. 显示日历   cal

cal :显示当月的日历

cal -y:显示今年整年的日历

cal -2021:显示2021年整年日历

cal 10 2040:显示2040年10月份的日历

 

7、关机和重启

     关机: halt

poweroff

 

    重启: reboot

    -f:强制,不调用shutdown

    -p:切断电源

   

   关机或重启:shutdown

    shutdown   [OPTION]…   [TIME]   [MESSAGE]

   -r:reboot

-h:halt

-c:cancel

TIME:无指定,默认相当于+1(CentOS7

  now 立刻,相当于+0

+#    相对时间表示法,几分钟之后;例如:+3

hh:mm  绝对时间表示,指明具体时间

8、用户登录信息查看命令 

whoami: 显示当前登录有效用户

who: 系统当前所有的登录会话

w:    系统当前所有的登录会话及所做的操作

 

9、文本编辑

nano: 工具可以实现文本的编辑,上手容易,适合初学者

gedit 图形工具

vim

 

 

10、会话管理

命令行的典型方式是,打开一个终端窗口,在里面输入命令。用户与计算机的这种临时的交互,成为一次“会话”。

会话特点:

窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之种植,不管有没有运行完

 

例: SSH登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上次执行的命令的。因为上一次SSH会话已经终止,里面的进程也随之消失了。为了解决这个问题,会话与窗口可以“解绑”;窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话“绑定”其他窗口。

 

?终端复用器: 会话与窗口的解绑工具,将它们彻底分离。

  • 它允许在单个窗口中,同时访问多个会话,这对于同时运行多个命令行程序很有用。
  • 它可以让新窗口“接入”已经存在的会话
  • 允许每个会话有多个连接窗口,因此可以多人实时共享会话
  • 支持窗口任意的垂直和水平拆分

类似的终端复用器还有:Screen,Tmux

 

 

 

 

 

 

 

(1) screen

安装screen dnf -y install screen centos8

yum -y install screen (centos6、centos7、centos8

  • 创建新screen会话 screen  -S  [SESSION]
  • 加入screen会话 screen  -x  [SESSION]
  • 退出并关闭screen会话 exit (该操作会把原登录用户踢出)
  • 剥离当前screen会话 Ctrl+ad (按住Ctrl+a ,松手按d键)
  • 显示所有已经打开的screen会话 screen -ls
  • 恢复某screen会话 screen -r [SESSION]

注意:CentOS7来自于base源,CentOS8来自于epel

 

(2) tmux :screen更强大,更易用。 拥有?提及的所有功能

  • 安装tmux yum install tmux
  • 启动与退出: tmux / exit

快捷键:默认前缀Ctrl+b  (帮助命令:Ctrl+b ?然后按q键退出)

  • 新建会话: Tmux new -s <session-name >

(第一个启动的Tmux窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是0号会话、1号会话。。。使用编号区分会话不直观,可以为会话起名)

查看当前所有会话:tmux ls

  tmux list-session

  • 分离会话: tmux detach         按下Ctrl+b
  • 接入会话: tmux attach   -t   <SESSION-name>

(tmux attach -t 0)

  • 杀死会话: tmux kill -session   -t  <session-name>
  • 切换会话: tmux switch  -t  <session-name>

上下分窗格 tmux  split-window ctrl+b,’’

左右分窗格 tmux  split-window  -h ctrl+b,%

 

#窗格快捷键

Ctrl+b % 划分左右两个窗格

Ctrl+b ‘’ 划分上下两个窗格

Ctrl+b <arrow key> 光标切换到其他窗格 (arrow key 方向键)

Ctrl+b ; 光标切换到上一个窗格

Ctrl+b o 光标切换到下一个窗格

Ctrl+b { 当前窗格左移

Ctrl+b } 当前窗格右移

Ctrl+b Ctrl+o 当前窗格上移

Ctrl+b Alt+o 当前窗格下移

Ctrl+b x 关闭当前窗格

Ctrl+b ! 将当前窗格拆分为一个独立窗口

Ctrl+b z 当前窗格全屏显示,再使用一次会变回原来大小

Ctrl+b Ctrl+<arrow key> 按箭头方向调整窗格大小

Ctrl+b q 显示窗格编号

 

 

 

a、窗口管理

除了将一个窗口划分成多个窗格,Tmux也允许新建多个窗口

  • 新建窗口 tmux new-window

tmux new-window  -n  <window-name> 新建一个指定名称的窗口

  • 切换窗口 tmux  select-window

tmux  select-window  -t  <window-number> 切换到指定编号

tmux select-window  -t  <window-name> 切换到指定名称

 

 

#窗口快捷键

Ctrl+b c       创建一个新窗口,状态栏会显示多个窗口的信息

Ctrl+b p       切换到上一个窗口(按照状态栏上的顺序)

Ctrl+b n       切换到下一个窗口

Ctrl+b <number>       切换到指定编号的窗口 (<number>状态栏上的窗口编号)

Ctrl+b w       从列表中选择窗口

Ctrl+b ,       窗口重命名

 

列出所有快捷键,及其对应的Tmux命令 tmux  list-keys

列出所有Tmux命令及其参数 tmux list-commands

 

 

 

 

 

11、输出信息echo

echo:显示字符,会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号

 

echo      [-neE]   [字符串]

 

-E (默认)不支持、解释功能

-n   不自动换行

-e   启用\字符的解释功能

 

显示变量

echo “$VAR_NAME” //用变量值替换,弱引用

echo ‘$VAR_NAME’ //变量不会替换,强引用

 

\ 转义符

echo \$PATH 变量直接当作字符串输出

 

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

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

 

[root@centos8 ~]#echo -e ‘a\x0Ab’

a

b

[root@centos8 ~]#echo -e ‘\033[43;31;1;5mmagedu\e[0m’

magedu

[root@centos8 ~]#echo -e ‘\x57\x41\x4E\x47’

WANG

[root@centos8 ~]#echo \$PATH

$PATH

[root@centos8 ~]#echo \

[root@centos8 ~]#echo \\

\

[root@centos8 ~]#echo \\\

>

[root@centos8 ~]#echo \\\\

\\

[root@centos8 ~]#echo “$PATH”

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@centos8 ~]#echo ‘$PATH’

$PATH

 

 

 

五、字符集和编码

查看ascii

dnf  -y  install  man-pages

man ascii

 

Unicode编码方案:

    • UTF-8:    变长,1到4个字节
    • UTF-16:  变长,2到4个字节
    • UTF-32:  固定长度,4个字节

 

编码转换和查询: 

http://www.chi2ko.com/tool/CJK.htm 

https://javawind.net/tools/native2ascii.jsp?action=transform 

http://tool.oschina.net/encode 

 

UnicodeUTF-8 

Unicode符号范围

UTF-8编码方式

0000 0000-0000 007F

0xxxxxxx

0000 0080-0000 07FF

110xxxxx 10xxxxxx

0000 0800-0000 FFFF

1110xxxx 10xxxxxx 10xxxxxx

0001 0000-0010 FFFF

11110xxx 10xxxxxx 10xxxxxx

 

例:修改LANG变量实现中文语言提示

[root@centos7 ~]#xxx
bash: xxx: command not found… [root@centos7 ~]#echo $LANG en_US.UTF-8
[root@centos7 ~]#LANG=zh_CN.UTF-8 [root@centos7 ~]#echo $LANG zh_CN.UTF-8
[root@centos7 ~]#xxx
bash: xxx: 未找到命令… 

 

 

 

六、命令行扩展和被括起来的集合

 

 

 

 

 

 

 

 

 

 

 

 

主题

  • 此为示例文本。
    • 选择以替换为您自己的文本。
    • 您可以自定字体、大小、颜色和样式。
    • 此为示例文本。
    • 选择以替换为您自己的文本。
      • 您可以自定字体、大小、颜色和样式。
      • 此为示例文本。
版权声明:本文为小橘了个橘原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/maria-shinning/p/16711092.html