从零开始的Linux学习日志

从零开始的Linux学习生活

作为一个电子科学与技术专业的大四应届生,本科实在太难没法找工作,想着靠着之前一点编程底子去应聘个程序员,结果面试的时候被问的一脸茫然。痛定思痛决定从零开始补全作为一名程序员的基本素养,总之就从面试里频繁问到的Linux开始吧!

搭建环境

因为之前有过嵌入式的开发经验,所以轻车熟路的安装了VMware Workstation Pro。学习参考的书籍是刘老师的《Linux就应该这么学》,所以安装了RHEL7系统。(昨天刚安装了RHEL今天就在新闻里看到红帽被IBM收购的消息,也是种缘分吧)

常见的Linux指令

1. echo

echo指令用于在shell中打印变量的值或直接输出字符串。

  • 语法

echo (选项) (参数)

  • 选项

-e :激活转义符

当使用-e时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出。
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
此外还可以设置打印的文字颜色,背景色,文字闪动等效果

2.date

date指令用于显示或设置系统的时间

  • 语法

date (选项) (参数)

  • 选项

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
–help:在线帮助;
–version:显示版本信息。

注:命令参数有长格式与短格式,分别以–和-为前缀,比如man --helpman -h相同

  • 参数

<+时间日期格式>

  • 时间日期格式字符串列表

%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)

  • 举例

按默认格式输出时间

[root@RHEL Desktop]# date
Tue Oct 30 22:18:05 CST 2018

按指定格式输出

[root@RHEL Desktop]# date +"%Y-%m-%d"
2018-10-30

输出昨天的日期

[root@RHEL Desktop]# date -d “1 day ago” +"%Y-%m-%d"
2018-10-29

3.reboot和poweroff

分别为重启与关闭电源指令,因为涉及硬件资源的管理权限,所以只能在root身份下使用
两者具有类似的命令选项
reboot的命令选项

-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;
-f:强制重新开机,不调用shutdown指令的功能;
-i:在重开机之前,先关闭所有网络界面;
-n:重开机之前不检查是否有未结束的程序;
-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。

poweroff的命令选项

-n:关闭操作系统时不执行sync操作;
-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;
-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;
-f:强制关闭操作系统;
-i:关闭操作系统之前关闭所有的网络接口;
-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。

4.其他重要指令

这篇blog写到这里突然又有了新的感悟。其实最初想写这篇文章是因为自己之前学习的太过囫囵,学到后面发现用到的指令都不记得是什么作用。但通过重新仔细学习前面三条指令之后,又意识到其实指令的本质就是

命令名称 [命令选项] [命令参数]

试图一口气将所有命令的选项参数都记住显然是不现实的,因为我查了一下发现有些命令的选项参数比我想象中还要多很多,比如wget命令,它是用来从指定的URL中下载文件,而它的选项根据不同需求有十来种。所以正确的学习方法,应该是先记住各个指令的基本功能,知道有这么个东西,然后在将来的学习工作中遇到之后再去查询具体的使用方法。
除了前面的几条指令之外,还有以下这些比较重要的指令:
ps [选项]用于查看系统的进程状态。
top [选项]用于动态的查看系统进程状态,类似于Windows系统中的任务管理器。
pidof [选项] [参数]用于查看指定服务进程的PID值(进程号码值)。
kill [选项] [参数]用于结束某指定PID的服务进程。
killall [选项] [参数]用于结束指定名称的服务所对应的所有进程。
ifconfig [参数]用于配置和显示Linux内核中网络接口的网络参数(类似于Windows中的ipconfig)。
uname [选项]用于显示当前系统内核与系统版本等的相关信息。
uptime [选项]用于显示系统运行时间与系统负载信息。
free [选项] 可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。一般使用命令选项-h优化显示。
who [选项] [参数]用于显示目前登陆系统的用户信息。一般使用命令选项-H优化显示。
last [选项] [参数]用于显示系统用户的登陆信息。
history [选项] [参数]用于显示历史执行过的命令。
sosreport用于收集系统配置及架构信息并输出诊断文档,格式为sosreport。该命令在RHEL源中已经集成有了所以可以直接使用,部分Linux系统需要从yum中安装之后才能使用。
pwd [选项]用于显示用户当前所处的工作目录。
cd [选项] [参数]用于进入指定的工作目录。~表示用户主目录.表示当前目录表示当前目录位置的上一层目录
ls [选项] [参数]显示目录中的文件信息。
cat [选项] [参数]用于显示纯文本文件。一般用于内容较少的文件。
more [选项] [参数]同样用于显示纯文本文件,一般用于内容较多的文件,可翻页查看文件内容。
head [选项] [参数]用于显示文件的前N行。
tail [选项] [参数]用于显示文件的后N行或持续刷新内容。查看持续刷新内容的命令选项为-f
tr [选项] [参数]用于对文本中的字符进行替换、压缩和删除。
wc [选项] [参数]用于显示文件的行数、字数、字节数等。
stat [选项] [参数]用于显示文件的状态信息。比ls显示的更加详细。
cut [选项] [参数]用于显示行中的指定部分,删除文件中指定字段。cut经常用来显示文件的内容。
diff [选项] [参数]在最简单的情况下,比较给定的两个文件的不同。如果使用-代替文件参数,则要比较的内容将来自标准输入。diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。
touch [选项] [参数]用于创建空白文件或设置文件的时间。
mkdir [选项] [参数]用于创建目录。
cp [选项] [参数]用于复制文件或目录,参数为源文件 目标文件
mv [选项] [参数]用于剪切文件或重命名。
rm [选项] [参数]用于删除文件或目录。
dd [选项] [参数]用于按照指定大小和个数的数据块来复制文件或转换文件。
file [选项] [参数]用于测定给定文件的类型。
tar [选项] [参数]用于为Linux的文件和目录创建档案。利用该命令可以将一大堆文件打包为一个文件。打包与压缩为两个不同的概念,前者为将一堆文件打包为一个文件,后者为通过压缩算法将一个大文件变为小文件。
grep [选项] [参数]用于在文本中搜索执行关键词搜索。
find [选项] [参数]用于按照指定条件来查找文件。

小结

写到这里之后想法很多,首先开始担心自己写这么多是不是其实还是无用功,但终究还是相信自己的努力不会白费,通过回顾今天学的这些命令的功能以及使用方式,理解了命令的结构其实就是名称 + 选项 + 参数,万变不离其宗,只要掌握了几个常用的命令的功能,在今后学习工作中遇到了就可以用man 命令来查询具体的选项和参数。
另外还是要感谢刘遄老师无私分享的免费的RHEL系统的教程,感谢他我才能开始这样零基础的学习Linux。

参考资料来源:
《Linux就该这么学》https://www.linuxprobe.com/
Linux命令大选(手册)http://man.linuxde.net/

猜你喜欢

转载自blog.csdn.net/qq_36437577/article/details/83581011