逍遥谷

记录日常的点点滴滴

0%

CentOS常用命令

软链接

创建软链接

1
ln -s 【目标目录】 【软链接地址】

【目标目录】指软链接指向的目标目录,【软链接地址】指“快捷键”文件名称,该文件是指被指令创建的。

删除软连接

1
rm -rf 【软链接地址】

上述指令中,软链接地址最后不能含有“/”,当含有“/”时,删除的是软链接目标目录下的资源,而不是软链接本身。

修改软连接

1
ln -snf 【新目标目录】 【软链接地址】

这里修改是指修改软链接的目标目录

修改主机名

临时方法

hostname 主机名 //只能临时修改主机名,当重启机器后,主机名称又变回来了。

1
hostname xxx

永久生效

永久修改主机名称,重启后能保持修改。

1
2
3
4
5
hostnamectl set-hostname xxx
//删除hostname
hostnamectl set-hostname ""
hostnamectl set-hostname "" --static
hostnamectl set-hostname "" --pretty

永久生效

修改配置文件/etc/hostname来实现主机名的修改。把该文件内容hostname name中的name替换成自己想要的主机名重启即可。

1
2
vim /etc/hostname
hostname xxx

安装基础服务

出现-bash: ***: command not found

安装telnet

1
2
3
yum list telnet*
yum install -y telnet-server
yum install -y telnet.*

安装wget

1
yum install -y wget

安装rzsz

1
yum install -y lrzsz

CentOS7硬盘分区,删除分区,格式化分区硬盘,支持4T硬盘,fdisk,parted简单用法

查看分区表状态

先查看是否有磁盘没有分区

1
fdisk -l

用fdisk对/dev/sdb进行分区(注意:超过2T硬盘要使用Parted分区)

1
fdisk /dev/sdb

输入m,或者help可以查看命令操作

输入p 可查看当前硬盘分区状态

输入n新建一个分区,输入p 建立分区,输入分区编号 1

然后会让你设置开始扇区,我填的是开始扇区2048,结束,20480

最后输入w,回车进行保存,分的区才会生效(切记!)

退出:quit

Parted分区

将磁盘上原有的分区删除掉

进入:parted /dev/sdb

查看:(parted) p

删除:(parted) rm 1

​ (parted) rm 2

将磁盘格式变成gpt格式(因为parted只能针对gpt格式的磁盘进行操作)

转换:(parted) mklabel gpt

设置单位:(parted) unit MB(GB, TB)

分区:(parted) mkpart primary 1 -1

查看:(parted) p

退出:(parted) quit(parted分区自动保存,不用手动保存)

格式化已经分好的区

1
mkfs.xfs -f /dev/sdb1

挂载

目标:分区/dev/sdb1挂载至/data目录。

创建目录,如果目录中存在内容,请先备份,在挂载完成后重新复制回来。

1
2
3
4
5
6
#创建目录
mkdir /data
#挂载目录
mount -t xfs /dev/sdb1 /data
#查看挂载情况
df -Th

开机自动挂载

1
echo "/dev/sdb1 /data xfs defaults 0 0" >> /etc/fstab

Linux文件系统

  • /var:包含在正常操作中被改变的文件、假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等。
  • /home:包含用户的文件:参数设置文件、个性化文件、文档、数据、EMALL、缓存数据等,每增加一个用户,系统就会根据其用户名在 home 目录下新建和其他用户同名的文件夹,用于保存其用户配置。
  • /proc:包含虚幻的文件,他们实际上并不存在于磁盘上,也不占用任何空间(用 ls-l 可以显示它们的大小)当查看这些文件时,实际上是在访问存在内存中的信息,这些信息用于访问系统。
  • /bin:包含系统启动时需要的执行文件(二进制),这些文件可以被普通用户使用。
  • /etc:为操作系统的配置文件目录(防火墙、启动项)
  • /root:为系统管理员(也叫超级用户或根用户)的 Home 目录。
  • /dev:为设备目录,Linux 下设备被当成文件,这样一来硬件被抽象化、便于读写、网络共享以及需要临时装载到文件系统中,正常情况下,设备会有一个独立的子目录,这些设备的内容会出现在独立的子目录下。

