《Linux就该这么学(第二版)》笔记-命令

内容分享20小时前发布
0 0 0

学习教材:《Linux就该这么学(第二版)》

Linux

-Linux系统内核

-Linux发行套件系统(也就是Linux操作系统):如Redhat enterprise linux(RHEL),Centos(已被红帽收编),Fedora,openSUSE,Gentoo,Debian,Ubuntu(派生于Debian)


虚拟机:是指能够让用户在一台真机上模拟出多个操作系统的软件


常用RPM软件包命令

安装软件:rpm -ivh filename.rpm

升级软件:rpm -uvh filename.rpm

卸载软件:rpm -e filename.rpm


yum软件仓库

列出仓库中所有包: yum list all

查看软件包名字:yum info packagename

安装软件包:yum install packagename

重新安装软件包:yum reinstall packagename

升级软件包:yum update packagename

重新安装软件包:yum remove packagename

清除所有仓库缓存:yum clean all

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


用户与Linux交互

《Linux就该这么学(第二版)》笔记-命令

一般来说,计算机硬件是由运算器、控制器、存储器、输入/输出设备等共同构成的,而让各种硬件设备各司其职且又能协同运行的东西就是系统内核。

Shell:也称为终端,充当人与内核(硬件)之间的翻译官。

默认终端:Bash解释器

Bash解释器作为命令行终端的4项优势:

1. 通过上下方向键来调取过往执行的Linux命令

2.命令或参数仅需输入前几位就可以用Tab自动补全

3.具有强劲的批处理脚本

4.具有实用的环境变量功能


Linux命令

格式:命令名称 [命令参数] [命令对象]

(三者之间需要用空格键分隔,所以文件命名时用_分隔)

命令对象:一般指需要处理的文件、目录、用户等资源

命令参数:

长格式–完整的项目名称

短格式-单个字母的缩写

echo命令

echo命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”

如:

echo $PATH
/usr/local/hdf5-1.8.13/bin:/opt/cmake-3.22.0-linux-x86_64/bin#显示账号的PATH

date命令

用于显示和设置系统的时间或日期
格式:“date [选项] [+指定的格式]”
%t: Tab
%H: hour(00~23)
%T: houer(00~12)
%M: minute
%S: second
%j: 今年中的第几天

[dell@bogon ~]$ date
Wed Jan 19 16:46:27 CST 2022
[dell@bogon ~]$ date "+%Y-%m-%d %H:%M:%S"
2022-01-19 16:47:29
[dell@bogon ~]$ date -s "20220118 8:20:00"#设置当前时间
[dell@bogon ~]$ date "+%j"
019

reboot命令

重启系统

poweroff命令

关闭系统

wget命令

用于在终端中下载网络文件
格式:“wget[参数]下载地址”
-b: 后台下载
-P:下载到指定的目录
-t: 最大尝试次数
-c: 断点续传
-p: 下载页面内所有资源,包括图片,视频等
-r: 递归下载

wget -r --tries=10 http://fly.srk.fer.hr/ -o log
#The space between the option accepting an argument and the argument may be omitted.  Instead of -o log you can write -olog.
#You may put several options that do not require arguments together, like:
wget -drc <URL>
#This is completely equivalent to:
wget -d -r -c <URL>

长格式之间,长格式和短格式之间不能合并,短格式之间可以合并,合并后仅保留一个-即可。

ps命令

用于查看系统中的进程状态
格式:“ps[参数]”
-a:显示所有用户的所有进程
-u:用户及其他详细信息
-x:显示没有控制终端的进程

Linux进程:

  • R:正在运行或运行队列中等待
  • S:休眠中,当某个条件形成后或接收到信号时,则脱离该状态
  • D:不可终端
  • Z:僵死,进程已经终止,但进程描述依旧存在,知道父进程调用wait4()系统函数后进程释放
  • T: 停止

[dell@bogon ~]$ ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0 191556  4616 ?        Ss    2021   7:38 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S     2021   0:01 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<    2021   0:00 [kworker/0:0H]

