Linux常用命令

mac2024-12-13  29

常用命令 一 echo命令 echo -显示一行文本

参数: -n 不输出行尾的换行符 -e 允许对反斜杠转义的字符解释 -E 禁用反斜杠转义字符进行解释 (属于默认) -e 参数下 可以识别以下`在这里插入代码片` \\ 反斜杠 \a 报警符(BEL) \b 退格 \c 不换行输出 \e escape \f 换页符 \n 新行 \r 回车 \t 水平制表符 \v 垂直制表符

例子 1显示普通字符 双引号可以省略,例如 和上面意思一致。 2显示转义字符 \ 如下两种方式都可以

3 标准输入中读取一行,并把输入行的的值指定给 shell的变量 例子: 4,原样输出字符串,不进行转义或取变量(用单引号) 5,显示命令执行结果 反引号 ``

6, -e 参数下针对这些序列的区别

二 screen

是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。 Linux系统可能有些默认没有安装此软件 所以 ,yum install screen -y 安装下

功能 会话恢复

只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。 多窗口 在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。 会话共享 Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。 ```bash GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。 SYNOPSIS screen [ -options ] [ cmd [ args ] ] screen -r [[pid.]tty[.host]] screen -r sessionowner/[[pid.]tty[.host]] 参数 -a 包含全部功能 -A 调整所有窗口的大小为当前终端机大小 -c file 将默认配置文件从“$home/.screenrc” 写入到其他文件,进行替代。 -d|-D [pid.tty.host] 断开screen进程(使用该命令时,screen的状态一定要是Attached,也就是说有用户连在screen里)。一般进程的名字是以pid.tty.host这种形式表示(用screen -list命令可以看出状态)。 h <行数>   指定视窗的缓冲区行数。 -ls或–list 显示目前所有的screen作业。 -m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。 -p number or name 预先选择一个窗口。 -r [pid.tty.host] 恢复离线的screen进程,如果有多个断开的进程,需要指定[pid.tty.host] -R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。 -s shell 指定建立新视窗时,所要执行的shell。 -S <作业名称> 指定screen作业的名称。(用来替代[pid.tty.host]的命名方式,可以简化操作). -v 显示版本信息。 -wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。 -x 恢复之前离线的screen作业。 四、常用screen参数 screen -S yourname -> 新建一个叫yourname的session screen -ls -> 列出当前所有的session screen -r yourname -> 回到yourname这个session screen -d yourname -> 远程detach某个session screen -d -r yourname -> 结束当前session并回到yourname这个session

实例 1 创建一个新的窗口

安装完成后,直接敲命令screen就可以启动它。但是这样启动的screen会话没有名字,实践上推荐为每个screen会话取一个名字,例子,方便你区分

screen -S 名字

例子: [root@TS-DEV ~]# screen -S a screen启动后,会创建第一个窗口,也就是窗口No. 0,敲入命令screen之后,会立刻又返回到命令提示符,仿佛什么也没有发生似的,其实你已经进入Screen的世界了。当然,也可以在screen命令之后加入你喜欢的参数,使之直接打开你指定的程序,例如:

# screen vi a.txt* screen创建一个执行vi a.txt的单窗口会话,退出vi 将退出该窗口/会话。 2 查看窗口和窗口名称

打开多个窗口, 可以使用快捷键Ctrl -a w列出当前所有窗口。 如果使用文本终端,这个列表会列在屏幕左下角, 如果使用X环境下的终端模拟器,这个列表会列在标题栏里。 窗口列表的样子一般是这样:

**0$ bash 1-$ bash 2*$ bash**

这个例子中我开启了三个窗口,其中*号表示当前位于窗口2,-号表示上一次切换窗口时位于窗口1。

Screen默认会为窗口命名为编号和窗口中运行程序名的组合,上面的例子中窗口都是默认名字 。练习了上面查看窗口的方法,你可能就希望各个窗口可以有不同的名字以方便区分了。 可以使用快捷键C-a A来为当前窗口重命名,按下快捷键后,Screen会允许你为当前窗口输入新的名字,回车确认。

3 会话分离与恢复

你可以不中断screen窗口中程序的运行而暂时断开(detach)screen会话,并在随后时间重新连接(attach)该会话,重新控制各窗口中运行的程序。

例子: 使用 screen vi c.txt 之后,此会话想要保留,过一会再进行修改 那么在screen窗口执行Ctrl a d 命令,会退出当前screen 过一会,你需要再次使用此screen 那么 先通过screen -ls 获取当前screen的进程号 然后 screen -r 进程号

如图所示:

当然,如果你在另一台机器上没有分离一个Screen会话,就无从恢复会话了。

这时可以使用下面命令强制将这个会话从它所在的终端分离,转移到新的终端上来:

4 清除dead 会话

screen -list会显示该会话为dead状态。 使用screen -wipe命令清除该会话:

5. 关闭或杀死窗口

正常情况下,当你退出一个窗口中最后一个程序(通常是bash)后,这个窗口就关闭了。 另一个关闭窗口的方法是使用Ctrl a k,这个快捷键杀死当前的窗口,同时也将杀死这个窗口中正在运行的进程。

如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。

除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键Ctrl -a :,然后输入quit命令退出Screen会话。需要注意的是,这样退出会杀死所有窗口并退出其中运行的所有程序。

6 发送命令到screen会话

在Screen会话之外,可以通过screen命令操作一个Screen会话,这也为使用Screen作为脚本程序增加了便利。 # screen -S a -X screen ping www.baidu.com

这个命令在一个叫做a的screen会话中创建一个新窗口,并在其中运行ping命令。

三 date date命令可以用来显示或设定系统的日期与时间

参数

-d, --date=STRING 按字符串描述的显示时间,而不是“现在” -f, --file=DATEFILE like --date once for each line of DATEFILE -I[TIMESPEC], --iso-8601[=TIMESPEC] 以ISO 8601格式输出日期/时间timespec='date'仅用于日期(默认值),“小时”、“分钟”、“秒”或“ns”表示日期和时间,精确到指定的精度。 -r, --reference=FILE 显示文件的最后修改时间 -R, --rfc-2822 以RFC 2822格式输出日期和时间。示例: Mon, 07 Aug 2006 12:34:56 -0600 -s, --set=STRING 按字符串描述的设置时间 -u, --utc, --universal 打印或设置协调世界时间(UTC) 显示列表如下: 时间方面参数: %n : 下一行 %t : 跳格 %H : 小时(00..23) %I : 小时(01..12) %k : 小时(0..23) %l : 小时(1..12) %M : 分钟(00..59) %p : 显示本地 AM 或 PM %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M) %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S :(00..61) %T : 直接显示时间 (24 小时制) %X : 相当于 %H:%M:%S %Z : 显示时区 日期方面: %a : 星期几 (Sun..Sat) %A : 星期几 (Sunday..Saturday) %b : 月份 (Jan..Dec) %B : 月份 (January..December) %c : 直接显示日期与时间 %d :(01..31) %D : 直接显示日期 (mm/dd/yy) %h : 同 %b %j : 一年中的第几天 (001..366) %m : 月份 (01..12) %U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形) %w : 一周中的第几天 (0..6) %W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形) %x : 直接显示日期 (mm/dd/yy) %y : 年份的最后两位数字 (00.99) %Y : 完整年份 (0000..9999)

是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。

使用权限:所有使用者。

不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date ‘+%-H:%-M:%-S’ 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。

以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

例子:

1 显示当前时间 2, 显示自定义日期

3,

3.1.通过date显示昨天的日期

date -d ‘yesterday’

3.2.查看3天之后的日期

date -d ‘+3 days’ ‘+%Y-%m-%d %H:%M:%S’

3.3.查看3天之前的日期 date -d ‘-3 days’ ‘+%Y-%m-%d %H:%M:%S’

四 时钟 clock 用于调整 RTC 时间。 RTC 是电脑内建的硬件时间,执行这项指令可以显示现在时刻,调整硬件时钟的时间,将系统时间设成与硬件时钟之时间一致

参数说明: --adjust  第一次使用"--set""--systohc"参数设置硬件时钟,会在/etc目录下产生一个名称为adjtime的文件。当再次使用这两个参数调整硬件时钟,此文件便会记录两次调整间之差异,日后执行clock指令加上"--adjust"参数时,程序会自动根 据记录文件的数值差异,计算出平均值,自动调整硬件时钟的时间。 --debug  详细显示指令执行过程,便于排错或了解程序执行的情形。 --hctosys  Hardware Clock to System Time,把系统时间设成和硬件时钟一致。由于这个动作将会造成系统全面更新文件的存取时间,所以最好在系统启动时就执行它。 --set--date  设置硬件时钟的日期和时间。 --setepoch--epoch=<年份>  设置系统核心之硬件时钟的新时代数值,年份以四位树字表示。 --show  读取硬件时钟的时间,并将其呈现至标准输出设备。 --systohc  System Time to Hardware Clock,将系统时间存回硬件时钟内。 --test  仅作测试,并不真的将时间写入硬件时钟或系统时间。 --utc  把硬件时钟上的时间时为CUT,有时也称为UTC或UCT。 --version  显示版本信息。

例子 #获取当前时间

#显示UTC时间

五 ifconfig

ifconfig命令用于显示或设置网络设备。

ifconfig可设置网络设备的状态,或是显示目前的设置。

默认没有安装的话 通过 yum search ifconfig

然后, yum install net-tools -y

之后 安装成功。

参数说明: add<地址> 设置网络设备IPv6的IP地址。 del<地址> 删除网络设备IPv6的IP地址。 down 关闭指定的网络设备。 <hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。 io_addr<I/O地址> 设置网络设备的I/O地址。 irq<IRQ地址> 设置网络设备的IRQ。 media<网络媒介类型> 设置网络设备的媒介类型。 mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。 metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。 mtu<字节> 设置网络设备的MTU。 netmask<子网掩码> 设置网络设备的子网掩码。 tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。 up 启动指定的网络设备。 -broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。 -pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。 -promisc 关闭或启动指定网络设备的promiscuous模式。 [IP地址] 指定网络设备的IP地址。 [网络设备] 指定网络设备的名称

例子: 显示网络设备信息

# ifconfig

#网络接口关闭和启动 # ifconfig eth0 down # ifconfig eth0 up

//给eth0网卡配置IP地址 # ifconfig eth0 192.168.1.56 netmask 255.255.255.0 // 给eth0网卡配置IP地址,并加上子掩码

# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255 // 给eth0网卡配置IP地址,加上子掩码,加上个广播地址

五 export

命令用于设置或显示环境变量。

在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。

1, 执行 export 会输出什么内容 export 输出的内容就是 bash 的所有环境变量了

****export/env/set/declare 的区别:**** env:显示当前用户的环境变量,但不会显示其自定义变量。 export:功能同 env 一样,也是显示当前用户的环境变量,只不过该命令的输出是按变量名进行排序的。 declare:显示当前 Shell 中定义的所有变量,包括用户的环境变量和自定义变量,该命令的输出按变量名进行排序。 set:功能同 declare 一样,显示当前 Shell 中定义的所有变量,包括用户的环境变量和自定义变量。

所以: env 和 export 显示的是环境变量。 set 和 declare 显示的是环境变量和自定义变量。

语法 export [-fnp][变量名称]=[变量设置值] 参数说明: -f  代表[变量名称]中为函数名称。 -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 -p  列出所有的shell赋予程序的环境变量。

例子: #export PATH=$PATH:/usr/local/src/bin

最新回复(0)