01、centos7常用命令与实践操作

1. 常用命令

1.1. 文件与目录操作

1.1.1. cd

cd /home 进入 ‘/home’ 目录
cd … 返回上一级目录
cd …/… 返回上两级目录
cd - 返回上次所在目录

1.1.2. cp

cp file1 file2 将file1复制为file2
cp -a dir1 dir2 复制一个目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录(.代表当前目录)

1.1.3. ls

ls 查看目录中的文件
ls -a 显示隐藏文件
ls -l 显示详细信息
ls -lrt 按时间显示文件(l表示详细列表,r表示反向排序,t表示按时间排序)

ls -1 : 每行列出一个文件,即以单列形式列出。注意参数是数字1。
ls -a : 列出所有文件,包括隐藏文件。
ls -la : 所有文件的长格式列表(含权限、所有权、大小和修改日期)。
ls -lh : 使用人可读单位(KB、MB、GB)显示大小的长格式列表。
ls -lS:按大小排序的长格式列表(降序)。
ls -ltr:按大小排序的长格式列表(降序)。

1.1.4. pwd

pwd 显示工作路径

1.1.5. mkdir

mkdir dir1 创建 ‘dir1’ 目录
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树

1.1.6. mv

mv含义:移动或重命名文件和目录。
mv dir1 dir2 移动/重命名一个目录
eg:
mv file1.txt file2.txt 将file1文本重命名为file2
mv file1.txt file2 将file1文本移动到file2目录

1.1.7. rm

rm -f file1 删除 ‘file1’
rm -rf dir1 删除 ‘dir1’ 目录及其子目录内容

1.1.8. touch

touch 含义:用于修改文件或目录的时间属性。若文件不存在,系统会新建一个新的空白文件。
eg: touch file

1.2. 查看文件内容

1.2.1. cat

cat file:将文件内容打印显示。
cat file1 file2> target_file:将多个文件合并到目标文件中。
eg: cat 1.txt 2.txt > 3.txt
cat file1 file2 >> target_file:将几个文件附加到目标文件中。
eg: cat 1.txt 2.txt >> 3.txt

1.2.2. head

head -2 file1 查看一个文件的前两行

1.2.3. more

more file1 查看一个长文件的内容

1.2.4. tac

tac file1 从最后一行开始反向查看一个文件的内容

1.2.5. tail

tail -3 file1 查看一个文件的最后三行

1.2.6. vi/vim

vi file 打开并浏览,修改文件内容。

vi file
i 进入编辑文本模式
Esc 退出编辑文本模式
:w 保存当前修改
:q 不保存退出vi
:wq 保存当前修改并退出vi

1.2.6.1. 命令模式(Command mode)

i 切换到输入模式,以输入字符。
ctrl+f/+b 上翻一页/下翻一页
ctrl+u/+d 上翻半页/下翻半页
ctrl+e/+y 上滚/下滚
zt 移动光标所在行至屏幕顶端
zz 移动光标所在行至屏幕中间
zb 移动光标所在行至屏幕底端

nG移动光标到第N行
gg 移动到这个文档的第一行
G 移动到这个文档的最后一行

gf 打开光标处的文件名
^或0 行首
$ 行尾
w 光标跳转到下一个单词

x 剪切光标后面一个字符,相当于 del 键
X 剪切光标前面一个字符,相当于 backspace 键
nx 剪切光标后面n个字符

dd 剪切光标所在的一行
ndd 剪切当前行和当前行之后的 n-1 行。
d0 剪切光标所在处,到该行行首之间的字符。
d$ 剪切光标所在处,到该行行尾之间的字符。

yy 复制当前行
nyy 复制光标所在的向下n行
y0 复制光标所在处,到该行行首之间的字符。
y$ 复制光标所在处,到该行行尾之间的字符。

p, P 粘贴
p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)

输入 r 和一个字符替换光标所在位置的字符。

J 将光标所在行与下一行的数据结合成同一行
u 复原前一个动作。(常用)
Ctrl+r 重做上一个动作。(常用)

移动光标用hjkl

1.2.6.2. 输入模式(Insert mode)

ESC,退出输入模式,切换到命令模式

1.2.6.3. 底线命令模式(Last line mode)

在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序 w 保存文件
按ESC键可随时退出底线命令模式

