Linux常用命令学习

常用apt命令.

apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。

apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

apt 命令执行需要超级管理员权限(root)

apt 语法 apt [options] [command] [package ...]

  • options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
  • command:要进行的操作。
  • package:安装的包名。
    常用命令
c 复制代码
安装指定的软件包:sudo apt install <package_name>
安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
c 复制代码
ps -e | grep apt
ssh 用户名@IP地址
rpm -q zip //查询有无安装某个包

安装虚拟机、Xshell(连接终端)、Xftp(本地与服务器传输文件)

查看ubuntu服务器的ip地址

安装 sudo apt install net-tools

查看ip ifconfig

sudo apt-get update

sudo apt-get install openssh-server
XShell 7连接VMware 16虚拟机上的Ubuntu 20.04

1、用户登录和查看系统手册

c 复制代码
//连接
ssh 用户名@ip地址
//登录后显示
用户名@rose-virtual-machine 用户名@主机名 

//超级用户下创建用户
useradd ylp # 用户名
pwasswd ylp # 密码
123123qwe

//查询命令 man
man man
下表显示了手册的 章节 号及其包含的手册页类型。
    1   可执行程序或 shell 命令  //常用命令
    2   系统调用(内核提供的函数)  //系统开发人员使用
    3   库调用(程序库中的函数)    //比如C语言的函数库
    4   特殊文件(通常位于 /dev)
    5   File formats and conventions, e.g. /etc/passwd  //系统配置文件
    6   游戏
    7   杂项(包括宏包和规范,如 man(7),groff(7))
    8   系统管理命令(通常只针对 root 用户)
    9   内核例程 [非标准
//如果知道某个命令 比如ls
man ls
ls --help

2、关机和重启

关机前要查看在线用户和通知

c 复制代码
shutdown -h 10/12:00/00:00  //分别为10分钟后,中午12点,凌晨关机
shutdown -h now //立即关机
shutdown -c //取消
shutdown -r //重启
shutdown -h 10 系统将会在10分钟后关机 //可以跟一个提示字符串,会发送给所有用户
reboot = shutdown -r now
halt = shutdown -h now
powerofff //除了关机如果可以还会断电源

3、Linux目录结构

bin:放一些常用命令
boot:系统启动需要加载的核心文件
dev:设备目录,Linux里一切皆文件,所以一些外部设备也是当作文件放在这里
etc:系统内的配置文件,包括第三方的配置文件
home:普通用户的家目录,每创建一个新用户,就会在home目录下创建一个家目录
lib:存放系统调用的库文件
lib64:和lib类似
media:系统会识别一些设备,然后挂载在这个目录里,比如U盘、光驱
opt:给主机额外安装软件使用的,一般空
proc:内核系统,存放运行的特殊文件
root:超级用户的家目录
run:系统运行的一些临时文件,系统重启后就会清理
sbin:放的超级用户的命令
srv:系统重启后需要读取的数据
sys:存放Linux2.6以后的文件系统
tmp:放一些临时文件,重要文件不要放这,可能被清理掉
usr:用户的很多软件和文件都放在这,类似windows的C盘里的Program Files
var:存放经常变化的文件,比如系统的日志

经常使用到的目录 etchomerootusrvar

4、Linux命令的执行流程

在操作系统中,通常有shell和kernel两个概念,也就是外核和内核。

kernel是核心,管理操作系统的硬件资源,包括内存、cpu、硬盘,运行在核心态,就是说运行在这个状态,CPU想干什么就干什么。

shell其实就是一个运行程序,比如在登录Xshell时,就是启动了一个bash

执行一个命令,就是把命令的第一个单词当作一个程序查找

比如man ls 其他参数

5、文件名和文件名通配符

文件名

  • 除斜线外所有的字符都是命名的合法字符
  • 斜线/作为路径分割符
  • 区分大小写,尽量不要依靠大小写区分

通配符

  • 星号*:*file匹配file, makefile,不匹配 .profile
    点字符(.)和斜线(/)都需要显式匹配
  • 问号:匹配任意单一字符
  • 方括号 [ ] : 匹配括号内任一字符,也可以用减号指定一个范围

    A-Z\]\* \*.\[ch\]匹配所有.c.h文件

    ~ 当前用户的主目录(home)
    ~ylp 用户ylp 的主目录
  • 点文件 .当前文件 和..点点文件上级目录

6、目录与路径的一些概念

cd /home/ylp/dir1 绝对路径 /根目录

cd ./ 其实就是当前路径

7、ls列出文件目录

例:drwxr-xr-x 2 rose rose 4096 8月 1 13:56 桌面

第一个字符为文件类型

c 复制代码
- 普通文件    b 块设备文件(Block)
d 目录文件    c 字符设备文件(Char)
             p 命名管道文件(Pipe)v
l  符号连接文件(Link)类似Windows里的文件快捷方式
c 复制代码
ls 文件名 //列出文件
ls 目录  //列出目录下所有文件
ls -l //长列表显示详细信息
ls -lh //以人能看懂的形式显示,字节大小变成k、M
ls -a //显示所有文件,包括隐藏文件

8、目录和文件的新建、删除、拷贝、移动

