echo [选项] [输出内容] :用来输出内容
-n:取消输出后行末的换行符号(即内容输出后不换行)
[root@linuxprobe network-scripts]# echo this is a test
this is a test
[root@linuxprobe network-scripts]# echo "the root path is $HOME"
the root path is /root
ifconfig 用来查看和配置网络设备
ctrl+c :强制中断当前程序的执行
ctrl+z :将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态
top:
命令查看各个进程的cpu使用情况,默认按cpu使用率排序
pwd 显示用户当前所处的目录;
cd 用户切换工作路径;
cd - 返回上一次所处的目录
cd .. 进入上级目录
cd ~ 回到当前用户的家目录
ls 显示目录中的文件信息
ls -a 查看全部文件(包括隐藏文件)
ls -l 查看文件的属性、大小等信息
cat 查看纯文本文件(内容较少的)
cat -n 查看文本内容时显示行号
more 查看纯文本文件(内容较多的,可使用空格键或回车键翻页)
head 查看纯文本文档的前N行
[root@linuxprobe ~]# head -20 initial-setup-ks.cfg
#version=RHEL7
# X Window System configuration information
xconfig --startxonboot
# License agreement
eula --agreed
tail 查看纯文本文档的后N行或持续刷新内容
tail -n 20 文件名 :查看文档的后20行数据;
[root@linuxprobe ~]# tail -20 initial-setup-ks.cfg
# Partition clearing information
clearpart --none --initlabel
%packages
tail -f 文件名 :持续刷新一个文件的内容;
[root@linuxprobe ~]# tail -f /var/log/messages
Feb 8 20:09:03 linuxprobe dbus[1039]: [system] Successfully activated service 'org.freedesktop.PackageKit'
Feb 8 20:10:01 linuxprobe systemd: Starting Session 3 of user root.
Feb 8 20:10:01 linuxprobe systemd: Started Session 3 of user root.
tr 用户替换文本文件中的字符串
[root@linuxprobe ~]# cat anaconda-ks.cfg|tr [a-z] [A-Z]
#VERSION=RHEL7
# SYSTEM AUTHORIZATION INFORMATION
AUTH --ENABLESHADOW --PASSALGO=SHA512
wc 用户统计指定文本中的行数、字数、字节数
wc -l 只显示行数
wc -w 只显示单词数
wc -c 只显示字节数
[root@linuxprobe ~]# wc -l /etc/passwd
38 /etc/passwd
stat 查看文件的具体存储信息和时间等信息
cut [参数] 文本 :用于按列提取文本字符串
[root@linuxprobe ~]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@linuxprobe ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
diff 用于比较多个文本的差异
diif -brief 用于确认两个文件是否相同
diff -c 详细比较多个文件的差异之处
touch 创建空白文件或设置文件的时间
touch 文件名:创建空白文件
touch -a 仅修改读取时间
touch -m 仅修改修改时间
touch -d 同时修改读取和修改时间
mkdir 创建空白的目录
mkdir -p 递归创建嵌套文件夹
[root@linuxprobe ~]# mkdir -p a/b/c
[root@linuxprobe ~]# cd a
[root@linuxprobe a]# ls
b
cp [选项] 源文件 目标文件:复制文件或目录
cp -p 保留原始文件属性
cp -d 文件为链接,则保留链接文件的属性
cp -r 递归持续复制,用于目录
cp -i 若目标文件存在,则询问是否覆盖
cp -a 相当于 -pdr(pdr为上述选项参数)
[root@linuxprobe ~]# cp hello-world.txt first-test.txt
[root@linuxprobe ~]# ls
a anaconda-ks.cfg Desktop Documents Downloads first-test.txt hello-world.txt
mv [选项] 源文件 [目标路径|目标文件名] :用于剪切文件或将文件重命名
[root@linuxprobe ~]# mv first-test.txt second.txt
[root@linuxprobe ~]# ls
a anaconda-ks.cfg Desktop Documents Downloads hello-world.txt initial-setup-ks.cfg linuxtest Music Pictures Public second.txt
rm 用于删除文件或目录
rm -f 强制删除文件(默认询问是否删除)
rm -r 递归持续删除,用于目录
[root@linuxprobe ~]# rm second.txt
rm: remove regular empty file ‘second.txt’? n
[root@linuxprobe ~]# ls
a anaconda-ks.cfg Desktop Documents Downloads hello-world.txt initial-setup-ks.cfg linuxtest Music Pictures Public second.txt Templates Videos
[root@linuxprobe ~]# rm -f second.txt
[root@linuxprobe ~]# ls
a anaconda-ks.cfg Desktop Documents Downloads hello-world.txt initial-setup-ks.cfg linuxtest Music Pictures Public Templates Videos
file 用于查看文件类型
[root@linuxprobe ~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text
[root@linuxprobe ~]# file /dev/sda
/dev/sda: block special
tar [选项] [文件] :对文件进行打包压缩或解压
tar -c 创建压缩文件
tar -x 解开压缩文件
tar -t 查看压缩包内文件
tar -z 用于Gzip压缩或解压
tar -j 用于bzip2压缩或解压
tar -v 显示压缩或解压的过程
tar -f 目标文件名
tar -p 保留原始文件的权限和属性
tar -P 使用绝对路径来压缩
tar -C 指定到解压目录
例:将/etc目录通过gzip格式进行压缩,并命名etc.tar.gz
[root@linuxprobe ~]# tar -czvf etc.tar.gz /etc
tar: Removing leading `/' from member names
/etc/
/etc/fstab
/etc/crypttab
/etc/mtab
/etc/fonts/
......
[root@linuxprobe ~]# ls
a anaconda-ks.cfg Desktop Documents Downloads etc.tar.gz hello-world.txt
将上面打包的压缩文件,解压到指定目录/root/etc中
[root@linuxprobe ~]# tar -czvf etc.tar.gz /etc
tar: Removing leading `/' from member names
/etc/
/etc/fstab
/etc/crypttab
/etc/mtab
/etc/fonts/
/etc/fonts/conf.d/
......
grep [选项] [文件]:用于在文本中执行关键词搜索,并显示匹配结果
-b 将可执行文件(binary)当作文本文件(txt)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行数
-v 反向选择,竟列出没有命中关键词的行
[root@linuxprobe ~]# 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 [查找路径] 寻找条件 操作 :按照指定条件来查找文件
-name 匹配名称
-perm 匹配权限
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容时间(-n指填以内,+n指n天以前)
-atime -n +n 匹配访问时间
--type b/d/c/p/l/f 匹配文件类型(字母依次表示设备、目录、字符设备、管道、链接文件、文本文件)
-prune 忽略某个文件
-exec 用于进一步处理搜索结果的命令
[root@linuxprobe ~]# find /etc -name "host*" -print
/etc/avahi/hosts
/etc/host.conf
/etc/hosts
/etc/hosts.allow
标准输入(STDIN,文件描述符为0):
默认从键盘输入,也可以从其他文件或命令中输入
标准输出(STDOUT,文件描述符为1):
默认输出到屏幕,也可以输出到文件
错误输出(STDERR,文件描述符为2):
默认输出到屏幕
输入重定向
命令 < 文件 :将文件作为命令的标准输入
命令 << 分解符 :从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2 :文件1作为命令的标准输入,并标准输出到文件2
输出重定向
命令 > 文件:标准输出到文件中(清空原文件内容)
命令 2 > 文件 :错误输出到文件中(清空原文件内容)
命令 >> 文件:标准输出到文件中 (原文件内容后追加)
命令 2 >> 文件:错误输出到文件中(原文件后追加)
命令 >> 文件 2>&1: 将标准输出与错误输出共同写入文件(追加到原内容后)
命令 &>> 文件:作用同e
对于标准输出模式,可以省略文件描述符1不写,而错误输出的文件描述符2是必须要写的。
例:将信息输出到文件
[root@linuxprobe ~]# man bash > hello.txt
[root@linuxprobe ~]# cat hello.txt
BASH(1) General Commands Manual BASH(1)
NAME
bash - GNU Bourne-Again SHell
[root@linuxprobe ~]# echo "welcome to my world" > hello.txt
[root@linuxprobe ~]# cat hello.txt
welcome to my world
[root@linuxprobe ~]# ls -l etc.tar.gz
-rw-r--r--. 1 root root 8596806 Feb 13 14:50 etc.tar.gz
[root@linuxprobe ~]# ls -l etc.tar.gz > hello.txt
[root@linuxprobe ~]# cat hello.txt
-rw-r--r--. 1 root root 8596806 Feb 13 14:50 etc.tar.gz
将错误信息写入到文件
[root@linuxprobe ~]# ls -l linuxprobe
ls: cannot access linuxprobe: No such file or directory
[root@linuxprobe ~]# ls -l linuxprobe 2 > hello.txt
ls: cannot access linuxprobe: No such file or directory
ls: cannot access 2: No such file or directory
[root@linuxprobe ~]# ls -l linuxprobe 2> hello.txt
[root@linuxprobe ~]# cat hello.txt
ls: cannot access linuxprobe: No such file or directory
管道命令符
命令A | 命令B:将命令A输出的正常数据当作命令B的标准输入
例:搜索被限制登录的用户,并统计文本行数
[root@linuxprobe ~]# grep "/sbin/nologin" /etc/passwd | wc -l
33
命令行通配符
*:代表匹配零个或多个字符
?:匹配单个字符
[0-9]:匹配0-9之间的单个数字
[abc]:匹配a、b、c三个字符中的任意一个字符
[root@linuxprobe ~]# ls -l /dev/sda*
brw-rw----. 1 root disk 8, 0 Feb 13 2022 /dev/sda
brw-rw----. 1 root disk 8, 1 Feb 13 2022 /dev/sda1
brw-rw----. 1 root disk 8, 2 Feb 13 2022 /dev/sda2
[root@linuxprobe ~]# ls -l /dev/sda?
brw-rw----. 1 root disk 8, 1 Feb 13 2022 /dev/sda1
brw-rw----. 1 root disk 8, 2 Feb 13 2022 /dev/sda2
[root@linuxprobe ~]# ls -l /dev/sda[0-9]
brw-rw----. 1 root disk 8, 1 Feb 13 2022 /dev/sda1
brw-rw----. 1 root disk 8, 2 Feb 13 2022 /dev/sda2
[root@linuxprobe ~]# ls -l /dev/sda[135]
brw-rw----. 1 root disk 8, 1 Feb 13 2022 /dev/sda1
常用的转义字符
\ :使反斜杠后面的变量变为单纯的字符串
" :转义其中所有的变量为单纯的字符串
"" :保留其中的变量属性,不进行转义处理
`` :把其中的命令执行后返回结果
[root@linuxprobe ~]# PRICE=5
[root@linuxprobe ~]# echo "Price is $PRICE"
Price is 5
[root@linuxprobe ~]# echo "Price is \$$PRICE"
Price is $5
[root@linuxprobe ~]# echo `uname -a`
Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
重要的环境变量
HOME :用户的主目录
SHELL :用户在使用的shell解释器名称
HISTSIZE :输出的历史命令记录条数
HISTFILESIZE :保存的历史命令记录条数
MAIL :邮件保存地址
LANG :系统语言、语系名称
RANDOM :生成一个随机数字
PS1 :Bash解释器的提示符
PATH :定义解释器搜素用户执行命令的路径
EDITOR :用户默认的文本编辑器
[root@linuxprobe ~]# echo $HOME
/root
[root@linuxprobe ~]# su - linuxprobe
su: user linuxprobe does not exist
[root@linuxprobe ~]# echo $HOME
/root
[root@linuxprobe ~]# su - snow
Last login: Sun Feb 6 19:28:32 CST 2022 on :0
[snow@linuxprobe ~]$ echo $HOME
/home/snow
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等
输入模式:正常的文本录入
末行模式:保存或退出文档,以及设置编辑环境
a/i 分别是在光标后面一位和光标当前位置切换到输入模式;
o 是在光标的下面在创建一个空行
命令模式中常用的命令
dd 删除光标所在行
5dd 删除光标所在处的5行
yy 复制光标所在整行
5yy 复制从光标开始处的5行
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的操作
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面
末行模式中常用命令
:w 保存
:q 退出
:q! 强制退出(放弃对文档的修改内容)
:wq! 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行改命令
:整数 跳到该行
?字符串 在文本中从下往上搜索该字符串
/字符串 在文本中从上往下搜索该字符串