Linux命令操作

  • 查看当前目录命令:pwd

  • 打开文件夹命令:cd

    • 打开指定文件夹:cd [目录名称]
    • 打开当前用户的根目录:cd ~
    • 返回上级目录:cd …
    • 返回进入目录:cd -
    • 打开根目录:cd /
  • 浏览目录下的文件列表命令:ls

    • 以列的方式查看当前目录下的文件列表:ls -l
    • 查看当前目录下所有的文件(包括隐藏文件):ls -a
    • 以列表的方式查看当前目录下的所有文件:ls -la
  • 创建文件目录命令:mkdir

    • 新建文件目录:mkdir 文件夹名称
    • 递归新建多级目录:mkdir -p 文件夹名称
    • 例如在用户目录下新建 test 目录,命令这样写:mkdir -p test/test1/test2/test3 递归新建多级目录的写法
  • 删除文件目录命令:rmkdir

    • 删除指定目录:rmkdir 目录名称

    • 递归删除指定目录及中间目录:rmdir -p 目录名称 这里没有写错,没有字母 k

  • 删除文件或者目录命令:rm

    • 常用命令:rm -rf [目录或文件] rm -ri [目录或文件]
    • 强制删除文件或目录:rm -rf 目录或者文件
    • 在删除前询问是否确认删除:rm -ri 目录或文件

因为强制删除的后果不太好,一般不建议使用 rm -rf 进行文件删除

rm 命令中不跟 r 参数,无法删除目录,只能删除文件

  • 复制文件或目录命令:cp

    • 递归复制目录1下的所有的文件和文件夹到目录2:cp -r [目录1][目录2]
    • 执行复制操作时覆盖原有目录前询问用户:cp -ri [目录1][目录2]
  • 移动文件、修改文件名命令:mv

    • 将文件夹1名称更改为文件夹2:mv 文件1 文件2 (给文件更名)
    • 将目录1的文件移动到目录2:mv 目录2 目录2 (将目录1的文件移动到目录2)
  • 创建文件命令:touch

    • touch 文件名称
  • 查看、编辑文件命令:vi

    • vi 命令为 UNIX 操作系统或者类 UNIX 操作系统都有具有的功能强大的文件编辑命令,用户输入 vi ++ 文件名,便可以进入 vi 模式进行文件内容的查看和编辑,如果文件已经存在,则直接打开文件,如果文件不存在,则系统将打开一个全新的空文件。

vi的三种模式:

  1. 命令模式

当用户使用 vi 命令打开文件后,则进入命令模式,用户可以输入命令来执行各种功能。

取值 说明
L 光标移至屏幕最后一行
space 光标右移一个字符
backspace 光标左移一个字符
N+ 光标向上移动N行
n+ 光标向下移n行
  1. 输入模式

如果用户要对文件做修改,则可以使用下面几种命令,进入输入模式,用户进入输入模式之后,可以任意修改文件,除了 Esc 键外,用户输入的任何字符都会被作为内容写入文件中,用户输入 Esc 可以对文件进行相关操作。

取值 说明
a、i、r、o、A、I、R、O 编辑模式
dd 删除当前光标
ndd 删除n行
  1. 末行模式

如果用户完成编辑命令,则可以按照 esc + “:” 进入末行模式,用户可以对文件内容继续进行搜索,也可以输入 “:wq!” 进行文件保存并退出,或者输入 “:q!” 强制退出文件编辑。

取值 说明
:wq! 保存并退出
:q! 强制退出
:s/字符串 1/字符串 2 将文件中出现的字符串1替换为字符串2
:set nu 显示所有行号
  • 查看、编辑文件命令:cat

    • 显示一个小的文件的内容:cat 文件名称
    • 创建并打开一个新的文件:cat > 文件名称
  • 查看文件开头内容命令:head

    • head [参数] [文件名]

例如,使用 head 命令显示某个文件开始的 n 行数据:head -n 文件名称

取值 说明
-n <行数>显示的行数
默认 默认显示文件前10行数据
  • 查看文件结尾内容命令:tail

    • 动态加载某个文件的内容(常用于查看日志文件):tail -f 文件名称
    • 展示文件最后几行的数据:tail -n 行数文件名称

Linux用户操作命令

  • 切换用户命令:su

    • su [用户名] 或者 su -[用户名]
    • su[用户名]su -[用户名]都可以切换用户,前者类似于临时切换用户,当使用该命令进行切换新用户时,用户配置仍然沿用原来的用户配置,如环境变量、系统变量等。而后者进行切换用户时,环境变量、系统设置全部切换成新用户的用户配置。
  • 查看当前登陆用户命令:whoami

  • 查看当前用户所属分组命令:groups

  • 查看当前用户 UID 和 GID 命令:id

  • 添加新用户命令:useradd