c 复制代码
//1、创建目录
mkdir dir1
mkdir -p dir1/dir2  //多级创建,先创建dir1再dir2
//2、删除目录
rmdir dir2/dir1  //删除空目录
rm -rf dir2  // r删除有内容的  一般还要+f,如果是只读的文件,+r删除会提示要不要删除,+f就不会了
//3、创建文件
touch file1
//4、拷贝文件
cp 源文件 目标文件/目标目录  
//5、移动
mv 文件/目录  目标目录
mv 文件 重命名

9、查看文件内容:cat、tac、nl、more、less、head、tail

c 复制代码
cat -n 文件 // -n显示行号,文件内容太多会一下显示所有
tac //从后显示前面 ,倒叙
nl //可以空格向下翻页 q推出
less  // 自由翻页 j一行向下 k向上  空格一页一页翻
head -n 3 文件名//固定看头部几行内容
tail //尾部几行

10、vim文本文件的编辑

vim hello.c 默认命令状态,jk上下,hl左右

i 插入状态

Esc 退出编辑状态

:wq 保存退出

:q!不保存退出

:0 回到第一行

命令状态 /create 全文搜索 n键 到下一个create

vim写代码并不方便,适合修改配置文件

11、链接文件

c 复制代码
ln -s hello.c h1 //-s 软链接、符号链接 创建了链接文件h1
vim h1 =vim hello.c
ln hello.c h1 //硬链接 inote引用+1 连接数+1
此时删除hello.c h1还是能访问数据的

通常使用符号链接

12、文件的压缩和解压缩

c 复制代码
Examples:
  tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.压缩
  tar -tvf archive.tar         # List all files in archive.tar verbosely. v显示压缩或者解压缩的过程
  tar -xf archive.tar          # Extract all files from archive.tar. 解压缩

test.tar 只是打包,没有压缩

Linux下的三种主要压缩:

-j .bz2(压缩率高文件小,但速率慢)

-z .gz(快)

-J .xz(最新的,自动提供最佳的压缩率)

c 复制代码
tar -zcvf test.tar.gz test //后缀gz是为让人知道用了哪种压缩
tar -zxvf test.tar.gz test1 //解压缩
//windows下的压缩包
apt install zip unzip
zip -r  test.zip test

13、文件权限和所属用户与组的修改

Linxu是一个多用户系统,不同的用户访问不同的文件,有不同的权限

修改用户权限只能由root用户

文件类型 所有者权限 所属组权限 其他用户权限
- rwx rwx rwx
读/写/执行 读/写/执行 读/写/执行
1代表有权限 1/1/1 1/1/1 1/1/1
4/2/1 4/2/1 4/2/1
c 复制代码
//user group others all
chmod u/g/o/a + 加入/-去除/ =设定  r/w/x 文件或者目录
chmod u=rwx,g=rx,o=r 文件名
chomd o-x 文件  //其他用户没有执行权限

14、用户和用户组的管理

只有root用户可以创建用户和管理组

c 复制代码
//查看组
groups(或groups xxx查看某用户所属组,xxx为用户)
groupsadd 组名 //添加组
cat /etc/passwd //查看用户信息
vim /etc/group //查看组
//添加用户
useradd -g group1 zhangsan
passwd username //修改密码
//修改用户组、组名
usermod -g groupname username
groupmod -n newGroupName originalName
//删除用户、组
userdel zhangsan //
groupdel groupName

15、grep在文本文件里查找符合条件的字符串

c 复制代码
grep -i hello hello.c //i忽略大小写 在hello.c中搜索hello,返回那一行
ls -l | grep ^d //ls-l的结果给grep,结果匹配正则表达式

16、输入输出重定向和管道机制

标准输入:stdin,0表示,默认来自键盘的输入

标准输出:stdout,1表示,默认输出到终端窗口

标准错误:stderr,2表示,默认输出到终端窗口

重定向就是把输入输出定义在一个文件,不显示在终端,而是输出到一个文件中

c 复制代码
//输出重定向
>: stdout重定向到文件,文件内容会被覆盖
>>: stdout重定向到文件,文件内容不会被覆盖,而是在原有基础上添加
2>: stderr重定向到文件,文件内容会被覆盖
2>>: stderr重定向到文件,文件内容追加
&> or >& or 2>&1: stdout和stderr作为同一个数据流重定向到文件
&>>:stdout和stderr重定向追加
//输入
tr ' ' '\t' <test.txt //把test.txt里的空格换成了Tab

管道:使命令和命令之间可以协作

c 复制代码
// |就是管道,把前面命令的输出当作后面的输入,前提后面的输入是要求文本输入
ls -l /etc | grep ^d 
相关推荐
磊灬泽4 小时前
【日常错误】鼠标无反应
linux·windows
知识分享小能手4 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
茯苓gao7 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾7 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT8 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa8 小时前
HTML和CSS学习
前端·css·学习·html
Miracle&8 小时前
2.TCP深度解析:握手、挥手、状态机、流量与拥塞控制
linux·网络·tcp/ip
专注API从业者8 小时前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python
Ribou9 小时前
Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
linux·ubuntu·kubernetes
看海天一色听风起雨落9 小时前
Python学习之装饰器
开发语言·python·学习