Linux——(1)基本命令

举报
小白弟弟 发表于 2021/04/30 23:25:57 2021/04/30
【摘要】 linux学习入门

其他文章:

Linux——(1)基本命令
Linux——(2)文件系统、系统操作、文本操作命令、文件压缩与打包

1 基本命令

1.1 命令入门

1.1.1 命令提示符详解

在这里插入图片描述
用户名@主机名 当前目录 #系统权限 $普通权限

1.1.2 命令格式

命令 选项 参数 (三者之间要有空格,区分大小写)
command [-options] [args]
[args]:参数(多个参数之间用空格分隔)
案例演示
在这里插入图片描述在这里插入图片描述

1.2 获取命令的帮助

  1. 查手册
  2. man 命令
  3. 命令 --help
  4. 搜索引擎

1.2.1 查手册&搜索引擎

手册见《参考手册&资料》
搜索:必应 www.bing.com、谷歌/百度等

1.2.2 man

1.2.2.1 man 安装

当前虚拟机中不能直接使用 man,默认是没有安装的,不识别 man 命令。
在这里插入图片描述
所以需要安装,安装 man 和 man-pages 手册,查看命令的帮助信息

yum install man man-pages -y

在这里插入图片描述

man ls

在这里插入图片描述
q 退出命令查看

看到的全是英文,是不是很酸爽,慢慢多看看就好了。如果你英语烂到完全看不懂,那我再教你一招,汉化 man提示信息。

要想汉化 man 提示信息,系统中需要安装 man-pages-zh-CN 软件包。默认情况下, 系统自带的 yum 源不包含 man-pages-zh-CN。
在这里插入图片描述
默认的源存放目录:
在这里插入图片描述
所以下载后的第三方 yum 源 epel 也保存到该目录下,使用 yum 命令时会去该目录下 解析后缀名为 repo 的文件。
在这里插入图片描述

wget 不能使用,需要先安装,安装 wget,否则无法通过该命令进行下载。

[root@node1 ~]# yum install wget -y 

然后将 epel 的源放到本地,然后清除 yum 本地缓存,重新生成缓存。
在这里插入图片描述
是不是可以使用了呢,相信你已经迫不及待的想要测试一把了。

[root@node1 ~]# man ls

发现还是英文,怎么回事? 这是因为虽然你安装了 man 的中文包,但是系统的语言还是英文环境,

 [root@node1 ~]# echo $LANG 
 结果:en_US.UTF-8 

所以需要修改系统的语言环境。

[root@node1 ~]# LANG=zh_CN.UTF-8 
[root@node1 ~]# echo $LANG 
 结果:zh_CN.UTF-8

然后再次测试便有中文信息了。
但是这样修改这有效到断开连接,或者下次重启系统。如何才能长期有效呢?

 [root@node1 ~]# vim /etc/sysconfig/i18n

1.2.2.2 man 的使用

 enter		向下一行 
 空格按页向下翻
 b		向上翻页 
 p		直接翻到首页
查找按	/要查找的内容
查找	下一个/上一个:按 n/N; 
退出按 q 

扩展内容:
man

  • 1 用户命令(/bin,/usr/bin,/usr/local/bin)
  • 2 系统调用
  • 3 库函数
  • 4 特殊文件(设备文件)
  • 5 文件格式(配置文件的语法)
  • 6 游戏
  • 7 杂项(Miscellaneous)
  • 8 管理命令(/sbin,/usr/sbin,/usr/local/sbin)
  • 指定查看某种帮助:
[root@node1 ~]# man 2 read 

在这里插入图片描述

[root@node1 ~]# man read

在这里插入图片描述

1.2.3 命令 --help

[root@node1 ~]# mv --help 

在这里插入图片描述

1.3 echo

[root@node1 ~]# help echo

在这里插入图片描述

echo -n 表示不要另起新行

[root@node1 ~]# echo "hello world" 
hello world 
[root@node1 ~]# echo -n "hello world" 
hello world

-e 表示解释逃逸字符

[root@node1 ~]# echo -e "hello \nworld" 
hello world 
[root@node1 ~]# echo "hello \nworld" 
hello \nworld 

1.4 环境变量:PATH

当在 shell 中执行命令的时候,默认到 PATH 指定的路径中查找可执行文件。
如果在 PATH 中的多个目录都包含该可执行文件,则执行最先找到的。

 [root@node1 ~]# echo $PATH
 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 

如果找不到,这提示命令不识别。

1.5 ls

ls 命令用于列出目录内容

ls

添加-l 以长格式输出,列出根目录下内容的详细列表

ls -l 

也可以后面跟多个目录,列出多个目录的内容

ls / /usr 

也可以通过命令的别名列出详细列表

ll
ls -a 
ls -a -l 
ls -al

1.6 pwd

打印当前工作目录路径

pwd 

1.7 cd

cd 用于更改 shell 工作目录,也就是切换目录 change directory cd

cd /etc 

如果 cd 后什么都不写,表示直接回当前用户家目录

cd
cd /etc 

cd 后跟波浪线,也表示回用户家目录

cd ~ 

cd 后也可以跟减号(-)用以表示回到最后一次切换之前的目录,多次使用减号在最近两个目录之间切换