ps命令可允许参数不加减号
PID:进程ID号
%CPU:运算器占用率
%MEM:内存占用率
VSZ:虚拟内存占用率(kb)
RSS:占用固定内存量
TTY:所在终端
STAT:进程状态
START:被启动的时间
TIME:实际使用CPU的时间
COMMAND:命令和参数

top命令

动态监视进程活动与系统负载等信息,相当于Windows任务管理器

pidof命令

查询指定服务进程的PID值
格式:“pidof [参数] [服务名称]”

[dell@bogon ~]$ pidof sshd
90970 90707 29286 29193 29140 29126 2192

kill命令

用于终止某个指定PID的服务进程
格式:“kill [参数] [进程PID]”

killall命令

用于终止某个指定名称的服务对应的全部进程
格式:“killall [参数] [进程PID]”

如果想执行命令后立刻停止:ctrl+c
在执行命令的末尾添加一个&符号,命令将进入系统后台执行


ifconfig命令

用于获取网卡配置与网络状态信息
格式:“ifconfig [网络设备] [参数]”

uname命令

用于查看系统内核和系统版本信息

[dell@bogon ~]$ uname -a
Linux bogon 3.10.0-1160.49.1.el7.x86_64 #1 SMP Tue Nov 30 15:51:32 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[dell@bogon ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

uptime命令

用于查看系统的负载信息

[dell@bogon ~]$ uptime
 18:41:15 up 21 days, 20:06,  2 users,  load average: 0.24, 0.28, 0.30

平均负载值是指在系统近1分钟、5分钟、15分钟内的压力情况,负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。

free命令

用于查看系统中的内存使用量信息

[dell@bogon ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           251G         27G        2.2G         66M        221G        222G
Swap:          4.0G          0B        4.0G

为了保证Linux系统不会由于资源耗尽而突然宕机,需要时刻关注内存使用量
total:内存总量
used:已用量
free:可用量
shared:进程共享的内存量
buffers:磁盘缓存的内存量
cached:缓存的内存量

who命令

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

last命令

用于查看所有系统的登录记录(容易被黑客篡改)

history命令

history:查看1000条历史命令
history -c:清空所有命令的历史记录
历史命令会被保存在用户Home目录的.bash_history文件中。

Linux系统中以(.)开头的文件均代表隐藏文件,多为系统服务文件,可以用cat查看文件内容

[dell@bogon ~]$ cat ~/.bash_history
ls

sosreport命令

用于手机系统配置即构架信息并输出诊断文档,格式为sosreport


pwd命令

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

[dell@bogon ~]$ pwd
/home/dell

cd命令

cd -:返回上一次所处的目录
cd ..:进入上级目录
cd ~:切换到当前用户的家目录
cd ~username:切换到其他用户的家目录
cd /location

ls命令

格式:“ls [选项] [文件]”
-a: 显示全部文件,包括隐藏文件
-l: 查看文件的属性等

[dell@bogon ~]$ ls -al
总用量 40
drwx------. 21 dell dell 4096 12月 31 17:01 .
drwxr-xr-x.  6 root root   76 1月  18 16:45 ..
-rw-------.  1 dell dell 3719 1月  19 19:27 .bash_history
[dell@bogon ~]$ ls -ld #查看目录的属性
drwx------. 21 dell dell 4096 12月 31 17:01 .


cat命令

用于查看纯文本文件(内容较少)
格式:“cat [选项] [文件]”
如果在查看文本的同时还向顺便显示行号,可以在cat命令后面加一个-n

[dell@bogon ropenssl_installation]$ cat -n README.md 
     1  # README
     2  
     3  ## install.except
     4  
     5  Description: install R-package openssl on a specified user

more命令

用于查看纯文本文件(内容较多)
格式:“more [选项] [文件]”
more命令会在最下面用百分比的形式来提示您已经阅读了多少内容,还可以用空格或回车向下翻页

head命令

用于查看纯文本文件前N行

tail命令

用于查看纯文本文件后N行

[dell@bogon ropenssl_installation]$ tail -n 2 README.md 
Usage: ./install.except user_name user_passwd
Example: ./install_jupyter.except tyf alex

tail命令最强悍的功能就是可以持续刷新一个文件的内容,当想要实时查看更新日志文件时,特别有用

[root@bogon ~]# tail -f /var/log/messages
Jan 19 19:38:12 bogon dbus[1651]: [system] Activating service name= org.freedesktop.problems  (using servicehelper)
Jan 19 19:38:12 bogon dbus[1651]: [system] Successfully activated service  org.freedesktop.problems 

tr命令

用于替换文本文件中的字符
格式:“tr [原始字符] [目标字符]”
如: cat filename | tr [a-z] [A-Z]
将某个文本中的英文全部替换成大写

wc命令

用于统计指定文本的行数、字数、字节数
格式:“wc [参数] 文本”
-l: 只显示行数
-w: 只显示单词数

在Linux系统中,passwd适用于保存系统账户信息的文件,要统计当前系统中有多少个用户,可以↓

[root@bogon ~]# wc -l /etc/passwd
81 /etc/passwd

stat命令

用于查看文件的具体存储信息和时间等
格式:“stat 文件名称”

[dell@bogon jupyter_scripts]$ stat install_jupyter.expect 
  File: ‘install_jupyter.expect’
  Size: 1868            Blocks: 8          IO Block: 4096   regular file
Device: fd02h/64770d    Inode: 66572254279  Links: 1
Access: (0775/-rwxrwxr-x)  Uid: ( 1002/     root)   Gid: ( 1002/     root)
Access: 2022-01-17 21:16:02.830312924 +0800
Modify: 2021-12-30 10:23:07.802087406 +0800
Change: 2021-12-30 10:23:07.802087406 +0800
 Birth: -

cut命令

用于按列提取文本字符
格式:“cut [参数] 文本”
-f: 需要看的列数,如-f1看第一列
-d: 设置分隔符

[root@bogon ~]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@bogon ~]# cut -d: -f1 /etc/passwd
root
bin