/pattern 搜索pattern的字符串,若有多个匹配按n到下一个。 /word : 向光标之下寻找一个名称为word的字符串 ?word :
向光标之上寻找一个名称为word的字符串 n : 向下查找下一个 word 字符串 N :向上查找下一个 word 字符串

1.3. 文本内容处理

grep str /tmp/test 在文件 ‘/tmp/test’ 中查找 “str”
grep ^str /tmp/test 在文件 ‘/tmp/test’ 中查找以 “str” 开始的行
grep [0-9] /tmp/test 查找 ‘/tmp/test’ 文件中所有包含数字的行
grep str -r /tmp/* 在目录 ‘/tmp’ 及其子目录中查找 “str”
diff file1 file2 找出两个文件的不同处
sdiff file1 file2 以对比的方式显示两个文件的不同

1.4. 查询操作

find / -name file1 从 ‘/’ 开始进入根文件系统查找文件和目录
find / -user user1 查找属于用户 ‘user1’ 的文件和目录
find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中查找以 ‘.bin’ 结尾的文件
find /usr/bin -type f -atime +100 查找在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 查找在10天内被创建或者修改过的文件
locate .ps 寻找以 ‘.ps’ 结尾的文件,先运行 ‘updatedb’ 命令
find -name ‘
.[ch]’ | xargs grep -E ‘expr’ 在当前目录及其子目录所有.c和.h文件中查找 ‘expr’
find -type f -print0 | xargs -r0 grep -F ‘expr’ 在当前目录及其子目录的常规文件中查找 ‘expr’
find -maxdepth 1 -type f | xargs grep -F ‘expr’ 在当前目录中查找 ‘expr’
/
eg:
[root@hmaster 1]# find /tmp -name '
.txt’ | xargs grep -E ‘f’
[root@hmaster 1]# find / -name 2.txt

1.5. 压缩、解压

bzip2 file1 压缩 file1
bunzip2 file1.bz2 解压 file1.bz2
gzip file1 压缩 file1
gzip -9 file1 最大程度压缩 file1
gunzip file1.gz 解压 file1.gz
tar -cvf archive.tar file1 把file1打包成 archive.tar(-c: 建立压缩档案;-v: 显示所有过程;-f: 使用档案名字,是必须的,是最后一个参数)
tar -cvf archive.tar file1 dir1 把 file1,dir1 打包成 archive.tar
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 把压缩包释放到 /tmp目录下
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 dir1 把文件和目录压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式的压缩包到当前目录
unzip test.zip -d /tmp/ 解压一个zip格式的压缩包到 /tmp 目录

1.6. history

history命令,如果要清除历史记录,可以运用history -c,具体history用法如下:
history命令的用法及参数usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg…]
参数:
n :数字,要列出最近的若干命令列表
-c :将目前的 shell 中的所有 history 内容全部消除
-a :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles ,则预设写入 ~/.bash_history
-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中
-w :将目前的 history 记忆内容写入 histfiles

2. 系统命令

2.1. 系统相关

su - 切换到root权限(与su有区别)
shutdown -h now 关机
shutdown -r now 重启
top 罗列使用CPU资源最多的linux任务 (输入q退出)
pstree 以树状图显示程序
man ping 查看参考手册(例如ping 命令)
passwd 修改密码
df -h 显示磁盘的使用情况
cal -3 显示前一个月,当前月以及下一个月的月历
cal 10 1988 显示指定月,年的月历
date –date ‘1970-01-01 UTC 1427888888 seconds’ 把一相对于1970-01-01 00:00的秒数转换成时间

查看允许启动的服务列表: systemctl list-unit-files | grep enabled
查看禁止启动的服务列表: systemctl list-unit-files | grep disabled
在开机时启用一个服务:systemctl enable postfix.service
在开机时禁用一个服务:systemctl disable postfix.service

2.2. yum安装器

yum -y install [package] 下载并安装一个rpm包
yum localinstall [package.rpm] 安装一个rpm包,使用你自己的软件仓库解决所有依赖关系
yum -y update 更新当前系统中安装的所有rpm包
yum update [package] 更新一个rpm包
yum remove [package] 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search [package] 在rpm仓库中搜寻软件包
yum clean [package] 清除缓存目录(/var/cache/yum)下的软件包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件

2.3. 网络相关

ifconfig eth0 显示一个以太网卡的配置
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 配置网卡的IP地址
ifdown eth0 禁用 ‘eth0’ 网络设备
ifup eth0 启用 ‘eth0’ 网络设备
iwconfig eth1 显示一个无线网卡的配置
iwlist scan 显示无线网络
ip addr show 显示网卡的IP地址

2.4. XSheel 5

Ctrl + u 删除光标之前到行首的字符
Ctrl + k 删除光标之前到行尾的字符
Ctrl + c 取消当前行输入的命令,相当于Ctrl + Break
Ctrl + a 光标移动到行首(ahead of line),相当于通常的Home键
Ctrl + e 光标移动到行尾(end of line)
Ctrl + f 光标向前(forward)移动一个字符位置
Ctrl + b 光标往回(backward)移动一个字符位置
Ctrl + l 清屏,相当于执行clear命令
Ctrl + r 显示:号提示,根据用户输入查找相关历史命令(reverse-i-search)
Ctrl + w 删除从光标位置前到当前所处单词(word)的开头
Ctrl + t 交换光标位置前的两个字符
Ctrl + y 粘贴最后一次被删除的单词

2.5. 安装vim

https://blog.csdn.net/teisite/article/details/81013462
查看是否已经安装vim命令
rpm -qa|grep vim
vim安装命令 yum -y install vim*
配置vim vim /etc/vimrc

rpm -qa | grep vim-enhanced

2.6. 安装locate

yum install mlocate
updatedb
查看 locate inittab

2.7. 其他操作

使用CentOS常用命令查看主机名
hostname
cat /etc/sysconfig/network

临时修改 hostname 主机名
永久修改 vi /etc/hostname

使用CentOS常用命令查看开机运行时间 uptime

设置网络信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

防火墙设置
systemctl status firewalld
systemctl start firewalld
systemctl disable firewalld

修改主机名与IP映射关系 vi /etc/hosts

关机 shutdown now
重启 shutdown -r now

查看ip ip addr
修改ip vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

重启网卡 service network restart

修改主机名
a. vi /etc/hosts
b. hostnamectl set-hostname XXX

查看主机名 hostnamectl status
查看系统版本 cat /etc/redhat-ralease

重新加载服务配置文件 systemctl daemon-reload

2.8. Centos7添加用户和用户组

参考
https://www.cnblogs.com/luckyall/p/10368311.html
https://www.cnblogs.com/bfhxt/p/9933201.html

2.9. make命令

http://www.80vps.com/new9058.htm

make
根据Makefile文件编译源代码、连接、生成目标文件、可执行文件。

make clean
清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。

make install
将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录。

make dist
产生发布软件包文件(即distribution package)。这个命令将会将可执行文件及相关文件打包成一个tar.gz压缩的文件用来作为发布软件的软件包。

它会在当前目录下生成一个名字类似“PACKAGE-VERSION.tar.gz”的文件。PACKAGE和VERSION,是我们在configure.in中定义的AM_INIT_AUTOMAKE(PACKAGE, VERSION)。

make distcheck
生成发布软件包并对其进行测试检查,以确定发布包的正确性。这个操作将自动把压缩包文件解开,然后执行configure命令,并且执行make,来确认编译不出现错误,最后提示你软件包已经准备好,可以发布了。

make distclean
类似make clean,但同时也将configure生成的文件全部删除掉,包括Makefile文件。

export

参考
https://www.cnblogs.com/ToBeExpert/p/9808104.html

3. 直接运行的命令

echo $PATH
/root/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
上面几个路径下的命令,即PATH这个目录下放的可执行程序,在系统任何地方都可以直接执行,不需要指定路径。
如下图:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在系统任意目录下都可以运行 redis-server,因为在安装 redis时执行了 make install 将redis命令放到/usr/local目录下,定义成系统命令。

/usr/bin 系统预装的一些可执行程序,随系统升级会改变
/usr/local/bin 用户安装的可执行程序,不受系统升级影响,用户编译安装软件时,一般放到/usr/local目录下
如果两个目录含有相同的可执行程序,通过查看PATH,比较优先级
echo $PATH
/root/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
这里/usr/local/bin优先于/usr/bin

4. 软件安装命令

1、yum安装可以看成是从网络在线安装的一种方式,只需要yum install 软件名,系统就自动根据yum源配置文件中的镜像位置去下载安装包了,并可以自动分析所需的软件依赖关系,自动安装所需的依赖软件包。此方式适合初学者,简单方便,不用考虑依赖关系。但有些软件并不能通过yum来安装。

2、而源码安装方式是需要自己到网上下载源码包,然后解压安装。此方式可以指定配置参数,更加灵活方便,兼容性更强。比较适合对Linux系统有较多了解的进阶用户使用。

3、rpm是安装本地存在的rpm包,如果存在依赖也需要安装上,如果某个rpm是自己修改编译的,那么只能用rpm安装了

5. 目录结构

参考
https://www.cnblogs.com/LiuChunfu/p/8052890.html

6. 小技巧

6.1. linux后台运行命令 nohup

nohup java -Xms10240m -Xmx10240m -jar KKTask-0.0.1.jar &
nohup java -jar apiclient-1.0.0.jar &

6.2. centos 编辑jar包中的config.properties文件步骤

vim test.jar
/confi 回车
选择 config.properties 文件,再次回车进入文件进行编辑。
wq保存退出时,还要 q! 退出jar包。 

6.3. centos 查找某文本中的字符串命令

grep ‘要查找的文本’ 被查找的文件名
eg: grep ‘aaa’ filename.log

6.4. 在/home目录下查找以.txt结尾的文件名

find /home -name “.txt"
locate "
.txt”

6.5. 后台运行jar包

nohup java -Xms10240m -Xmx10240m -jar KKTask-0.0.1.jar &

6.6. Centos7:查看某个端口被哪个进程占用

[root@hmaster src]# netstat -anp | grep 3306
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
其中 1499 和 2048 就是分别就是mysqld 和 activemq 的 进程号PID,继续看下面。

6.7. Linux中怎么通过PID号找到对应的进程名及所在目录

参考
https://blog.csdn.net/yinni11/article/details/86064215

[root@hmaster src]# ps -aux |grep -v grep|grep 2048
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

或者
[root@hmaster 2048]# cd /proc/2048/
[root@hmaster 2048]# ls -ail
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.8. vi操作定位行号

方法1::
输入:n,代表跳转到第n行,如:79,就跳转到第79行。
方法2:
输入nG,代表跳转到第n行,如79G,就跳转到第79行。

6.9. chmod 777 文件名 命令详解

参考
https://blog.csdn.net/qq_42982742/article/details/103690119
https://www.cnblogs.com/hanxiaochuang666/archive/2019/07/01/11113602.html

【目录】
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用ls -l(或者ll)命令列出后每一行代表的含义
第1段: 文件属性字段:文件属性字段总共有10个字母组成,第一个字母表示文件类型,如果这个字母是一个减号”-”,则说明该文件是一个普通文件。字母”d”表示该文件是一个目录,字母”d”,是dirtectory(目录)的缩写。
注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息。
第2段:文件硬链接数或目录子目录数
第3段:文件拥有者
第4段:文件拥有者所在的组
第5段:文件文件大小(以字节为单位)
第6段:文件创建月份
第7段:文件创建日期
第8段:文件创建时间
第9段:文件名 (如果是一个符号链接,那么会有一个 “->”箭头符号,后面根一个它指向的文件)

最后举个详解案例:
drwxr-xr-x 1 62323 197609 0 4月 21 14:16 bin/
其中:

d:表示bin是目录
rwx:表示62323属主拥有的权限是可读(r),可写(w)和可执行(x)
r-x(5-7位):表示与62323这个属主在同一个组(197609)的用户的权限是可读(r)和可执行(x)
r-x(8-10位):表示其他用户拥有的权限是可读(r)和可执行(x)
1:文件硬链接数或目录子目录数为 1
62323:表示我笔记本电脑的一个用户(是我的qq号的前几位)
197609:表示62323这个用户所属的组group
0:表示文件大小是0字节
4月:表示创建月份是4月
21:创建日期是21日
14:16:表示创建时间是下午的14:16
bin/:表示的文件名称,这里指的是目录名称

【权限】
权限的计算从第二位字母开始,三个符号为一组合,其中-表示没有这个权限,那么先拿drwxr-xr-x简单解释一下:

d:这一位表示文件类型。d是目录文件,l是链接文件,-是普通文件,p是管道
rwx:这三位(2-4位)表示这个文件的属主拥有的权限,r是读,w是写,x是执行。这里表示这个属主同时拥有读、写、执行权限
r-x:这三位(5-7位)表示和这个文件属主所在同一个组的用户所具有的权限。这里表示的是有读和执行权限,没有写权限
r-x:这三位(8-10位)表示其他用户所具有的权限。这里表示的是有读和执行权限,没有写权限

那么根据上述得到的信息,chmod +x 与chmod 777究竟有啥区别呢?让我们先来了解一下这个:
u User,即文件或目录的拥有者;g Group,即文件或目录的所属群组;o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;a All,即全部的用户,包含拥有者,所属群组以及其他用户;
操作对象who可是下述字母中的任一个或者它们的组合:
  u 表示“用户(user)”,即文件或目录的所有者。
  g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
  o 表示“其他(others)用户”。
  在这里插入图片描述

对于chmod +x file 来说就是将file改为可执行状态,在linux因高亮语法,会让file文件显示绿色。对于灰色的文件来说,没有可执行的权限,这是若我们给它chmod +x后它将会变为可执行的绿色文件。

chmod 777的语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。

范例:
chmod a=rwx file 和chmod 777 file效果相同
chmod ug=rwx,o=x file和chmod 771 file效果相同
若用chmod 4755 filename可使此程式具有root的权限

6.10. 修改主机名

参考
https://www.cnblogs.com/mkl34367803/p/10010060.html
https://www.linuxidc.com/Linux/2018-03/151464.htm

在CentOS 6中,修改主机名方式很简单,临时修改主机名使用hostname命令,永久修改主机名直接写进文件/etc/sysconfig/network中即可。

但在CentOS 7中,主机名就没那么简单了,它涉及了一些弯弯绕绕。
在CentOS 7中,主机名分3类:static(静态主机名)、pretty(好看、易读的主机名)和transient(短暂临时的)。CentOS 7中和主机名有关的文件为/etc/hostname,它是在系统初始化的时候被读取的,并且内核根据它的内容设置transient主机名。

  1. hostname 命令 (临时有效,重启失效)
    [root@hmaster ~]# hostname
    hmaster # 当前主机名
    [root@hmaster ~]# hostname 135-hmaster # 修改
  2. 永久有效,重启有效

hostnamectl set-hostname NAME
[root@134-hmaster ~]# hostnamectl set-hostname 134-hmaster
或者修改 /etc/hostname 文件中的内容,2个方法是一样的。

查看
[root@134-hmaster ~]# hostnamectl
在这里插入图片描述

3.修改主机名和ip 的链接关系
vi /etc/sysconfig/network 文件centos6及之前有效,centos7已经失效。
vi /etc/hosts
在这里插入图片描述

保存退出,然后重启机器,这时候就可以通过hostname来访问这台机器的服务了。

7. 虚拟机常见问题

7.1. VirtualBox 不能加载vdi镜像解决方法,错误码 0x80BB0001

解决方法:

步骤1:
cd C:\Program Files\Oracle\VirtualBox

步骤2:
VBoxManage.exe internalcommands sethduuid “D:\tab\3_VirtualBox\4_CentOS7x64_134\CentOS7x64_134.vdi”

步骤3:
VBoxManage clonehd E:\Leopard.vdi E:\Leopard_bak.vdi

https://blog.csdn.net/m0_37268841/article/details/85292502

https://blog.csdn.net/u010993514/article/details/83188197
https://blog.csdn.net/qq_40087415/article/details/79367151

7.2. 解决CentOS 7 history命令不显示操作记录的时间和用户身份问题

参考
https://www.linuxidc.com/Linux/2017-01/139280.htm

解决该问题只需要在/etc/profile中添加如下变量即可:
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S whoami "
然后运行source /etc/profile命令即可

7.3. vi 操作发现交换文件问题

Q:现象如下图
在这里插入图片描述

A:
注意最后一行提示,删除交换文件按键盘 d,按d后直接进行编辑文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟空编程2016

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值