Linux命令手册

简介

Multics(大而全)项目失败,吸取教训启动Unix(小而精),Linus Benedict Torvalds受Unix启发开发初始版本Linux内核,Git也由其开发,目的是为了更好的管理Linux内核开发。Unix是商业软件,Linux是开源软件。

Linux Logo,企鹅

请添加图片描述

Linux的发行版本可以分为两类,一类是商业公司维护的发行版本,以Red Hat Enterprise Linux为代表,一类是社区组织维护的发行版本,以Debian为代表,两者最大的区别是包管理方式。社区中常用的是CentOS和Ubuntu,CentOS为RHEL的社区版本,Ubuntu基于Debian发展而来。

Windows与Linux的区别
文件名、目录名、命令
Windows不区分大小写dir和DIR都行
Linux区分大小写,cd和CD中只有cd行
Linux中硬件被抽象为设备文件,在/dev下
Windows中使用设备管理器管理硬件;

Linux的用户界面不与内核绑定,服务器通常会使用无图形环境的操作系统镜像,Windows用户界面与内核绑定。

UNIX/Linux可以粗糙的分为三层,基础是硬件,第一层是内核,第二层是Shell,第三层是应用层。

安装LInux

虚拟机软件VMware安装linux

VMware网络适配器支持五种网络连接

  1. 桥接模式,虚拟机网卡和宿主机网卡均连接到虚拟机软件提供的VMnet0虚拟交换机上,虚拟机和宿主机地位平等。虚拟机与宿主机处于同一局域网,可以相互ssh登录,虚拟机可连接互联网,可连接路由器下所有机器构成的局域网(举例,路由器A,宿主机B,宿主机C,在宿主机B上创建虚拟机D、E且均使用桥接模式,在宿主机C上创建F、G且均使用桥接模式,则B、C、D、E、F、G地位相等,可互相ssh)

  2. NAT模式,虚拟机网卡和宿主机的虚拟网卡VMnet8连接到虚拟机软件所提供的VMnet8虚拟交换机上,VMware为虚拟机提供了一个虚拟NAT服务器和一个虚拟DHCP服务器,可以相互ssh登录,虚拟机可连接互联网,可连接宿主机与使用NAT模式的所有虚拟机构成局域网

  3. 仅主机模式,虚拟机和宿主机使用VMware的VMnet1虚拟网卡进行通信,无NAT服务,虚拟机仅可连接主机,不可连接局域网和互联网

  4. 自定义,手动选择虚拟网卡,VMnet1即为仅主机模式,VMnet8为NAT模式

  5. LAN区段,可划分不同虚拟网络

U盘安装Linux

分区

格式化,格式化的目的是写入文件系统,而非清空数据

文件系统类型:ext3、ext4(兼容ext3)、fat32(Windows上一代文件系统)、NTFS(Windows新一代文件系统)

分区和格式化后,Windows中分配一个盘符即可使用,Linux需要将该分区挂载到某个目录,另外,Linux中硬件被抽象为文件,分区自然被抽象为文件

IDE硬盘 /dev/hd[a-d]

SCSI/SATA/USB 硬盘 /dev/sd[a-p]

软盘 /dev/fd[0-1]

光驱 /dev/cdrom或/dev/sr0

打印机(25针)/dev/lp[0-2]

打印机(USB)/dev/usb/lp[0-15]

鼠标 /dev/mouse

无人值守安装

大批量服务器(如万台大集群)操作系统安装,搭建一台操作系统安装服务器,将其他所有未安装的服务器作为客户端,客户端修改启动方式为网络启动,从安装服务器下载所需的软件,并安装至客户端

Linux使用建议

Linux使用建议

  1. 将文件放在合适的Linux目录结构中

  2. 不再服务器高负载时运行高负载命令

  3. 远程配置防火墙或者ssh时不要将自己踢出服务器,在机房本地配置或者写个定时任务,每五分钟清空防火墙规则,等测试完了关掉定时任务

  4. 指定合理的密码并定时更新,合理保存密码

  5. 合理分配权限

  6. 定期备份重要数据和日志(重要)

命令

命令格式

命令 [选项] [参数]