取值 说明
-c 代表comment指定一段注释性描述
-d 指定用户主目录
-g 指定用户所属的用户组
-G 指定用户所属的附加组
-u 指定用户的用户号
缺省 直接添加用户

在 Linux 操作系统中添加用户:useradd 用户名

在 Linux 操作系统中添加用户并指定用户 UID:useradd -u 指定的 UID 用户名

  • **修改用户密码命令:passwd**例如:修改当前用户名为 sang 的用户密码:passwd sang

在添加用户之后,只有为其设置密码,用户才能登陆

取值 说明
-d 删除密码,仅有系统管理员才能使用
-f 强制执行
-k 设置只有密码过期后才能更新
-l 锁着密码
-s 列出相关信息,仅有系统管理员才能使用
-u 解开已上锁的账号
  • 删除用户命令:userdel

    • 删除用户:userdel 用户名
    • 删除用户并同时删除其登陆信息:userdel -r 用户名
取值 说明
-r 删除用户以及其登录日志等信息
-f 强制删除用户,即使用户已经登录
缺省 直接删除用户
  • 修改用户信息命令:usermod

    • 语法:usermod [选项] [参数] [用户名]
    • 修改用户登录名:usermod -l 新用户名 旧用户名
    • 修改用户所属分组:usermod -g 新组名称 用户名
取值 说明
-c 修改用户账号的备注文字
-d 修改用户登录时的目录
-e 修改账号的有效期
-f 修改密码过期后多少天关闭账号
-g 修改用户所属的群组
-G 修改用户所属附加组
-l 修改用户账号名称
-L 锁定用户密码,使密码无效
-u 修改用户id
-U 解除密码锁定
  • 添加用户组命令:groupadd

    • 语法:groupadd [选项] [组名称]

    • 修改用户登陆名:groupadd 组名

    • 修改用户所属分组:groupadd -g 组 GID 组名

取值 说明
-g 指定工作组的id
-r 创建系统工作组
-o 允许添加组ID不唯一的工作组
缺省 添加用户分组

Linux权限操作

Linux 操作系统为文件定义了读、写、执行三种权限,不同的用户或者用户组可以具有不同的权限,系统采用 “r”、“w”、“x” 来分别表示文件的读、写、执行权限。使用 ls -l 命令可以查看到用户在当前目录或者文件的操作权限。

1
drwxr -xr -x. 2 root root 4096 Sep 23 2011 bin

从左至右分别表示如下含义:

  • d:代表 bin 数目目录而不是文件
  • rwx:代表拥有者具有读、写、执行的权限
  • r -x:代表同组用户具有读、执行的权限,但是没有写权限
  • r -x:代表其他组用户具有读、执行权限,没有写权限

常用的变更权限命令为:chmod

语法:chmod [选项] [参数]

取值 说明
-c 显示指令执行过程,但只返回更改的部分
-f 不显示错误信息
-r 递归授权
-v 显示指令执行过程

chmod 的参数可以分为两种,分别是权限模式和数字模式。

  1. 权限模式

权限模式使用 u、g、o 分别代表拥有者、同组用户、其他组用户,使用 + 和一代表赋予和收回权限,使用 r、w、x 代表读、写、执行权限。

例如:将文件01的执行权限给当前用户,写权限赋给用户所在的用户组和其他用户。

1
chmod -r U+X,G+W F01

例如:将文件 f01 的读、写、执行的权限赋给当前用户,将读、写权限赋给用户所在的用户组和其他用户。

1
chmod -r u=rwx,g=rw,o=rw f01
  1. 数字模式

为了简化授权步骤,用户也可以采用数字模式进行授权,使用二进制的形式代表 r、w、x 三种权限,如 101 (5) =r -x111 (7) =rwx100 (3) =r- -

例如:将文件 f01 的读、写、执行的权限赋给当前用户,将读和执行权限赋给用户组、将写和执行权限赋给其他用户。

1
chmod 753 -r f01

例如:将文件 f01 的读、写、执行权限赋给所有用户。

1
chmod 777 -r f01

Linux进程管理

在 Linux 的应用中,我们需要对进程进行管理,如查看某个进程是否启动、以及在必要的时刻,杀掉某个线程。

  • 查看进程命令:ps

ps 命令是 Linux 操作系统中查看进程的命令,通过 ps 命令我们可以查看 Linux 操作系统中正在运行的过程,并可以获得进程的 PID(进程的唯一标识),通过 PID 可以对进程进行相应的管理。

1
ps -ef | grep [进程关键字]

