Linux 常用命令汇总(详细版)

Linux 文件系统

Linux 的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后再次目录下再创建其他的目录。

目录结构:

Linux 常用命令汇总(详细版)_第1张图片
以下是对这些目录的解释:

目录结构 含义
/root 该目录为系统管理员,也称作超级权限者的用户主目录
/bin Binary的缩写,这个目录存放着最经常使用的命令
/usr 非常重要的目录,用户很多应用程序和文件都放在这个目录下,类似与window下的program files 目录
/sbin 存放的是系统管理员使用的系统管理程序
/etc 存放系统或者安装的程序的配置文件,注册服务等
/tmp 存放一些临时文件
/lib linux的命令和系统启动,需要使用一些公共的依赖,放在lib中,类似我们开发的代码执行需要引入的jdk的jar
/var 存放系统日志和缓存日志的目录
/home 家目录,linux中每新建一个用户,会自动在home中为该用户分配一个文件夹
/dev 存放设备文件目录,比如声卡,磁盘,光驱等
/boot 存放的是启动linux使用的一些核心文件,包括一些连接文件以及镜像文件
/media Linux系统会自动识别一些设备,例如U盘、光驱等,识别后,Linux会把识别的设备挂载到这个目录下
/mnt 是为了让用户临时挂在别的文件系统的,我们可以将外部的存储挂载在/mnt上,然后进入该目录就可以查看里面的内容了

文件管理命令

ls - 查看文件列表

命令 说明
ls 查看当前目录下的文件列表
ls -a 显示全部包括隐藏文件
ls -h 以人类可读的方式显示文件的大小,如用 K、M、G 作单位
ls -l 显示文件和目录的详细资料
ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

cd - 切换目录

命令 说明
cd / 转到根目录
cd /home 比如进入 ‘/ home’ 目录’
cd … 返回上一级目录
cd …/… 返回上两级目录

pwd - 显示所在的工作路径

命令 说明
pwd 比如切换到 home目录,执行命令 pwd ,显示 /home路径

mkdir/touch - 新建文件夹及文件

命令 说明
mkdir test 创建一个叫做 ‘test’ 的目录’
mkdir test1 test2 同时创建两个目录
mkdir -p /tmp/test3 创建一个目录树
touch 创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。touch newfile 该命令创建一个名为newfile 的空白文件

rm - 删除文件

命令 说明
rm -f test 删除一个叫做 ‘test’ 的文件’
rmdir test 删除一个叫做 ‘test’ 的目录’
rm -rf test 删除一个叫做 ‘test’ 的目录并同时删除其内容
rm -rf test1 test2 同时删除两个目录及它们的内容

cp - 拷贝文件

命令 说明
cp test newtest 把 ‘test’ 文件拷贝到 ‘newtest’文件
cp –r test newtest 把 ‘test’ 文件夹拷贝到 ‘newtest’文件夹

mv - 移动文件或修改文件名

命令 说明
mv t.txt Document 把文件 t.txt 移动到目录 Document 中
mv ~/abc.txt /opt/123.txt 把目录中的 abc.txt 文件移动到 /opt 目录中,并把文件名修改成 123.txt 的命令

cat - 查看文本内容

命令 说明
cat abc.txt 查看 abc.txt 文本内容

less 和 more - 查看文本内容

less:可以按键盘上下方向键显示上下内容
more:不能通过上下方向键控制显示
less不必读整个文件,加载速度会比 more 更快
less 退出后 shell 不会留下刚显示的内容,而 more 退出后会在 shell 上留下刚显示的内容

less命令:

命令 说明
less abc.txt 查看 abc.txt 文本内容
上一行
下一行
G 第一页
g 最后一页
空格 下一页
q 推出
/关键字 搜索关键词

more命令:

命令 说明
more abc.txt 查看 abc.txt 文本内容

tail 查看文本内容

命令 说明
tail -n 5 abc.log 查看文件末尾 5 行内容
tail -f abl.log 实时查看文件最新信息
tail -f nohup.out grep “rumenz”

echo 显示输出内容

1、输出 hello world

[root@localhost test]# echo "hello\tworld"
hello\tworld
[root@localhost test]# echo -e "hello\tworld"
hello	world

2、颜色打印输出内容

命令:sh color.sh

可以把命令写进shell脚本在调用脚本执行,也可以直接执行命令。
color.sh 内容如下
echo -e "\033[35mHello World\033[0m"
echo -e "\033[46;37mHello World\033[0m"
echo "Hello World"

3、覆盖 log.txt 里面的内容

命令:echo Hello World > log.txt

[root@localhost test]# cat log.txt 
abcdefghigklmnopqrstuvwxyz
[root@localhost test]# echo Hello World > log.txt 
[root@localhost test]# cat log.txt 
Hello World

4、在 log.txt 追加内容

命令:echo Hello World2 >> log.txt

[root@localhost test]# cat log.txt 
Hello World
[root@localhost test]# echo Hello World2 >> log.txt 
[root@localhost test]# cat log.txt 
Hello World
Hello World2

find - 查找文件

命令 说明
find / -name test.txt 查找当前目录下名为 txt.sh 的文件
find / -name ‘*.txt’ 查找当前目录下后缀为 ‘.txt’ 的文件。
find /home/user1 -name *.txt 在目录 ‘/ home/user1’ 中查找带有’.txt’ 结尾的文件
find /etc -type f 查找 etc 目录下的所有文件
find /etc -type d 查找 etc 目录下的所有文件夹
find /usr/bin -type f -atime +100 查找在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 查找在10天内被创建或者修改过的文件
find /home -size 10M 查找 home 目录下等于 10M 的文件
find /home -size +10M 查找 home 目录下大于 10M 的文件
find / -mtime -3 查找 3 天内修改过的文件
find / -atime -3 查找 3 天内访问过的文件