diff命令

用于比较多个文本文件的差异
格式:“diff [参数] 文本”
–brief: 确定两个文件是否不同
-c:比较多个文件的差异之处


touch命令

用于创建空白文件或者设置文件时间
格式:“touch [选项] [文件]”
touch filename: 创建一个名为filename的空白文本文件
-a: 仅修改“读取时间”(atime)
-m: 仅修改“修改时间”(mtime)
-d:同时修改atime和mtime

[dell@bogon jupyter_scripts]$ ls -l README.md 
-rw-rw-r-- 1 myh myh 588 Dec 31 12:28 README.md
[dell@bogon jupyter_scripts]$ touch -d "2022-01-19 22:00" README.md
[dell@bogon jupyter_scripts]$ ls -l README.md 
-rw-rw-r-- 1 myh myh 588 Jan 19  2022 README.md

mkdir命令

用于创建空白的目录
格式:“mkdir [选项] [目录]”
mkdir -p a/b/c/d
套娃创建了abcd文件夹

cp命令

用于复制文件或目录
格式:“cp [选项] 源文件 目标文件”
复制的三种情况

①如果目标文件是目录,则会把源文件复制到该目录中
②如果目标文件也是普通文件,则会询问是否覆盖它
③如果目标文件不存在,则执行正常的复制操作

-p: 保留原始文件的属性
-d: 若对象为“链接文件”,则保留该“链接文件”的属性
-r: 递归持续复制(用于目录)
-i: 若目标文件存在则询问是否覆盖
-a: = -pdr

[dell@bogon scripts]$ cp original.log new.log
[dell@bogon scripts]$ ls
new.log  original.log  

mv命令

用于剪切文件或将文件重命名
格式:“mv [选项] 源文件 [目标路径|目标文件名]”

rm命令

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

dd命令

