linux学习Linux基础入门2.1

2^0=1=1b
2^1=2=10b
2^3=8=1000b
2^4=16=10000b
2^5=32=100000b
2^6=64=1000000b
2^7=128=10000000b
2^8=256=100000000b
2^9=512=1000000000b
2^10=1024=10000000000b
2^11=2048=100000000000b
2^12=4096=1000000000000b

常用命令
passwd 修改密码
sudo -i 切换管理员
ip a 查看Ip
halt
poweroff 关机
reboot重启
-f: 强制,不调用shutdown
-p: 切断电源
ctrl+alt+delete 三个键
关机或重启:shutdown

shutdown [OPTION]... [TIME] [MESSAGE]
-r: reboot
-h: halt
-c:cancel
 TIME:无指定,默认相当于+1(CentOS7)
 now: 立刻,相当于+0
 +#: 相对时间表示法,几分钟之后;例如 +3
 hh:mm: 绝对时间表示,指明具体时间

关机命令

  1. shutdown -h now:立即关机。这个命令会立即将系统关闭,所有的运行中的程序和服务都会被停止。
  2. shutdown -r now:立即重启系统。这个命令会立即将系统重启,所有的运行中的程序和服务都会被停止然后重新启动。
  3. shutdown -h +10:在10分钟后关机。这个命令会在当前时间的10分钟后将系统关闭。
  4. shutdown -r +1 “系统将在1分钟后重启,请保存正在进行的工作”:在1分钟后重启系统,并显示一条自定义的关机提示。这个命令会在1分钟后将系统重启,并在关机之前显示一个自定义的提示信息。
    除了上述常用的参数外,shutdown命令还支持其他一些参数,例如:
    -: 关闭所有用户的终端登录
    -k: 发送警告消息,但不关机
    -F: 强制关机,不执行服务的停止
    -c: 取消已经创建的关机任务
    总结一下,关机命令shutdown是Linux系统中非常常用的命令,可以使用不同的参数来实现不同的关机操作,如立即关机、定时关机和重启等。在使用shutdwon命令时,需要注意使用root权限执行,并根据实际需求选择适当的参数。
    Linux的shutdown命令是一个用来关闭系统的命令,它可以通过命令行界面或者终端来执行。下面是关机命令的五个常用选项:
  5. -h选项:这个选项用来将系统关机。它可以和后面的时间参数一起使用,例如:shutdown -h now 表示立即关机,shutdown -h 10 表示在10分钟后关机。
  6. -r选项:这个选项用来重新启动系统。使用类似于关机选项的方式,例如:shutdown -r now 表示立即重启,shutdown -r 10 表示在10分钟后重启。
  7. -k选项:这个选项用来发送关机警告通知给所有登录用户。它的作用是让用户知道系统即将关闭,但实际上并不执行关机操作。这对于管理员想要提醒用户保存工作而不影响他们的当前活动很有用。使用方式:shutdown -k now 表示立即发送通知。
  8. -c选项:这个选项用来取消之前计划的关机或重启操作。如果之前使用了关机或重启命令,可以使用该选项来取消。使用方式:shutdown -c。
  9. -f选项:这个选项用来强制执行关机或重启操作。它会绕过系统中正在运行的进程和服务的检查,直接关闭或重启系统。使用的方式和其他选项类似。例如:shutdown -r -f now 表示立即强制重启。
    除了上述的选项之外,还有其他一些可用的选项可以与shutdown命令一起使用,例如指定特定的时间、发送警告消息等。详细的用法可以通过在终端输入man shutdown来获取帮助文档。

修改允许root登录

      nano /etc/ssh/sshd_config
      #PermitRootLogin prohibit-password

改为

      PermitRootlogin yes
      ctrl+x       
        y
        enter

vi 路径
i 编辑
esc :wq 回车
重启reboot 即可或者systemctl restart sshd

查看当前窗口

tty
查看有连接数 https://www.yisu.com/ask/94206375.html

netstat -an | grep ESTABLISHED | wc -l
whoami
who am i 
who

确定自己身份

whoami
who an i
data 显示当前时区
Ubuntu的默认时区是UTC时间,修改为北京时间

timedatectl  set-timezone Asia/Shanghai
date

查看资源占用

free -h

init 3 关闭图形界面
init 5 开启

显示当前使用的shell

echo ${SHELL}

显示当前系统使用的所有shell

cat /etc/shells

设置主机名

临时生效

hostname NAME

持久生效,支持CentOS7和Ubuntu18.04以上版本

hostnamectl set-hostname NAME

范例

[root@centos8 ~]#hostname   bj-yz-k8s-node1-100-10.magedu.local

