整理了一下,本次学到linux命令
白名单提示的处理
如果创建资源后遇到这个提示,需要先处理下,再继续实验
白名单提示
新建inprivate窗口
打开阿里云登录页面https://signin.aliyun.com/login.htm#/main
用所给资源的账号密码登录
进入实例
打开安全组页面
按提示增加
保存后就可以用了
一、文本处理类
Vim
命令描述:文本编辑
输入i
居中:ce
保存:wq
cat
命令描述:cat命令用于查看内容较少的纯文本文件。
命令使用示例:
1. 将一个自增序列写入test.txt文件中。
for i in$(seq 110); do echo $i>> test.txt ; done
2. 查看文件内容。
cat test.txt
命令输出结果:
3. 将文件内容清空。
cat /dev/null > test.txt
more
命令描述:more命令从前向后分页显示文件内容。
命令使用示例:
从第20行开始分页查看系统日志文件/var/log/messages。
more +20 /var/log/messages
less
命令描述:less命令可以对文件或其它输出进行分页显示,与moe命令相似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动。
命令使用示例:
查看命令历史使用记录并通过less分页显示。
history | less
head
命令描述:head命令用于查看文件开头指定行数的内容。
命令使用示例:
查看/etc/passwd文件的前5行内容。
head -5 /etc/passwd
tail
命令描述:tail命令用于查看文档的后N行或持续刷新内容。
命令使用示例:
查看/var/log/messages系统日志文件的最新10行,并保持实时刷新。
tail -f -n 10 /var/log/messages
按ctrl+c键退出文本实时查看界面。
stat
命令描述:用来显示文件的详细信息,包括inode、atime、mtime、ctime等。
命令使用示例:
查看/etc/passwd文件的详细信息。
stat /etc/passwd
wc
命令描述:wc命令用于统计指定文本的行数、字数、字节数。
命令使用示例:
统计/etc/passwd文件的行数。
wc -l /etc/passwd
file
命令描述: file命令用于辨识文件类型。
命令使用示例:
查看/var/log/messages文件的文件类型。
file /var/log/messages
diff
命令描述:diff命令用于比较文件的差异。
grep
命令描述:grep命令用于查找文件里符合条件的字符串。
grep全称是Global Regular Expression Print,表示全局正则表达式版本,它能使用正则表达式搜索文本,并把匹配的行打印出来。
在Shell脚本中,grep通过返回一个状态值来表示搜索的状态:
- 0:匹配成功。
- 1:匹配失败。
- 2:搜索的文件不存在。
命令使用示例:
- 查看sshd服务配置文件中监听端口配置所在行编号。grep -n Port
- 查询字符串在文本中出现的列数。grep -c localhost /etc/hosts
- 反向查找,不显示符合条件的行。ps -ef | grep sshdps -ef | grep -v grep | grep sshd
- 以递归的方式查找目录下含有关键字的文件。grep -r *.sh /etc
- 使用正则表达式匹配httpd配置文件中异常状态码响应的相关配置。grep 'ntp[0-9].aliyun.com' /etc/ntp.conf
sed
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用。
命令使用示例:
- 删除第3行到最后一行内容。sed '3,$d' /etc/passwd
- 在最后一行新增行。sed '$a admin:x:1000:1000:admin:/home/admin:/bin/bash' /etc/passwd
- 替换内容。sed 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config
- 替换行。sed '1c abcdefg' /etc/passwd
awk
命令描述:和 sed 命令类似,awk 命令也是逐行扫描文件(从第 1 行到最后一行),寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作;反之,则不对行做任何处理。
命令使用示例:
- 查看本机IP地址。ifconfig eth0 |awk '/inet/{print $2}'
- 查看本机剩余磁盘容量。df -h |awk '/\/$/{print $4}'
- 统计系统用户个数。awk -F: '$3<1000{x++} END{print x}' /etc/passwd
- 输出其中登录Shell不以nologin结尾(对第7个字段做!~反向匹配)的用户名、登录Shell信息。awk -F: '$7!~/nologin$/{print $1,$7}' /etc/passwd
- 输出/etc/passwd文件中前三行记录的用户名和用户uid。head -3 /etc/passwd | awk 'BEGIN{FS=":";print "name\tuid"}{print $1,"\t"$3}END{print "sum lines "NR}'
- 查看tcp连接数。netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
- 关闭指定服务的所有的进程。ps -ef | grep httpd | awk {'print $2'} | xargs kill -9
cut
命令描述:cut命令主要用来切割字符串,可以对输入的数据进行切割然后输出。
命令使用示例:
- 按字节进行切割。
- 按字符进行切割。
tr
命令描述:tr命令用于对来自标准输入的字符进行替换、压缩和删除。
示例:
- 将输入字符由大写转换为小写。echo "HELLO WORLD" | tr 'A-Z' 'a-z'
- 删除字符。echo "hello 123 world 456" | tr -d '0-9'
- 压缩字符。echo "thissss is a text linnnnnnne." | tr -s ' sn'
- 产生随机密码。cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c 13
二、系统管理类
echo
命令描述:echo命令用于在终端输出字符串或变量提取后的值。
- 显示结果定向至文件
echo "This is a test text." > test.txt
如果您希望将文本追加到文件内容最后,而不是覆盖它,请使用>>输出追加重定向符号。
- 显示命令执行结果
以下命令将会在终端显示当前的工作路径。
echo `pwd`
使用$(command)形式可以达到相同效果。
date
命令描述:date命令用于显示和设置系统的时间和日期。
- 按照指定格式查看当前系统时间
date "+%Y-%m-%d %H:%M:%S"
- 查看今天是当年中的第几天
date "+%j"
- 将系统的当前时间设置为2020年02月20日20点20分20秒
date -s "20200220 20:20:20"
- 校正系统时间,与网络时间同步
a. 安装ntp校时工具
yum -y install ntp
b. 用ntpdate从时间服务器更新时间
ntpdate time.nist.gov
wget
命令描述:在终端中下载文件。
:下载一张图片到路径/root/static/img/中,-p参数默认值为当前路径,如果指定路径不存在会自动创建。
wget -P /root/static/img/ http://img.alicdn.com/tfs/TB1.R._t7L0gK0jSZFxXXXWHVXa-2666-1500.png
ps
命令描述:ps命令用于查看系统中的进程状态。
命令使用示例:
ps -ef | grep sshd
top
命令描述:top命令动态地监视进程活动与系统负载等信息。
按 q 键退出监控页面。
pidof
命令描述:pidof命令用于查询指定服务进程的PID值。
查询出crond服务下的所有进程ID。
pidof crond
kill
命令描述:kill命令用于终止指定PID的服务进程。
删除pid为1247的进程。
kill -9 1247
killall
命令描述:killall命令用于终止指定名称的服务对应的全部进程。
删除crond服务下的所有进程。
killall crond
ifconfig
命令描述:ifconfig命令用于获取网卡配置与网络状态等信息。
uname
命令描述:uname命令用于查看系统内核与系统版本等信息。
- 显示系统信息。
uname -a
- 显示当前系统的硬件架构。
uname -i
- 显示操作系统发行编号。
uname -r
- 显示操作系统名称。
uname -s
- 显示主机名称。
name -n
uptime
命令描述:uptime 用于查看系统的负载信息。
free
命令描述:free用于显示当前系统中内存的使用量信息。
- 显示当前系统中内存的使用量信息。
free -h
who
命令描述:who 命令显示关于当前在本地系统上的所有用户的信息。
- 显示用户登录来源
who -l -H
- 精简模式显示
who -q
last
命令描述: last 命令用于显示用户最近登录信息。
history
命令描述:history命令用于显示历史执行过的命令。
bash默认记录1000条执行过的历史命令,被记录在~/.bash_history文件中。
命令使用示例:
- 显示最新10条执行过的命令。
history 10
- 清除历史记录。
history -c
三、磁盘管理命令
df
df命令描述:该命令检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
- 执行如下命令,以inode模式来显示磁盘使用情况。
df -i
- 执行如下命令,显示系统内的所有特殊文件格式、名称及磁盘使用情况。
df -aT
- 执行如下命令,以GBytes、MBytes、KBytes等格式显示各文件系统容量。
df -h
du
du命令描述:查看磁盘使用空间。du与df命令不同点在于,du命令用于查看文件和目录磁盘的使用空间。
- 执行如下命令,列出当前目录下的所有文件夹和文件的容量。
du -a
- 执行如下命令,列出当前目录下的所有文件夹和文件的容量。
du -ah
- 执行如下命令,列出根目录底下每个目录所占用的容量,并以MBytes单位显示容量。
du -sm /*
fdisk
fdisk命令描述:该命令用于磁盘分区。
- 执行如下命令,列出系统所有装置的分区信息。
fdisk -l
四、文件与权限
ls
命令描述: ls命令用于显示指定工作目录下的内容。
命令使用示例:
查看当前目录下的所有文件(包括隐藏文件)。
ll -a
pwd
命令描述:获取当前工作目录的绝对路径。
cd
命令描述:cd命令用于切换工作目录。
在路径表示中:
- 一个半角句号(.)表示当前目录,例如路径./app/log等同于app/log。
- 两个半角句号(..)表示上级目录,例如路径/usr/local/../src等同于/usr/src,其中local和src目录同级。
cd命令的默认参数为~,符号~表示当前用户的家目录,即在root用户登录时,命令cd、cd ~和cd /root执行效果相同。
touch
命令描述:touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
命令使用示例:
- 创建两个空文件。
touch demo1.txt demo2.txt
mkdir
mkdir命令用于新建子目录。-p参数确保目录名称存在,不存在的就新建一个。
tree
查看创建后的目录结构。
rm
命令描述:rm命令用于删除一个文件或者目录。
示例:
- 无需确认直接删除文件。
rm -rf demo*
- 无需确认直接删除目录a及其目录下所有子目录和文件。
rm -rf a
cp
命令描述: cp命令主要用于复制文件或目录。
mv
命令描述: mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
- 将文件名a.txt改为b.txt。
- 将c目录移动到a/b/c/d/下。
- 将当前目录内容全部移动到/tmp目录中。
mv ./* /tmp
rename
命令描述:rename命令用字符串替换的方式批量改变文件名。
命令使用示例:
- 将当前目录下所有文件名中的字符串demo改为大写的字符串DEMO。
- 将当前目录下所有.txt文件后缀都改为text。
chmod
chmod命令用于修改文件权限mode,-R参数以递归方式对子目录和文件进行修改。
- 将hello.sh文件增加属主的执行权限。
- 将hello.sh文件撤销属主的执行权限。
- 将hello.sh文件权限修改为八进制表示的744权限。
- 使用bash命令解释器执行hello.sh脚本文件。
其中,u+x表示增加属主的执行权限,u表示属主,g表示属组,o表示其他,a表示所有用户。
chown
chown命令修改文件的属主和属组;-R参数以递归方式对子目录和文件进行修改;ls -l命令显示的第三列和第四列就是文件的属主和属组信息。
chgrp
chgrp命令用于修改文件的属组。
五、文件管理
cmp
命令描述:该命令用于比较两个文件是否有差异。当相互比较的两个文件完全一样时,该指令不会显示任何信息。否则会标示出第一个不同之处的字符和列数编号。当不指定任何文件名称,或文件名为"-",则cmp指令会从标准输入设备读取数据。
find
命令描述:该命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
使用示例:
- 执行如下命令,将当前目录及其子目录下所有文件后缀为.txt的文件列出来。
find . -name "*.txt"
- 执行如下命令,查找系统中所有文件长度为0的普通文件,并列出它们的完整路径。
find / -type f -size 0 -exec ls -l {} \;