根据进程关键词查看进程命令显示如下,显示的进程列表中第一列表示开启进程的用户,第二列表示进程唯一标识 PID,第三列表示父进程 PPID,第四列表示 CPU 占用资源比列,最后一列表示进程所执行程序的具体位置。

1
2
3
4
[root@localhost ~]$ ps -ef|grep sshd
root 1829 1 0 May24 ? 00:00:00 /usr/sbin/sshd
shang 24166 24100 0 20:17 pts/2 00:00:00 grep sshd
[root@localhost ~]$
  • 杀掉进程命令:kill

当系统中有进程进入死循环,或者需要被关闭时,我们可以使用 kill 命令对其关闭。

kill -9 [PID] PID 为 Linux 操作系统中进程的标识

Linux其他常用命令大全

  • 清屏命令:clear
  • 查询命令详细参数命令:man
  • 挂载命令:mnt
  • 远程连接服务 SSH 相关命令:
  • 启动 SSH 服务命令:service sshd start
  • 重启 SSH 服务命令:service sshd restart
  • 关闭 SSH 服务命令:service sshd stop

Linux 大多数情况下都是远程服务器,开发者通过远程工具连接 Linux ,启动了某个项目的 JAR,一旦窗口关闭,JAR 也就停止运行了,因此一般通过如下命令启动 JAR:nohup java -jar jar-0.0.1-SNAPSHOT.jar &

这里多了 nohup ,表示当前窗口关闭时服务不挂起,继续在后台运行

Linux系统软件安装

常用软件安装

Linux 下常用的软件安装方式有3种。

  • tar 安装:如果开发商提供的是 tar、tar.gz、tar.bz 格式的包(其中 tar 格式的为打包后没有压缩的包,gz 结尾的是按照 gzip 打包并压缩的软件包,tar.bz 是按照二进制方式打包并压缩的软件包),可以采用 tar 包安装,tar 安装方式本质上是解压软件开发商提供的软件包,之后在通过相应配置,完成软件的安装。
  • rpm 安装:rpm 安装方式是 redhat Linux 系列推出的一个软件包管理器,类似于 Windows 下的 exe 安装程序,可以直接使用 rpm 命令安装。
  • yum 安装:yum 安装本质上依然是 rpm 包安装,和 rpm 安装方式的不同之处是用户可以通过 yum 参数,指定安装的软件包,系统将自动从互联网上下载相应的 rpm 软件包。而无须用户关心软件包的下载地址,以及软件包的依赖关系。

软件安装常用命令

  • 解压压缩命令:tar
  • 语法:tar [选项] [压缩包]
  • 解压 gzip 包:tar -zxvf [包名]
  • 解压 bz 包:tar -jxvf [包名]
  • 解压普通包:tar -xvf [包名]
取值 说明
-c 指定特定目录压缩
-x 从备份文件中还原文件
-t 列出备份文件的内容
-r 添加文件到已经压缩的文件
-z 有gzip属性的(后缀是gz的)
-j 有bz2属性的(后缀是bz的)
-Z 有cpmpress属性的
-v 显示所有进程
-O 将文件解压到标准输出
-f 使用档案名称

安装卸载命令:rpm

  • 语法:rpm [选项] [软件包]
  • 查询是否已经安装了某软件包:rpm -qa|grep [软件包关键词]
  • 卸载已经安装的软件包:rpm -e 软件包全名
  • 安装软件包并查看进度:rpm -ivh 软件包路径
取值 说明
-ivh 安装显示安装进度
-Uvh 升级软件包
-qpl 列出rpm软件包内的文件信息
-qpi 列出rpm软件包的描述信息
-qf 查找指定文件属于哪个rpm软件包
-Va 校验所有的rpm软件包,查找丢失的文件
-e 删除包
-qa 查找已经安装的rpm包

Linux操作系统优化

防火墙-firewalld

  • 启动防火墙
1
systemctl start firewalld
  • 重启防火墙
1
systemctl restart firewalld
  • 关闭防火墙
1
systemctl stop firewalld
  • 查看防火墙的状态
1
systemctl status firewalld
  • 设置开机启动
1
systemctl enable firewalld
  • 设置开机不启动
1
systemctl disable firewalld
  • 查看防火墙服务是否设置开机启动
1
systemctl is-enabled firewalld

关闭-Selinux

  • 查看Selinux
1
2
3
[root@localhost ~]$ sestatus
或者
[root@localhost ~]$ getenforce
  • 临时关闭
1
[root@localhost ~]$ setenforce 0
  • 永久关闭