命令用于执行一系列动作,选项用于调整命令的功能,参数用于指定命令的操作对象。选项可以分为ls -all形式的长选项或者ls -l形式的短选项,通常短选项是长选项的缩写形式,但并非所有长选项和短选项一一对应。

命令提示符,Linux用这个符号标识登录的用户权限等级。若为超级用户,提示符就是#,若为普通用户,提示符就是$

目录相关命令

ls

list

# 显示所有文件,Linux中以.开头的文件均为隐藏文件,如.bachrc、.ssh
ls -a# 仅显示所有目录
ls -d# 以长格式显示
ls -l# 查看文件inode属性
ls -i# 以人类可读性高的方式显示文件大小
ls -h

cd

change directory

# 更改当前目录到/home/centos
cd /home/centos# 更改当前目录到本目录
cd .# 更改当前目录到上一级目录
cd ..# 更改当前目录到当前用户家目录
cd ~# 更改当前目录到移动到本目录之前上次cd到的目录
cd -

mkdir

make directory

# 创建若干目录
make a
make a b
make a a/b# 递归创建目录
make -p a/b

rmdir

remove empty directories

删除若干空目录

rmdir a b c
rmdir 

tree

查看树型目录结构

tree

文件相关命令

touch

修改文件访问时间和数据修改时间

Linux中每个文件都有三个时间相关属性,数据访问时间(Access Time)、数据修改时间(Modify Time)、属性改变时间(Change Time),没有文件创建时间

数据访问时间在文件被访问时更新,如cat命令读取文件内容,数据修改时间在文件内容被修改时更新,如echo “something” >> file,属性改变时间在文件属性改变时更新,如文件名、文件内容、文件权限、文件拥有者、文件所属组、文件数据访问时间、文件数据修改时间等属性变化均会更新

注:touch修改数据访问时间和数据修改时间,而数据访问时间和数据修改时间的修改会引起属性改变时间的更新

# 修改数据访问时间和数据修改时间,文件不存在时创建
touch .bashrc# 仅修改数据访问时间,文件不存在时创建
touch -a .bashrc# 仅修改数据修改时间,文件不存在时创建
touch -m .bashrc# 修改数据访问时间和数据修改时间,但文件不存在时不创建
touch -c .bashrc

stat

查看文件或文件系统的统计信息

# 查看文件.bashrc文件的信息
stat .bashrc
# 查看文件.bashrc文件所在文件系统的信息
stat -f .bashrc

cat

concatenate

一次性输出文件内容

cat file

head

显示文件前n行信息,默认为前10行

head .bashrc
head -n 20 .bashrc

tail

显示文件后n行信息,默认为10行

# 显示文件后20行信息
tail -n 20 .bashrc
# 追踪日志文件后30行
tail -n 30 -f user-service-2024-01-18.log

more

less

ln

make link

创建链接文件

ln xxx hard-file

●不论是修改源文件(test文件),还是修改硬链接文件(test-hard文件),另一个文件中的数据都会发生改变。

●不论是删除源文件,还是删除硬链接文件,只要还有一个文件存在,这个文件(inode号是262147的文件)都可以被访问。

●硬链接不会建立新的inode信息,也不会更改inode的总数。

●硬链接不能跨文件系统(分区)建立,因为在不同的文件系统中,inode号是重新计算的。

●硬链接不能链接目录,因为如果给目录建立硬链接,那么不仅目录本身需要重新建立,目录下所有的子文件,包括子目录中的所有子文件都需要建立硬链接,这对当前的Linux来讲过于复杂。

ln -s xxx soft-file
  • 软链接的源文件必须写绝对路径,否则建立的软链接文件就会报错,无法正常使用。

  • 比如软链接可以链接目录,也可以跨分区来建立软链接。

  • 软链接和源文件的inode号是不一致的

文件和目录都能操作的命令

rm

rm file
rm -i file
rm -f file# 删除文件或者目录
rm -r file dir# 强制删除文件或目录
rm -rf file dir

cp

cp a b# 若源文件a为软连接,则目标文件b为软连接,对硬链接无效
cp -d a b
# 交互式复制,若目标文件b已存在,询问是否覆盖
cp -i a b
# 指定目标文件b为源文件a的硬链接文件
cp -l a b
# 指定目标文件b为源文件a的软链接文件
cp -s a b
# 复制后目标文件保留源文件的属性,如所有者、所属组、权限、时间
cp -p a b
# 递归复制
cp -r a b
# 等价于 cp -rpd
cp -a a b

