Linux命令行操作基础练习

linux是支持多国语言的,terminal在默认的情况下,无法支持以中文编码输出数据的.这个时候,我们就得将支持语系改为英文,才能以英文显示出正确的讯息

1,显示目前所支持的语系

[dmtsai@study ~]$ locale
LANG=zh_TW.utf8 # 语言语系的输出
LC_CTYPE="zh_TW.utf8" # 下面为许多信息的输出使用的特别语系
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8 # 时间方面的语系数据
LC_COLLATE="zh_TW.utf8"

LC_ALL=    # 全部的数据同步更新的设置值

2,修改语系为英文语系

$ LANG=en_US.utf-8
$ export LC_ALL=en_US.utf-8
# LANG 只与输出讯息有关,若需要更改其他不同的信息,要同步更新 LC_ALL才行

 

显示日期与时间的指令: date

显示日历的指令: cal

简单好用的计算机: bc

[dmtsai@study ~]$ date
Fri May 29 14:32:01 CST 2015

date的格式化输出

$ date +%Y/%m/%d
2018/07/08
$ date +%H:%M
18:14

 

显示日历的指令: cal

[dmtsai@study ~]$ cal
May 2015
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

 

cal 2015 会显示正年的日历

cal [month] [year] 查看某年某月的月历

 

计算机: bc