用于按照指定大小和个数的数据块来复制文件或转换文件
格式:“dd [参数]”
Linux系统中有一个名为dev/zero的设备文件,由于这个文件不会占用系统存储空间,但可以提供无穷无尽的数据,因此可使用它作为dd命令的输入文件,来生成一个指定大小的文件
if: 输入的文件名称
of: 输出的文件名称
bs: 设置每个“块”的大小
count: 设置要复制“块”的个数
如要创建一个560MB的数据块:

[dell@bogon scripts]$ dd if=/dev/zero of=560_file count=1 bs=560M
1+0 records in
1+0 records out
587202560 bytes (587 MB) copied, 0.684229 s, 858 MB/s
[dell@bogon scripts]$ ls
560_file

如果想把光驱设备中的光盘制作成iso格式的镜像文件,可以用dd压制
dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso#教材范例

需求量=count X bs

file命令

用于查看文件的类型
格式:“file 文件名”


tar命令

用于对文件进行打包压缩或解压
格式:“tar [选项] [文件]”
Linux中常见的压缩文件格式为.tar, .tar.gz, tar.bz2
-c: 创建压缩文件
-x: 解开压缩文件
-t: 查看压缩包内有那些文件
-z: 用Gzip压缩或解压
-j: 用bzip2压缩或解压
-v: 显示压缩或解压的过程 推荐
-f: 目标文件名 重大,必须放在参数的最后一位
-p: 保留原始的权限或属性
-P:使用绝对路径来压缩
-C:指定解压到的目录

打包压缩:“tar -czvf 压缩包名称.tar.gz 要打包的目录”
解压缩: “tar -xzvf 压缩包名称.tar.gz -C 解压路径”

grep命令

用于在文本中执行关键词的搜索,并显示匹配的结果
格式:“tar [选项] [文件]”
-b: 将可执行文件(binary)当作文本文件(text)来搜索
-c: 仅显示找到的行数
-i: 忽略大小写
-n: 显示行号
-v: 反向选择—仅列出没有关键词的行
在Linux系统中,/etc/passwd文件是保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统,因此可以使用grep命令来找出当前系统中不允许登录系统的所有的用户信息

[root@bogon ~]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

find命令

用于按照指定条件来查找文件
格式:“find [查找路径] 寻找条件 操作”

Linux系统中的一切都是文件

-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: 匹配比文件1新比文件2旧的文件
–type b/d/c/p/l/f:匹配文件类型(设备、目录、字符设备、管道、链接文件、文本文件)
–size: 匹配文件大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
–prune: 忽略某个目录
-exec ….{ }:后面可跟用于进一步处理搜索结果的命令(-exec相当于把find命令搜索到的结果交给紧随其后的命令做进一步处理,特殊,只需要一个减号)

Linux的配置文件都保存在/etc中

[root@bogon ~]# find /etc -name "host*" -print
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/active/modules/100/hostname
/etc/avahi/hosts
/etc/hostname

教材范例:在整个文件系统中找出所有归属于A用户的文件并复制到/root/findresults目录

“-exec {} …”:{}表明find命令搜索出的每一个文件,并且其命令的结尾必须是“”
find / -user A -exec cp -a {} /root/findresults/

awk命令

AWK 是一种处理文本文件的语言,是一个强劲的文本分析工具。

之所以叫 AWK 是由于其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。
格式
awk [选项参数] script var=value file(s)

awk [选项参数] -f scriptfile var=value file(s)

log.txt文本内容如下:

2 this is a test
3 Are you like awk
This s a test
10 There are orange,apple,mongo

用法举例:
awk {[pattern] action} {filenames} # 行匹配语句 awk 只能用单引号
实例:

# 每行按空格或TAB分割,输出文本中的1、4项
 $ awk  {print $1,$4}  log.txt
 ---------------------------------------------
 2 a
 3 like
 This s
 10 orange,apple,mongo
 # 格式化输出
 $ awk  {printf "%-8s %-10s
",$1,$4}  log.txt
 ---------------------------------------------
 2        a
 3        like
 This s
 10       orange,apple,mongo

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...