mv

mv a b
# 交互式移动或重命名,若目标文件b已存在,询问是否覆盖
mv -i a b
# 强制移动或重命名文件,若目标文件b已存在则覆盖
mv -f a b
# 不强制移动或重命名文件,若目标文件b已存在则不覆盖
mv -n a b
# 移动文件并显示移动信息
mv -v a b

权限相关命令

权限简介

安装完操作系统后绝大多数文件的所有者为root,所属组也为root

dr-xr-xr-x.   5 root root 4096 Jan 12 23:15 boot
d 文件类型,Linux中判断文件类型取决于该标志而非后缀名
- 普通文件
b 块设备文件,例如/dev/sda1
c 字符设备文件
d 目录文件
l 软连接
p 管道符文件
s 套接字文件r-x 文件所有者权限
r-x 文件所属组权限
r-x 其他人权限r 读权限
w 写权限
x 执行权限
- 无权限.表示该文件受SELinux安全规则管理

chmod

超级用户可以修改任意文件的权限,普通用户只能修改所有者为该用户的文件

u表示所有者 user
g表示所属组 group
o表示其他人 other
a表示所有人 allchmod u+x file
chmod g+x, o-x file
chmod a=rwx
chmod -R 777 dir数字权限 r4 w2 x1
chmod 755 file
644 一般文件基本权限
755 可执行文件基本权限、目录基本权限
777 最高权限

一般文件r权限表示可以读取文件数据,如使用cat、more、less、head、less等命令查看文件

一般文件w权限表示可以修改文件数据,如使用vi、vim、echo等命令修改文件

一般文件x权限表示可以执行文件

目录r权限表示可以查看目录下内容,如使用ls命令查看目录下子文件和子文件夹

目录w权限表示可以在该目录下新建、删除、复制文件,如使用touch、rm、cp、mv

目录x权限表示可以切换当前目录到该目录,如使用cd切换工作目录

注意:文件w权限不能删除文件,文件名保存在所在目录的block中,删除文件需要修改所在目录的block即修改目录,需要文件所在目录的w权限

root用户为超级用户,即使root对某文件无任何权限,依然可以操作该文件

# 例如/home/centos,仅允许centos操作,但root用户可以删除centos下的文件
drwx------. 2 centos centos 62 Jan 16 08:25 centos

chown

change file owner and group

当希望将一个所有者为root的文件能让普通用户拥有最高权限时,应当修改该文件所有者为普通用户(root依然能访问),而非修改其他人权限为最高权限(会影响其他普通用户)

chown a-user a-file
chown a-user:user-group a-file

chgrp

change group

chgrp a-group a-file

umask

umask默认权限是Linux权限的一种,主要用于让Linux中新建文件和目录拥有默认权限

Windows中通过继承上级目录权限赋予文件和目录初始权限

umask,权限掩码

/etc/profile

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; thenumask 002  # 普通用户 UID > 199,普通用户权限为 rwxrwxrwx中去掉 -------w-,即rwxrwxr-x
elseumask 022  # 超级用户 UID <= 199,超级用户权限为 rwxrwxrwx中去掉 rwxr-xr-x
umask -p  # 第一位代表特殊权限 Set-UID SetGID Sticky BIT
umask 0002
umask -S  # 
u=rwx,g=rwx,o=rx

帮助相关命令

man

https://www.man7.org/linux/man-pages/index.html

man ls
man -f ls  # 等价whatis
man -k ls  # 等价apropos,根据关键字搜索man
man useradd
1 普通用户可以执行的系统命令和可执行文件的帮助
2 内核可以调用的函数和工具的帮助
3 C语言函数的帮助
4 设备和特殊文件的帮助
5 配置文件的帮助
6 游戏的帮助(个人版Linux中有游戏)
7 杂项的帮助
8 内核的帮助

info

info ls

help

help命令只能获取Shell内置命令的帮助,help本身就是一个内置命令,但man和info不是

help help

注:绝大多数命令会有-h或–help参数用以查看该命令的帮助信息

man -h
info -h

用户相关命令