[dmtsai@study ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
_ <==这个时候,光标会停留在这里等待你的输入
[dmtsai@study ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 1+2+3+4 <==只有加法时
107-8+3
210*52
520 10%3 <==计算“余数”
110^2
100 10/100 <==这个最奇怪!不是应该是 0.1 吗?
0quit <==离开 bc 这个计算器
计算机

bc默认仅输出整数,如果要输出小数点下位数,那么就必须要执行scale=number,那个number就是小数点的位数

scale=3 <==没错!就是这里!!
1/3
.333 340/2349
.144 quit

 

几个重要的热键[Tab], [ctrl]-c, [ctrl] - d

[Tab]: 命令补全功能与文件补齐,双击[Tab]会显示可以操作的命令

在这一版的 CentOS 7.x 当中,由于多了一个名为 bash_completion 的软件,这个软件会主动的去侦测“各个指令可以下达的选项与参
数”等行为, 因此,那个“文件补齐”的功能可能会变成“选项、参数补齐”的功能,不一定会主动补齐文件名了喔
View Code

[ctrl]-c: 终止正在执行的命令

[ctrl]-d: 离开命令,代替exit

[shift]+{[pageup]|[pagedown]} : 翻页

 

Linux系统的线上求助man page与info page

 

指令的 --help求助说明

[dmtsai@study ~]# 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.
# 下面是主要的选项说明
Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING display time described by STRING, not 'now'
-f, --file=DATEFILE like --date once for each line of DATEFILE
....(中间省略).... -u, --utc, --universal print or set Coordinated Universal Time (UTC)
--help 显示此求助说明并离开
--version 显示版本信息并离开
# 下面则是重要的格式 (FORMAT) 的主要项目
FORMAT controls the output. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
....(中间省略)....
# 下面是几个重要的范例 (Example)
Examples:
Convert seconds since the epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'
....(下面省略)....
--help

man page

[dmtsai@study ~]$ LANG="en_US.utf8"
# 还记得这个咚咚的用意吧?前面提过了,是为了“语系”的需要啊!下达过一次即可!
[dmtsai@study ~]$ man date
DATE(1) User Commands DATE(1# 请注意上面这个括号内的数字
NAME <==这个指令的完整全名,如下所示为date且说明简单用途为设置与显示日期/时间
date - print or set the system date and time
SYNOPSIS <==这个指令的基本语法如下所示
date [OPTION]... [+FORMAT] <==第一种单纯显示的用法
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] <==这种可以设置系统时间的用法
DESCRIPTION <==详细说明刚刚语法谈到的选项与参数的用法
Display the current time in the given FORMAT, or set the system date.
Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING <==左边-d为短选项名称,右边--date为完整选项名称
display time described by STRING, not 'now'
-f, --file=DATEFILE
like --date once for each line of DATEFILE
-I[TIMESPEC], --iso-8601[=TIMESPEC]
output date/time in ISO 8601 format. TIMESPEC='date' for date only (the
default), 'hours', 'minutes', 'seconds', or 'ns' for date and time to the
indicated precision.
....(中间省略)....
# 找到了!下面就是格式化输出的详细数据!
FORMAT controls the output. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
....(中间省略)....
ENVIRONMENT <==与这个指令相关的环境参数有如下的说明
TZ Specifies the timezone, unless overridden by command line parameters.
If neither is specified, the setting from /etc/localtime is used.
EXAMPLES <==一堆可用的范本
Convert seconds since the epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'
....(中间省略)....
DATE STRING <==上面曾提到的 --date 的格式说明!
The --date=STRING is a mostly free format human readable date string such as "Sun, 29
Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thursday". A date
string may contain items indicating calendar date, time of day, time zone, day of
AUTHOR <==这个指令的作者啦!
Written by David MacKenzie.
COPYRIGHT <==受到著作权法的保护!用的就是 GPL 了!
Copyright © 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or
later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WAR‐
RANTY, to the extent permitted by law.
SEE ALSO <==这个重要,你还可以从哪里查到与date相关的说明文档之意
The full documentation for date is maintained as a Texinfo manual. If the info and
date programs are properly installed at your site, the command
info coreutils 'date invocation'
should give you access to the complete manual.
GNU coreutils 8.22 June 2014 DATE(1)
man page

 

代号的不同含义

 

代号 代表内容
1* 使用者在shell环境中可以操作的指令或可可执行文件
2 系统核心可调用的函数与工具等
3 一些常用的函数(function)与函数库(library),大部分为c的函数库(libc)
4 设备文件的说明
5* 配置文件或者是某些文件的格式
6 游戏
7 惯例与协定等,例如Linux文件系统,网络协定,asciicode等等说明
8* 系统管理员可用的管理指令
9 跟kernel有关的文件

 

 

 

 

 

 

 

 

 

NAME : 简短的指令,数据名称说明

SYNOPSIS : 简短的指令下达语法(syntax)简介

DESCRIPTION : 较为完整的说明,这部分最好仔细看看

OPTIONS : 针对SYNOPSIS部分中,有例举的所有可用的选项说明

COMMANDS : 当这个程序(软件)在执行的时候,可以再次程序(软件)中下达命令

FILFES : 这个程序或数据所是用或参数或连接到的某个文件

SEE ALSO : 可以参考的,跟这个指令或数据有相关的其他说明

EXAMPLE : 一些可以参考的范例
date的说明

输入/可以开始输入搜索字串

 

按键 进行工作
空白键 向下翻一页
[pgDn] 一行一行的
[pgUp] 同上
[Home] 第一页
[end] 最后一页
/string 向下搜寻string这个字符串
?string 向上搜索string这个字符串
n,N 继续下一个或者反向查询
q 退出page

 

 

 

 

 

 

 

 

 

 

搜索特定指令/文件的manpage说明文档

man -f man

获取更多的man相关的信息

man -k man

获取有man这个关键字的所有

其他有用的文件(document)

目录: /usr/share/doc

数据同步写入磁盘: sync

su - 切换用户

shutdown 关机的一些参数

[root@study ~]# /sbin/shutdown [-krhc] [时间] [警告讯息] 选项与参数:
-k : 不要真的关机,只是发送警告讯息出去!
-r : 在将系统的服务停掉之后就重新开机(常用)
-h : 将系统的服务停掉后,立即关机。 (常用)
-c : 取消已经在进行的 shutdown 指令内容。
时间 : 指定系统关机的时间!时间的范例下面会说明。若没有这个项目,则默认 1 分钟后自动进行。
shutdown参数
[root@study ~]# shutdown -h now 立刻关机,其中 now 相当于时间为 0 的状态
[root@study ~]# shutdown -h 20:25 系统在今天的 20:25 分会关机,若在21:25才下达此指令,则隔天才关机
[root@study ~]# shutdown -h +10 系统再过十分钟后自动关机
[root@study ~]# shutdown -r now 系统立刻重新开机
[root@study ~]# shutdown -r +30 'The system will reboot' 再过三十分钟系统会重新开机,并显示后面的讯息给所有在线上的使用者
[root@study ~]# shutdown -k now 'This system will reboot' 仅发出警告信件的参数!系统并不会关机啦!吓唬人!
实例

重新开机,关机: reboot,halt,poweroff

上面的halt,poweroff,reboot,shutdown等都是调用这个systemctl指令

systemctl [指令]

halt : 进入系统停止的模式,屏幕可能会保留一些讯息

poweroff : 进入系统关机模式.直接关机没有提供电力

reboot : 直接重新开机

suspend : 进入休眠模式

 

 wget命令

wget命令用于在终端中下载网络文件,格式为“wget [参数] 下载地址”。

如果您没有Linux系统的管理经验,当前只需了解一下wget命令的参数以及作用,然后看一下下面的演示实验即可,切记不要急于求成。后面章节将逐步讲解Linux系统的配置管理方法,可以等您掌握了网卡的配置方法后再来进行这个实验操作。表2-5所示为wget命令的参数以及参数的作用。

Linux的文件权限与目录配置

-b        后台下载
-p        下载到指定目录
-t         最大的尝试次数
-c        断电续传
-P        下载页面内所有资源,包括图片,视频等
-r        递归下载

  

 ps命令

查看系统中的进程状态

-a        显示所有进程
-u        用户以及其他详细信息
-x        显示没有控制终端的进程

Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在Linux系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。

R(运行):进程正在运行或在运行队列中等待。

S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该   状态。

D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。

Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。

T(停止):进程收到停止信号后停止运行。

 

top命令

动态的监视进程活动与系统负载等信息,格式为top

第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。

第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“97.1 id”意味着有97.1%的CPU处理器资源处于空闲。

第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。

第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。

 

pidof命令

查询某个指定服务进程的PID,格式为pidof [参数] [服务名称]

 

kill命令

终止某个指定PID的服务进程

killall命令

终止某个指定服务所对应的全部服务

 

系统状态检测命令

ifconfig命令

获取网卡配置与网络状态信息

 

uname命令

查看系统内核与系统版本等信息

一般与-a参数完成查看当前内核名称,主机名,内核发行版本,节点名,系统时间,硬件名称,硬件平台,处理器类型以及操作系统名称等信息

 

uptime命令

查看系统傅在信息

 

free命令

显示系统中内存的使用量信息, free -h

 

who命令

查看当前登入主机的用户终端信息

 

last命令

查看系统登陆记录

 

history命令

显示历史执行过的命令,格式为history -c

 

sosreport命令

收集系统配置及架构信息并输出诊断文档

 

工作目录切换命令

pwd命令

显示用户当前所处的工作的目录

 

cd命令

切换文件路径

 

ls命令  ls -al

查看命令

 

文本文件编辑命令

cat命令

参看纯文本文件  -n显示行数

 

more命令

查看纯文本文件,(内容较多)

 

head命令

显示纯文本文档的前N行

 

tail命令

纯文本文档的后N行或持续刷新内容

 

tr命令

替换文件中的字符  cat test | tr [原字符] [目标字符]

 

wc命令

统计指定文本的行数,字数,字节数,格式为  wc [参数] 文本

-l        只显示行数
-w       只显示单词书
-c        只显示字节数

 

start命令

查看文件存储信息和时间等信息

 

cut命令

按"列"提取文本字符,格式为 cut [参数] 文本

 

diff命令

比较多个文件的差异

 

文件目录管理命令

touch命令

创建空白文件或设置文件的时间

 

mkdir命令

创建空白的目录

 

cp命令

复制文件或目录, cp[选项] 源文件 目标文件

如果目标文件是目录,则会把源文件复制到该目录中;

如果目标文件也是普通文件,则会询问是否要覆盖它;

如果目标文件不存在,则执行正常的复制操作。

-p        保留源文件的属性
-d        若对象为链接文件,则保留该连接文件的属性
-r        递归持续复制
-i        若文件存在则询问是否覆盖
-a        相当于-pdr

 

mv命令

剪切文件或将文件重命名

 

rm命令

删除文件或目录

rm命令用于删除文件或目录,格式为“rm [选项] 文件”。

在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可在rm命令后跟上-f参数来强制删除。另外,想要删除一个目录,需要在rm命令后面一个-r参数才可以,否则删除不掉。

 

dd命令

按照指定大小和个数的数据块来复制文件或转换文件

 

file命令

查看文件类型

 

tar命令

tar命令用于打开文件进行打包压缩或解压

-c        创建压缩文件
-x        解开压缩文件
-t        查看压缩包内有哪些文件
-z        有Gzip压缩或解压
-j        用bzip2压缩或解压
-v        显示压缩或解压的过程
-f        目标文件名
-P        保留原始的权限与属性
-p        使用绝对的路径来压缩
-C        指定解压的目录

grep命令

用于关键词搜索,并显示匹配的结果

-b        将可执行文件(binary)当作文件(text)来搜索
-c        仅显示找到的行数
-i        忽略大小写
-n        显示行号
-v        反向选择-仅列出没有"关键词"的行

 

 

find命令  find [查找路径] 寻找条件 操作

按照指定条件来查找文件

-name	匹配名称
-perm	匹配权限(mode为完全匹配,-mode为包含即可)
-user	匹配所有者
-group	匹配所有组
-mtime -n +n	匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n	匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n	匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser	匹配无所有者的文件
-nogroup	匹配无所有组的文件
-newer f1 !f2	匹配比文件f1新但比f2旧的文件
--type b/d/c/p/l/f	匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size	匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune	忽略某个目录
-exec …… {}\;	后面可跟用于进一步处理搜索结果的命令(下文会有演示)
-iname 不区分大小写

 

loacte命令

locate命令要比find快得多,原因在于它不搜索,原因在于它不搜索具体目录,而是所有一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用loacte命令查不到最新变动过的文件,为了避免这种情况,可以再使用locate之前,显示用updatedb命令,手动更新数据库

locate 命令的使用实例:
    $locate /etc/sh
搜索etc目录下所有sh开头的文件
    $locate ~/m
搜索用户主目录下,所有m开头的文件
    $locate -i ~/m
搜索用户主目录下,所有以m开头的文件,并且忽略大小写.

 

whereis

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b), man说明文件(参数-m)和源文件(参数-s).如果省略参数,则返回所有信息

whereis命令的使用实例
    $whereis grep

 

which

which命令的作用是,再PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果,也就是说,使用which命令,就可以看到某个系统命令是否存在,以执行的到底是哪一个位置命令.

which命令的使用:

  $which grep

 

yum命令

yum repolist all         列出所有仓库

yum list all             列出仓库中所有的软件

yum info 软件名称          查看软件包信息

yum install 软件名称       安装软件包

yum reinstall 软件名称     重新安装软件包

yum update 软件名称         升级软件包

yum clean all              移除软件包

yum check-update           检查可更新的软件包

yum grouplist              查看系统中已经按安装的软件包组

yum groupinstall 软件包组            安装指定的软件包组

yum groupremove 软件包组            移除指定的软件包组    

yum groupinfo 软件包组             查询指定的软件包组信息

 

systemd初始化进程

RHEL 7 系统选择 systemd 初始化进程服务已经是一个既定事实,因此也没有 了“运行级别”这个概念,Linux 系统在启动时要进行大量的初始化工作,比如挂载文件系统 和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元(Unit),systemd 用目 标(target)代替了 System V init 中运行级别的概念,这两者的区别如下

systemd 与 system V init 的区别以及作用

运行级别        systemd目标名称                                      作用
0                  runleve10.target, poweroff.target              关机

1                  runlevel1.target, rescue.target               单用户模式

2                  runlevel2.target, multi-user.target           等同于级别3

3                  runlevel3.target, multi-user.target          多用户的文本界面

4                  runlevel4.target, multi-user.target            等同于等级3

5                  runlevel5.target, graphical.target           多用户的图形界面

6                  runlevel6.target, reboot.target                   重启

emergency     emergency.target                                      紧急shell
                    

修改系统默认的运行级别

  init 3

如果想将系统默认的运行目标修改为"多用户, 无图形"模式,可直接用ln命令把多用户模式目标文件连接到/etc/systemd/system/目录:

# ln -sf    /lib/systemd/system/multi-user.target    /etc/systemd/system/default.target

systemctl 管理服务的启动,重启,停止,重载,查看状态等常用命令

systemctl start foo.service    启动服务
systemctl restart foo.service    重启服务
systemctl stop foo.service    停止服务
systemctl reload foo.service    重新加载配置文件(不执行服务)
systemctl status foo.service    查看服务状态

systemctl设置服务开机启动,不启动,查看各级别下服务启动状态等常用命令

systemctl    enable    foo.service    开机自动启动

systemctl    disable    foo.service    开机不自动启动

systemctl    is-enabled foo.service    查看特定服务是否为开机自动启动

systemctl    list-unit-files --type=service    查看各个级别下服务的启动与禁用情况

  

 网络相关的命令

write  给用户发送消息  ctrl+D保存发送

wall  write all  发送所有信息

ping  -c  指定发送次数

ifconfig  interface  configure  查看当前网络

  eth0  本机的真实网卡

  lo   回环网卡

mail  查看发送的电子邮件

last  统计用户登陆时间

netstart  显示网络相关信息

  -t  tcp协议

  -u  udp协议

  -l   监听

  -r  路由(网关)

  -n  显示ip地址和端口号

  范例: 

    netstat  -tlun  查看本机监听的端口

    netstat  -an    查看本机所有的网络连接

    netstat  -rn   查看本机路由表

setup  配置网络

挂在命令

mount  mount -t  文件系统 设备文件名挂在点

    mount  -t  iso9660  /dev/sr0/mnt/cdrom

关机命令

shutdown  -r  now/可以指定时间(推荐使用)

  -c  取消前一个关机命令

  -h  关机

  -r  重启

 
 
 
posted @ 2018-12-19 20:14  拓荒牛wr  阅读(290)  评论(0编辑  收藏  举报