注意: 主机名不支持使用下划线,但支持横线,可使用字母,横线或数字组合 有些软件对主机名有特殊要求

范例:

[root@centos8 ~]#hostnamectl set-hostname centos8.3
[root@centos8 ~]#systemctl restart postfix
Job for postfix.service failed because the control process exited with error
code.
See "systemctl status postfix.service" and "journalctl -xe" for details.

安装软件

Rocky/CentOS
yum -y install software_name

Ubuntu
apt -y install  software_name

命令提示符 prompt

登录Linux后,默认的系统命令提示符毫无没有个性,无法明显辨别生产和测试环境,而导致误操作。 可以通过修改PS1变量实现个性的提示符格式,避免这种低级错误 范例:默认的提示符

#CentOS默认提示符
[root@localhost ~]#
#Ubuntu默认提示符
root@ubuntu1804:~#

 # 管理员
 $ 普通用户

管理员

$ 普通用户

显示提示符格式

[root@centos8 ~]#echo $PS1
[\u@\h \W]\$

提示符格式说明:

  • \e 控制符\033
  • \u 当前用户
  • \h 主机名简称
  • \H 主机名
  • \w 当前工作目录
  • \W 当前工作目录基名
  • \t 24小时时间格式
  • \T 12小时时间格式
  • ! 命令历史数
  • $ 普通用户 # root
  • #开机后命令历史数
    范例:在CentOS系统实现持久保存提示符格式

修改提示符格式范例

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-47 底色/背景色
33(31-37) 字体颜色
永久生效


ubuntu
nano .bashrc

Rockey 任意命令

nano  /etc/bashrc 
/etc/profile 
/etc/profile.d/env.sh

总结

sh
who
whoami 
tty
hostname
hostnamectl set-hostname xxx
timedatectl set-timezone Asia/Shanghai
date
ps  系统中常用的命令,用于查看当前运行的进程的状态。
ip a 
nano 
vi 
echo $PS1

ps -e:显示所有进程。
-f:全格式显示。
-l:长格式显示。
-a:显示终端上的所有进程,包括其他用户的进程。
-u:显示进程的详细状态。
-x:显示没有控制终端的进程。
-T:显示当前线程的层次结构。
-o:自定义输出格式,其中 可以是如下的格式选项之一或组合:%cpu、%mem、%tty、%time、%cmd等。例如,ps -o pid,tty,cmd 将只显示进程ID、终端类型和执行的命令行。
–sort:按指定的字段对输出进行排序。
head:仅显示输出中的前N行,其中N是用户指定的数字。

shell中可执行的两类命令

  • 内部命令:由shell自带的,而且通过某命令形式提供, ,用户登录后自动加载并常驻内存中
  • 外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行 完毕后从内存中删除

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

type COMMAND

显示为磁盘文件则为外部命令
范例: 查看是否存在对应内部和外部命令

[root@centos8 ~]#type -a echo
echo is a shell builtin
echo is /usr/bin/echo

内部命令相关

help 内部命令列表
enable 管理内部命令
enable cmd 启用内部命令
enable –n cmd 禁用内部命令
enable –n 查看所有禁用的内部命令

执行外部命令

查看外部命令路径:

which  -a |--skip-alias
whereis

对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行 显示当前shell进程所有可用的命令别名

alias

定义别名NAME,其相当于执行命令VALUE

alias NAME='VALUE'

范例: 扫描新加的磁盘

[root@centos8 ~]#alias scandisk='echo - - - >
/sys/class/scsi_host/host0/scan;echo - - - >
/sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'

范例: 持久保存别名
撤消别名:unalias

unalias [-a] name [name ...]
unalias -a  #取消所有别名

命令种类

alias
内部
外部

注意:在命令行中定义的别名,仅对当前shell进程有效 如果想永久有效,要定义在配置文件中 仅对当前用户:~/.bashrc 对所有用户有效:/etc/bashrc 编辑配置给出的新配置不会立即生效,bash进程重新读取配置文件

用户登录信息查看命令
whoami: 显示当前登录有效用户
who: 系统当前所有的登录会话
w: 系统当前所有的登录会话及所做的操作

tab 键补全

tab 键可以实现命令及路径等补全,提高输入效率,避免出错
内部命令: 外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文 件,第一次找到的命令即为要执行的命令 命令的子命令补全,需要安装 bash-completion 注意:用户给定的字符串只有一条惟一对应的命令,直接补全,否则,再次Tab会给出列表 范例:

[root@centos8 ~]#nmcli connection 2TAB
add     delete   edit     help     load     monitor show
clone   down     export   import   modify   reload   up

路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名 如果惟一:则直接补全 否则:再次Tab给出列表