useradd user
passwd userWindows中新建用户都属于users用户组
Linux中新建用户会同时建立一个与用户名同名的用户组作为该用户用户组

网络相关命令

ifconfig

ip

# 查看ip地址
ip address

ifdown

禁用网卡

ifdown eth0

ifup

启用网卡

ifup eth0

ping

通过ICMP协议进行网络探测,测试网络中主机的通信情况。

# 默认一直探测
ping baidu.com
# 指定探测10次
ping -c 10 baidu.com

mail

write

wall

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/634243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux第一个小程序 --- 进度条【简洁】

行缓冲区的概念 结果&#xff1a;先输入hello world然后休眠三秒后结束 当去掉’\n“ 后&#xff0c;结果就变成了先休眠三秒&#xff0c;然后打印hello world后结束。 该现象就证明了缓冲区的存在。 当缓冲区中遇到’‘\n’或者缓冲区被写满后才会被打印出来&#xff0c;在第…

Linux系统:一些趣味小命令

目录 1、小火车 2、小牛 3、随机小趣物 4、开机自启出现 5、其他趣味图可复制 5.1 文字版 5.2 宗教信仰 5.3 手势 5.4 宇宙星际 5.5 其他 前提&#xff1a;先安装epel额外源 [rootlocalhost ~]#yum install epel-release.noarch -y 1、小火车 [rootlocalhost ~]#y…

JS封装本地缓存的设置,读取,移除,清空方法及使用示例

我封装了一个JS通用的缓存管理对象&#xff0c;可以提供缓存的设置&#xff0c;读取&#xff0c;移除&#xff0c;清空操作&#xff0c;使用也很方便&#xff0c;封装方法的代码在最下方。 Q: 为什么不直接用原生的缓存方法&#xff0c;要封装&#xff1f; A1:原生的缓存管理…

Qt网络通信

1. UDP通信 1.1 udp通信的基本流程 创建套接字 绑定套接字 进行通信 关闭套接字 涉及到的类和信号 QUdpSocket&#xff1a;Udp套接字类&#xff0c;类对象就是一个udp套接字对象 QHostAddress&#xff1a;ip地址类 void readyRead()&#xff1a;信号&#xff0c;当有数据到达可…

[足式机器人]Part2 Dr. CAN学习笔记- Kalman Filter卡尔曼滤波器Ch05-3+4

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记 - Kalman Filter卡尔曼滤波器 Ch05-34 3. Step by step : Deriation of Kalmen Gain 卡尔曼增益/因数 详细推导4. Priori/Posterrori error Covariance Martix 误差协方差矩阵 3. Step by step :…

gh0st远程控制——客户端界面编写(一)

1、新建一个基于对话框的MFC程序 ghost内核对unicode支持不好&#xff0c;所以不要勾选 在静态库使用MFC有助于我们的代码供别人使用 2、设置窗口可最大最小化 对话框 》右键属性 3、 为对话框添加列表 一个代表列表框架&#xff0c;一个代表日志框架 分别为2个控件添加唯…

Umi3 创建,配置环境,路由传参(代码示例)

目录 创建项目 配置环境 创建脚手架 项目结构及其目录、 路由 配置路由 嵌套路由 编程式导航和声明式导航 声明式导航 编程式导航 约定式路由 路由传参 query传参&#xff08;问号&#xff09; 接收参数 params传参&#xff08;动态传参&#xff09; 接收参数 创…

精品量化公式——“筹码动态”,筹码动态改进版,增加了三个买点信号标识

不多说&#xff0c;直接上效果如图&#xff1a; ► 日线表现 代码评估 技术指标代码评估&#xff1a; 散筹估算: 使用EMA&#xff08;指数移动平均&#xff09;方法计算(WINNER(C*1.1)-WINNER(C*0.9))*70的3日均线&#xff0c;用黄色粗线表示。这是用于估算市场中散户投资者的…

【我与Java的成长记】之多态,重载与重写详解

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 Java笔记传送门 &#x1f31f; 个人主页&#xff1a;古德猫宁- &#x1f308; 信念如阳光&#xff0c;照亮前行的每一步 文章目录 系列文章目录&#x1f308; *信念如阳光&#xff0c;照亮前行的每一步* 前言一、多态的概…

gitlab 部署项目新分支

