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 
相关推荐
Cachel wood14 分钟前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Code哈哈笑17 分钟前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
Youkiup22 分钟前
【linux 常用命令】
linux·运维·服务器
qq_2975046126 分钟前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
weixin_4373982139 分钟前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~41 分钟前
ubuntu开机进入initramfs状态
linux·运维·ubuntu
小林熬夜学编程1 小时前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http
炫彩@之星1 小时前
Windows和Linux安全配置和加固
linux·windows·安全·系统安全配置和加固
hhhhhhh_hhhhhh_1 小时前
ubuntu18.04连接不上网络问题
linux·运维·ubuntu
QQ同步助手1 小时前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度