双击Tab键

  • command 2Tab 所有子命令或文件补全
  • string2Tab 以string开头命令
  • /2Tab 显示所有根目录下一级目录,包括隐藏目录
  • ./2Tab 当前目录下子目录,包括隐藏目录
  • *2Tab 当前目录下子目录,不包括隐藏目录
  • ~2Tab 所有用户列表
  • $2Tab 所有变量
  • @2Tab /etc/hosts记录 (centos7 不支持)
  • =2Tab 相当于ls –A (centos7不支持)

bash的快捷键

 Ctrl + l 清屏,相当于clear命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕输出,解锁
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Ctrl + xx 光标在命令行首和光标之间移动
ctrl+ > 光标向右移动一个单词尾,相当于 Alt + f
ctrl+ <     光标向左移动一个单词首,相当于 Alt + b
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r     删除当前整行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Alt + Backspace 删除左边单词
Ctrl + d 删除光标处的一个字符
Ctrl + h 删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + # 提示输入指定字符后,重复显示该字符#次

注意:Alt 组合快捷键经常和其它软件冲突 范例:xshell中启动 alt 键

查看命令的帮助

whatis

whatis 使用数据库来显示命令的简短描述 此工具在系统刚安装后,不可立即使用,需要制作数据库后才可使用 执行下面命令生成数据库

#CentOS 7 版本以后
mandb
#CentOS 6 版本之前
makewhatis

范例:

[root@centos8 ~]#whatis cal
cal (1)              - display a calendar
cal (1p)             - print a calendar
[root@centos8 ~]#man -f cal
cal (1)              - display a calendar
cal (1p)             - print a calendar

范例:

[root@centos8 ~]#whatis ls
ls: nothing appropriate.
#生成man相关数据库
[root@centos8 ~]#mandb
Processing manual pages under /usr/share/man...
Updating index cache for path `/usr/share/man/mann'. Wait...done.
Checking for stray cats under /usr/share/man...
...省略...
0 old database entries were purged.
[root@centos8 ~]#whatis ls
ls (1)               - list directory contents

内部命令查看帮助 help

  • help COMMAND
  • man bash
[root@centos8 ~]#type history
history is a shell builtin
[root@centos8 ~]#help history
history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps
arg [arg...]
   Display or manipulate the history list.
   Display the history list with line numbers, prefixing each modified
   entry with a `*'. An argument of N lists only the last N entries.

将交互式的操作变成非交互操作

echo -e “\a” 报警

完成后报警 sleep 3;echo -e “\a” ; 允许多个命令放在一行

将交互式的操作变成非交互操作(自动化执行),可以提高执行效率

命令行历史

命令:history

-c: 清空命令历史
-d offset: 删除历史中指定的第offset个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后

命令历史相关环境变量

HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T `whoami` "   显示时间和用户
HISTIGNORE="str1:str2*:…" 忽略str1命令str2开头的历史
HISTCONTROL:控制命令历史的记录方式
 ignoredups 是默认值,可忽略重复的命令,连续且相同为“重复”
 ignorespace 忽略所有以空白开头的命令
 ignoreboth   相当于ignoredups, ignorespace的组合
 erasedups   删除重复命令

持久保存变量

以上变量可以 export 变量名=“值” 形式存放在 /etc/profile 或 ~/.bash_profile
范例:

[root@centos8 ~]#cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export HISTCONTROL=ignoreboth
export HISTTIMEFORMAT="%F %T "
[root@centos8 ~]#history
1 2019-12-13 08:39:05 ls /data
2 2019-12-13 08:39:05 date
3 2019-12-13 08:39:05 vie0
4 2019-12-13 08:39:05 nano .bash_profile
5 2019-12-13 08:39:05 exit

调用命令行历史