公司代码管理平台新切换到gitlab下&#xff0c;上线发版流程随之变更 1新建分支&#xff0c;开发完成&#xff0c;提交新分支 2.去gitlab平台上找到Merge requests 3 点击右上角的New merge request select source branch 选择新建的分支 点击 compare branches and contin…

navigateTo失效-跳转不了页面解决办法!uniapp\vue

改了一个小时多的错误&#xff0c;跳转页面无论怎么样都跳转不了&#xff0c;有2个问题&#xff1a; 注意&#xff1a;uniapp的报错可以在console里检查&#xff01; 1.pages.json文件没有配置路径&#xff0c; 在pages:[ ]里面加 &#xff08;根据自己的路径进行修改 {&qu…

d2l包安装教程

目录 一、下载d2l包 1、错误的安装方法 2、正确的安装方法 二、可能会遇到的问题 1、网络超时导致下载中断 2、windows powershell激活虚拟环境时报错 一、下载d2l包 直接按照教程安装 — 动手学深度学习 2.0.0 documentation运行命令pip install d2l0.17.6安装会比较慢&…

如何实现 H5 秒开?

我在简历上写了精通 H5&#xff0c;结果面试官上来就问&#xff1a; 同学&#xff0c;你说你精通 H5 &#xff0c;那你能不能说一下怎么实现 H5 秒 由于没怎么做过性能优化&#xff0c;我只能凭着印象&#xff0c;断断续续地罗列了几点&#xff1a; 网络优化&#xff1a;http2、…

为什么需要放行回源IP

为什么需要放行回源IP 网站以“独享模式”成功接入WAF后&#xff0c;所有网站访问请求将先经过独享引擎配置的ELB然后流转到独享引擎实例进行监控&#xff0c;经独享引擎实例过滤后再返回到源站服务器&#xff0c;流量经独享引擎实例返回源站的过程称为回源。在服务器看来&…

C++初阶类与对象(三):详解复制构造函数和运算符重载

上次介绍了构造函数和析构函数&#xff1a;C初阶类与对象&#xff08;二&#xff09;&#xff1a;详解构造函数和析构函数 今天就来接着介绍新的内容&#xff1a; 文章目录 1.拷贝构造函数1.1引入和概念1.2特性 2.赋值运算符重载2.1运算符重载2.2放在哪里2.3运算符重载示例2.3.…

C++后端笔记

C后端笔记 资源整理一、高级语言程序设计1.1 进制1.2 程序结构基本知识1.3 数据类型ASCII码命名规则变量间的赋值浮点型变量的作用字符变量常变量 const运算符 二、高级语言程序设计&#xff08;荣&#xff09; 资源整理 C后端开发学习路线及推荐学习时间 C基础知识大全 C那…

element中表格组件的row-class-name和class-name属性的使用以及无效处理

1.这两个属性的使用&#xff0c;row-class-name用在el-table标签上&#xff0c;class-name用在el-table-column标签上。两个属性即可绑定类名也可绑定函数 <!-- 这里是绑定函数&#xff0c;也可以绑定类名 --> <el-table :data"tableData" selection-chang…

DB107-ASEMI插件小方桥DB107

编辑&#xff1a;ll DB107-ASEMI插件小方桥DB107 型号&#xff1a;DB107 品牌&#xff1a;ASEMI 正向电流&#xff08;Id&#xff09;&#xff1a;1A 反向耐压&#xff08;VRRM&#xff09;&#xff1a;1000V 正向浪涌电流&#xff1a;50A 正向电压&#xff08;VF&…

Linux指令(二)

1.指令&#xff1a;cd ~ 该指令表示进入家目录。 那么你可能会问了&#xff0c;什么是家目录呢&#xff1f; 定义&#xff1a;家目录&#xff0c;又叫主目录。实际上是指用户所在的根目录&#xff0c;例如&#xff1a;在windows系统下&#xff0c;我们的用户目录就是家目录&…

java基础:求数组的最值

方法一&#xff1a;顺序查找 先假设数组第一个元素为最值&#xff0c;然后和数组里的数按顺序进行比较得出最值&#xff0c;所以叫顺序查找。 代码如下 package idea;public class arr_int {public static void main(String[] args) { // 初始化一个数组int[] arr {12…