1
2
3
4
5
6
#编辑配置文件
vim /etc/sysconfig/selinux
#修改为以下配置:
SELINUX=disabled
#重复服务器生效
reboot

关闭透明大页-THP

  • 查看透明大页情况
1
2
cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled
  • 关闭透明大页
1
2
3
4
5
6
7
8
9
10
[root@localhost ~]$ vim /etc/rc.d/rc.local
#添加如下配置
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
#保存文件
:wq
  • 保存退出,然后赋予rc.local文件的执行权限
1
[root@localhost ~]$ chmod +x /etc/rc.d/rc.local
  • 重启服务器生效
1
[root@localhost ~]$ reboot

修改文件句柄数-open files

  • 查看
1
2
ulimit -a
open files (-n) 1024
  • 临时修改
1
2
ulimit -n 4096
open files (-n) 4096
  • 永久修改
1
2
3
4
5
6
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* 代表所有用户,如果指定具体的用户,把*换成具体的工具名称
zhangsan soft nofile 65536
zhangsan hard nofile 65536
  • 重新连接生效
1
2
exit
reconnect
  • 查看
1
2
ulimit -a
open files (-n) 65536

修改进程数-max user processes

  • 查看
1
2
ulimit -a
max user processes (-u) 15656
  • 临时修改
1
2
ulimit -u 20000
max user processes (-u) 20000
  • 永久修改
1
2
3
4
5
6
vim /etc/security/limits.conf
* soft nproc 65536
* hard nproc 65536
* 代表所有用户,如果指定具体的用户,把*换成具体的工具名称
zhangsan soft nproc 65536
zhangsan hard nproc 65536
  • 重新连接生效
1
2
exit
reconnect
  • 查看
1
2
ulimit -a
max user processes (-u) 65536

修改-vm.max_map_count

max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量

  • 查看当前值
1
2
sysctl -a | grep vm.max_map_count
vm.max_map_count = 65530
  • 临时修改
1
2
sysctl -w vm.max_map_count=200000
vm.max_map_count = 200000
  • 永久修改
1
2
vim /etc/sysctl.conf
vm.max_map_count=262144
  • 生效
1
2
sysctl -p
vm.max_map_count = 262144

修改-fs.file-max

设置系统所有进程一共可以打开的文件数量 。同时一些程序可以通过setrlimit调用,设置每个进程的限制。如果得到大量使用完文件句柄的错误信息,是应该增加这个值。

  • 查看系统当前值
1
2
sysctl -a | grep fs.file-max
fs.file-max = 396183
  • 临时修改
1
sysctl -w fs.file-max=6553560
  • 永久修改
1
2
vim /etc/sysctl.conf
fs.file-max=6553560
  • 生效
1
2
sysctl -p
fs.file-max = 6553560

【Linux】centos创建用户以及赋予sudo权限

创建用户

用户名为:test

1
adduser test

为该用户创建密码

1
passwd test

输入密码

授权

个人用户的权限只可以在本home下有完整权限,其他目录要看别人授权。而经常需要root用户的权限,这时候sudo可以化身为root来操作。
新创建的用户并不能使用sudo命令,需要给他添加授权。
sudo命令的授权管理是在sudoers文件里的。可以看看sudoers:

1
[root@localhost ~]$ sudoers

找到这个文件(/etc/sudoers)位置之后,查看权限:

1
ls -l /etc/sudoers

只有读权限,将此文件增加写权限:

1
2
chmod 640 /etc/sudoers
ls -l /etc/sudoers

修改/etc/sudoers文件:添加一个新用户

找到 root ALL=(ALL) ALL在后面添加一行

test ALL=(ALL) ALL

注:可以在sudoers添加下面四行中的任意一条

1
2
3
4
5
6
7
8
9
youuser    ALL=(ALL)      ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL

第一行: 允许用户youuser执行sudo命令(需要输入密码).
第二行: 允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行: 允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行: 允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.

保存,退出后,将文件权限改回去:

1
chmod 440 /etc/sudoers

这样就可以使用新用户登录,并使用sudo权限了

删除用户命令

1
2
3
userdel -r test
#测试删除是否成功
su test

CentOS7集群配置免密登录

分别修改三台机器的hosts,配置主机影射关系

1
vim /etc/hosts

文件中输入以下内容:ip hostname

1
2
3
192.168.10.131 node1 node1
192.168.10.132 node2 node2
192.168.10.133 node3 node3

配置三台虚拟机免密登录

切换到用户根目录

1
cd ~