#重复前一个命令方法
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行
输入!-1 并回车执行
按 Ctrl+p 并回车执行
!:0 执行前一条命令(去除参数)
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!$:p 打印输出 !$ (上一条命令的最后一个参数)的内容
!*:p 打印输出 !*(上一条命令的所有参数)的内容
^string 删除上一条命令中的第一个string
^string1^string2 将上一条命令中的第一个string1替换为string2
!:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
使用up(向上)和down(向下)键来上下浏览从前输入的命令
ctrl-r来在命令历史中搜索命令
(reverse-i-search)`’:
Ctrl+g:从历史搜索模式退出
#要重新调用前一个命令中最后一个参数
!$ 表示前一个命令中最后一个参数
Esc, . 点击Esc键后松开,然后点击 . 键
Alt+ . 按住Alt键的同时点击 . 键
command !^ 利用上一个命令的第一个参数做command的参数
command !$ 利用上一个命令的最后一个参数做command的参数
command !* 利用上一个命令的全部参数做command的参数
command !:n 利用上一个命令的第n个参数做command的参数
command !n:^ 调用第n条命令的第一个参数
command !n:$ 调用第n条命令的最后一个参数
command !n:m 调用第n条命令的第m个参数
command !n:* 调用第n条命令的所有参数
command !string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
command !string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
command !string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
command !string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数

外部命令及软件帮助

  • COMMAND –help 或 COMMAND -h
  • 使用 man 手册(manual): man COMMAND
  • 信息页:info COMMAND
  • 程序自身的帮助文档:README、INSTALL、ChangeLog
  • 程序官方文档
  • 相关网站,如:技术论坛
  • 搜索引擎

显示用法总结和参数列表,大多数命令使用,但并非所有的 范例:

[root@centos8 ~]#date --help
Usage: date [OPTION]... [+FORMAT]
 or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.
[root@centos8 ~]#cal -h
Usage:
 cal [options] [[[day] month] year]
 cal [options] <timestamp|monthname>
[root@centos8 ~]#strace --help
strace: invalid option -- '-'
Try 'strace -h' for more information.
[root@centos8 ~]#openssl --help
Invalid command '--help'; type "help" for a list.
[root@centos8 ~]#date -h
date: invalid option -- 'h'
Try 'date --help' for more information.
[root@centos8 ~]#shutdown -h
Shutdown scheduled for Fri 2020-03-20 08:26:27 CST, use 'shutdown -c' to cancel.

格式说明:

  • [] 表示可选项
  • CAPS或 <> 表示变化的数据
  • … 表示一个列表
  • x |y| z 的意思是“ x 或 y 或 z ”
  • -abc的 意思是 -a -b –c
  • { } 表示分组

练习: 1、显示当前时间,格式:2016-06-18 10:20:30
date +’%F %T'

2、显示前天是星期几
date -d ‘-2 day’+’%F %T’

3、设置当前日期为2019-08-07 06:05:10

man 帮助

man 命令

man 提供命令帮助的文件,手册页存放在/usr/share/man 几乎每个命令都有man的“页面” man 帮助

中文man需安装包
man-pages
man-pages-zh-CN
man 页面分组
不同类型的帮助称为不同的“章节”,统称为Linux手册,man 1 man
1:用户命令
2:系统调用
3:C库调用
4:设备文件及特殊文件
5:配置文件格式
6:游戏
7:杂项
8:管理类的命令
9:Linux 内核API
man 命令的配置文件:
格式:
也可以指定位置下搜索COMMAND命令的手册页并显示
https://man7.org/linux/man-pages/index.html
https://man7.org/linux/man-pages/dir_all_alphabetic.html
#CentOS 6 之前版 man 的配置文件
/etc/man.config
#CentOS 7 之后版 man 的配置文件
/etc/man_db.conf
#ubuntu man 的配置文件
/etc/manpath.config
MANPATH /PATH/TO/SOMEWHERE   #指明man文件搜索位置
查看man手册页
man 帮助段落说明
NAME 名称及简要说明
SYNOPSIS 用法格式说明
[] 可选内容
<> 必选内容
a|b 二选一
{ } 分组
... 同一内容可出现多次
DESCRIPTION 详细说明
OPTIONS 选项说明
EXAMPLES 示例
FILES 相关文件
AUTHOR 作者
COPYRIGHT 版本信息
REPORTING BUGS bug信息
SEE ALSO 其它帮助参考
man命令的操作方法:使用less命令实现
space, ^v, ^f, ^F: 向文件尾翻屏
b, ^b: 向文件首部翻屏
d, ^d: 向文件尾部翻半屏
u, ^u: 向文件首部翻半屏
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行
y or ^Y or ^P or k or ^K:向文件首部翻一行
q: 退出
#:跳转至第#行
1G: 回到文件首部
G:翻至文件尾部
/KEYWORD
以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写
 n:下一个
 N:上一个
?KEYWORD
以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写
 n:跟搜索命令同方向,下一个
 N:跟搜索命令反方向,上一个
常用选项
列出所有帮助
man -a keyword
#列出所有匹配的页面,使用 whatis 数据库
man -k keyword
man -f keyword
man -w [章节] keyword

红帽全球技术支持服务

rhn.redhat.com或者本地卫星服务器/代理服务器 RHN账户为及其注册和基于网络管理的RHN用户 sosreport 收集所有系统上的日志信息的工具,并自动打成压缩包,方便技术支持人员和红帽全球支持 提供分析问题依据

相关网站和搜索

只显示Pdf

Openstack filetype:pdf
rhca site:redhat.com/docs

搜索技巧 https://zhuanlan.zhihu.com/p/41997799