grep - 文件内容查找

命令 说明
grep “abc” abc.txt 输出文件中包含 ‘abc’ 的行
grep -v “abc” abc.txt 输出文件中不包含 ‘abc’ 的行
grep -n “abc” abc.txt 输出文件中包含 ‘abc’ 的行及行号
grep -c “abc” abc.txt 输出文件中匹配 ‘abc’ 字符串的数量
grep -o “abc” abc.txt 只输出匹配的内容 ‘abc’
grep -w “abc” abc.txt 只匹配 ‘abc’ 这个单词的行

vi/vim - 编辑文本内容

命令 说明
vim abc.txt 执行命令打开文本内容,按 i 键进行内容编辑,修改完以后按 Esc 键退出编辑,接着按 Shift+:,这时候输入需要操作的命令并且回车,如下:
命令 说明
-------- -----
q 如果未修改,则退出
q! 取消修改并退出
wq! 保存修改

tar/zip - 压缩解压缩

命令 说明
tar -zcvf /home abc123.tar.gz abc.txt 123.txt 把 ‘home’ 目录中的 abc.txt 和 123.txt 文件压缩成 abc123.tar.gz 压缩包
tar -zxvf /home/abc123.tar.gz -C /opt 把 ‘home’ 目录中的 abc123.tar.gz 包解压到 /opt 目录下
zip -r test.zip /home/ 将 /home 下的所有文件进行压缩成 test.zip
unzip -d /opt/ test.zip 将 test.zip 解压到 /opt 目录下

系统管理

命令 说明
查看 IP ifconfig、ip a、ip addr
关机 shutdown now 或(shutdown -h:默认一分钟后关闭,shutdown -h 30:30分钟后关闭,shutdown -h now:立刻关闭,shutdown -c:取消关机)
重启 reboot 或 (shutdown -r:默认一分钟后重启虚拟机,shutdown -r 30:30分钟后重启,shutdown -r now:立即重启虚拟机)
清屏 clear
检查网络 ping,比如 ping www.baidu.com 或 ping 192.168.0…2
查看系统时间 date

rpm - 软件包管理器

该命令用于管理 Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过 RPM 进行安装、卸载及管理等操作。

命令 说明
rpm -ivh 软件包名 安装软件包并显示安装进度。
rpm -qa 查询已经安装哪些软件包
rpm -q 软件包名 查询指定软件包是否已经安装
rpm -uvh 软件包名 升级一个软件包
rpm -e 软件包名 删除指定软件包

yum - 基于 rpm 的软件包管理器

yum 基于 rpm 实现的,提供了除了 rpm 的安装软件、卸载软件等功能以外还有,自动查找、下载软件并自动处理软件的彼此之间的依赖关系,下载并安装依赖包。

命令 说明
yum list all 列出所有可以安装的软件包
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包名称 卸载软件
yum search 软件包名称 查找软件包

systemctl - 管理服务

例如:sshd network firewalld 等

命令 说明
systemctl start work.service 启动服务
systemctl restart work.service 重启服务
systemctl stop work.service 停止服务
systemctl reload work.service 重新加载配置文件(不终止服务)
systemctl status work.service 查看服务状态
systemctl enable work.service 开机自动启动
systemctl disable work.service 开机不自动启动
systemctl is-enabled work.service 查看特定服务是否为开机自动启动
systemctl list-unit-files --type=service 查看各个级别下服务的启动与禁用情况

查看内核版本

uname -r 

查看cpu

lscpu 或者 cat /proc/cpuinfo  命令

查改主机名

查:hostname,改:hostname myhost --关机失效

域名 ip 映射

所谓本地域名 IP 映射,是指在本地建立域名和 IP 之间的映射关系,无需通过域名解析服务器,直接在本地进行域名解析。在 Linux 系统中,是通过文件 /etc/hosts 描述域名到 IP 映射的,如下:

[root@centos7 ~]# vim /etc/hosts
192.168.199.8 www.hhh.com

免密登录

ssh 登录远程服务器,可以免去输入密码的麻烦。

1、生成公钥
首先查看本地有没有生成密钥,如果有的话,再次生成会影响前面已经设置好的,用下面这条命令就可以

cat ~/.ssh/id_rsa.pub

如果没有的话,输入下面的命令来在本机上生成公钥和私钥

ssh-keygen -t rsa

进入“.ssh”会生成以下几个文件

在这里插入图片描述

  • authorized_keys:存放远程免密登录的公钥,这个文件主要是允许哪个主机免密访问本机,就会把那个主机的公钥填到这个文件里面
  • id_rsa:生成的私钥文件
  • id_rsa.pub:生成的公钥文件
  • known_hosts:已知的主机公钥清单,如果希望 ssh 公钥生效需要满足两个条件:
    • .ssh目录的权限必须是700
    • .ssh/authorized_keys文件权限必须是600

2、把公钥复制到远程主机上

方式一:
通过 ssh-copy-id 的方式

ssh-copy-id -i ~/.ssh/id_rsa.pub root@远程服务器ip

方式二:
通过 scp 将内容写到对方的文件中

scp -p ~/.ssh/id_rsa.pub root@192.168.0.12:/root/.ssh/authorized_keys

远程拷贝

scp /home/administrator/test.txt root@192.168.0.12:/etc/squid
scp -r /home/administrator/test.txt root@192.168.0.12:/etc/squid
  • /home/administrator/ 本地文件的绝对路径
  • test.txt 要复制到服务器上的本地文件
  • root 通过 root 用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
  • 192.168.0.12 远程服务器的 ip 地址(也可以使用域名或机器名)
  • /etc/squid 将本地文件复制到位于远程服务器上的路径

你可能感兴趣的:(Linux,linux,网络,运维)