生成公钥和私钥,分别在三台机器执行命令,执行命令后直接三次回车

1
ssh-keygen -t rsa

在用户根目录下.ssh目录中生成了两个文件,id_rsa(私钥)、id_rsa.pub(公钥)

1
cd ~/.ssh

将公钥复制到同一台机器,分别在三台机器执行以下命令

1
2
3
4
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
#分别输入密码

验证免密是否成功

远程执行Linux命令

执行简单的命令

1
ssh root@host "df -Th"

一次执行多条命令,使用分号把不同的命令隔起来就OK了

1
ssh root@host "df -Th;pwd"

添加-t参数后,ssh会保持登录状态,直到退出需要交互的命令。

1
ssh -t root@host "df -Th"

保存远程执行命令结果

赋值的方式

1
result=`ssh root@host "df -Th"`

追加到文件

1
ssh root@host "df -Th" >> ./log

执行本地脚本

本地创建一个脚本文件 test.sh

然后执行命令:

1
ssh root@host < test.sh

通过重定向stdin,本地脚本test.sh在远程服务器上被执行。

为脚本test.sh 传递一个参数,执行命令

1
2
ssh root@host < test.sh helloworld
ssh root@host < "test.sh helloworld"

显示了执行的结果:方法都无法为脚本传递参数。

想要在这种情况下(远程执行本地脚本)执行带有参数的脚本,需为bash指定-s参数:

1
ssh root@host 'bash -s' < test.sh helloword

执行远程服务器上的脚本

1
2
3
4
#执行命令
ssh root@host "/home/test.sh"
#执行带参数命令
ssh root@host /home/test.sh helloworld

解压缩

tar

-c 建立一个压缩文件的参数指令(相当于create )

-x 解压缩一个文件的参数指令

-z 是否同时具有gzip属性,所以也要用gzip属性来解压

-f 使用档名,注意在f 后面要立即接档名

-v 压缩过程显示文档

1
2
3
4
5
6
7
8
9
10
#把根目录下的etc文件压缩在当前文件夹,并命名为ect.tar
tar -cvf ./ect.tar /etc
#把根目录下的etc文件压缩在当前文件夹,并命名为ect.tar.gz
tar -zcvf ./ect.tar.gz /etc
#解压ect.tar到当前目录
tar -xvf ect.tar
#解压ect.tar.gz到当前目录
tar -zxvf ect.tar.gz
#解压ect.tar到指定目录
tar -xvf ect.tar -C 路径

zip

1
2
3
4
5
6
#把根目录下的etc文件压缩在当前文件夹,并命名为ect.zip
zip -r etc.zip /etc
#解压ect.zip到当前目录
unzip etc.zip
#解压ect.zip到指定目录,不提示的情况下
unzip -o -d 指定目录 etc.zip

端口占用查询

1
2
3
4
5
6
7
8
9
lsof -i:端口号
netstat -lntpu|grep 端口号
netstat -tunlp用于显示tcp,udp的端口和进程等相关情况
命令里的t,u,n,l,p均有不同含义:
-t 仅显示和tcp相关的
-u 仅显示和udp相关的
-n 不限时别名,能显示数字的全部转换为数字
-l 仅显示出于Listen(监听)状态的
-p 显示建立

创建指定大小的文件

1
2
3
4
#创建一个20M,文件名为test
fallocate -l 20M test
#创建50个1M的文件
dd if=/dev/zero of=filename bs=1M count=50

查找文件命令find

find 目录 +定义类型 + f/d(文件或者目录)+ 行为(name,size等)+其他条件

find ./ -type f -size +10M :f表示文件类型,“+”表示大于,“-”表示小于,命令意思为,找到当下目录下及其所有子目录,大/小于10M的文件(M要大写)

find ./ -type d -empty|xargs rm -rf 删除当前路径下,所有为空的目录

find ./ -mtime -3 :找到3天内的文件

find ./ -mtime +3 :找到3天以前的文件

find ./ -name ‘test‘ :查找包含test的文件

find .|xargs grep abc :找到包含“abc”内容的文件

查看文件里面内容

cat passwd 查看文件的内容

cat -n passwd 显示行号

tail -200 日志文件 ,查看日志文件后200行

tail -f 日志文件 ,查看动态日志边操作,边看日志文件

head -200 前200行

head -200 access_log|cat -n 查看前200后,并且显示行号

more,less 分页查看文件的内容

查看CPU核数

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

1
2
3
4
5
6
7
8
9
10
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l


# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq


# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l