cd /etc/sysconfig/network-scritps
cd - 

root 用户可以直接通过绝对路径进到普通用户的家目录

cd /home/god 
cd ..
ll

也可以直接跟波浪线用户名表示直接进入到某个用户的家目录

 cd ~zhz到用户 zhz家中去,root 不受限制

1.8 mkdir

mkdir 用于创建目录

mkdir abc 
mkdir a1 a2 a3 

如果直接创建多层目录,则报错,因为默认只能创建最后一级目录

mkdir a/b/c 

可以添加-p 选项,用以创建多层目录,因为系统发现某一级目录不存在的时候创建父目录

mkdir -p a/b/c 

也可以在 mkdir 后跟多个目录,用于一次性创建多个目录

mkdir ./abc/1dir ./abc/2dir ./abc/3dir 

但是可以使用大括号高效创建相似的目录

mkdir ./abc/{x,y,z}dir 
mkdir ./abc/{x..z}dir 

1.9 rm

rm 用于删除文件
直接删除,需要确认 yes

rm file 

在这里插入图片描述

添加-f 选项可以不用确认强制删除

rm -f file

如果 rm 的参数是目录,则会提示需要迭代删除而不能成功

rm adir 

在这里插入图片描述
此时可以添加-r 参数表示迭代删除

rm -r dira 

也可以使用-rf 选项,迭代强制删除某个文件或目录,此命令慎用。

rm -rf dira 

尤其是

!!!! 	rm -rf / 

1.10 cp

• cp 拷贝

  • cp 文件… 目标目录 拷贝文件…到目标目录,可以同时拷贝多个文件,文件名之间用空格隔开
    在这里插入图片描述
  • cp -r 目录 目标目录
    在这里插入图片描述
    在这里插入图片描述

1.11 mv

mv 用于移动或重命名文件

  • 移动文件/目录 #mv 源文件/[源文件 1 源文件 2] 目标
    在这里插入图片描述
  • Linux 中没有专门改名的命令,兼职改名工作:
    在这里插入图片描述

1.12 ln

用于创建硬链接或软链接

ln

可以使用 ll -i 选项让 ll 打印文件的 inode 信息

[root@node1 ~]# cp /etc/profile ./ 
[root@node1 ~]# ll –i 

创建硬链接

[root@node1 ~]# ln profile ln1 

创建软链接:让 ln2 指向 profile, 给 profile 创建软连接,相当于 windows 中的快捷方式

[root@node1 ~]# ln -s profile ln2 

再次打印 inode 信息查看

[root@node1 ~]# ll -i

在这里插入图片描述

如果两个文件 inode 一样,表示两个文件(ln1 和 profile)实际上是同一个文件, 硬连接。如果 inode 不一样,但是有 ln2->profile,表示 ln2 是 profile 的软链接。
注意:ln1、ln2 都不能提前创建,或是已经存在的文件,否则报错。

 ln: creating symbolic link `ln1': File exists 

软连接删除不会删除源文件
硬链接删除后如果源文件没有硬链接,则文件被删除
如何在不使用 mv 的情况下移动文件?可以操作硬连接

1.13 ps

可以通过命令查看系统内进程信息

ps -ef 

查看磁盘使用情况
在这里插入图片描述
• 进程查看命令

  • ps(process status) : 将某个时间点的程序运作情况截取下来
  • 选项和参数
  • a :和输入终端(terminal)关联的所有 process,通常与 x 一起使用, 列出完整信息。
  • x :后台进程,通常与 a 这个参数一起使用,可列出较完整信息
  • u :有效使用者 (effective user) 相关的 process 

• 常用组合

  • ps aux 观察系统所有的程序数据 (常用)
[root@node1 /]# ps aux

在这里插入图片描述

[root@node1 /]# ps au

在这里插入图片描述
• 以下为各选项的含义

  • USER:该 process 属于那个使用者
  • PID :该 process 的程序标识符。
  • %CPU:该 process 使用掉的 CPU 资源百分比;
  • %MEM:该 process 所占用的物理内存百分比;
  • VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
  • RSS :该 process 占用的物理的内存量 (Kbytes)
  • TTY :该 process 是在那个终端机上面运作,若与终端机无关则显示 ?, 另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络 连接进主机的程序。
  • STAT:该进程目前的状态,状态显示与 ps -l 的 S 旗标相同 (R/S/D/T/Z)
  • START:该 process 被触发启动的时间;
  • TIME :该 process 实际使用 CPU 运作的时间。
  • COMMAND:该程序的实际命令为何?

进入到/usr 目录;usr 不是用户的意思,而是 unix software resources 的简写

cd /usr 

查看内容

ll

1.14 test 命令

计算 3 > 2 的结果,打印返回值,计算 3 < 2 的结果,打印返回值。
echo $? 打印上一行命令的执行结果
在这里插入图片描述
在这里插入图片描述
成立返回 0(true),不成立返回 1(false)
在这里插入图片描述
[]和内容之间一定要有空格,否则抛错。

下面是本人的公众号:(有兴趣可以扫一下,文章会同步过去)
在这里插入图片描述

我是小白弟弟,一个在互联网行业的小白,立志成为一名架构师
https://blog.csdn.net/zhouhengzhe?t=1

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。