Linux命令2

本文深入讲解了Linux系统中的各种基础命令,如vi编辑器的使用、软件包管理、Shell命令、用户管理及进程管理等。同时,对Linux文件系统进行了详细介绍,包括文件系统类型、文件属性、权限管理及压缩归档操作。
摘要由CSDN通过智能技术生成

vi编辑器

ctrl + alt + t 打开命令行终端
作用 : 编写应用程序
vi file :在vi编辑器中打开文件
如果目录下没有文件,则创建后打开;如果存在,则直接打开
三种模式:
1.一般模式
2.编辑(输入)模式
(1)vi--开始编辑
新增 (append)
-- a从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动。
-- A从光标所在行最后面的地方开始新增资料
插入 (insert) 
-- i从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。	-- I从光标所在行的第一个非空白字符前面(行首) 开始插入资料 。 
开始 (open)
-- o在光标所在行下新增一行并进入输入模式 。
-- O在光标所在行上方新增一行并进入输入模式。 
(2)vi--删除与修改
dd 	剪切光标所在的行到粘贴板中
ndd 从光标所在行开始,删除n行数据

r 	修改光标所在字符,r后接着输入要修正的字符
R	进入取代状态,新增资料会覆改原先资料, 直到按[ESC]回到指令模式下为止

s 	删除光标所在字符,并进入输入模式
S 	删除光标所在的行,并进入输入模式 
(3)vi--拷贝与粘贴命令
yy 复制光标所在的行到粘贴板中
nyy 从光标所在行开始,复制n行数据
p  打印粘贴板中的内容
补充:
撤销操作:一般模式下 u
退出编辑模式:ESC
3.命令行模式(底行模式):/    ?
(1)Vi 替换
-- 在底行模式下:%s/old/new/g  将当前行的old替换为new,g表示忽略提示
  在底行模式下:s/old/new/gc  
  	注意:不加 % 只能替换光标所在行的内容
将当前行的old替换为new,加上参数c每次替换都会提示。

(2)查找
/obj  或  ?obj  从当前行开始查找,将查找到的内容用高管显示

去掉高光:noh
(3)vi--退出命令
:w -- 保存文件
:w! -- 强制保存文件
:q -- 退出vi编辑器 
:q! -- 强制退出vi编辑器 
:wq -- 保存文件并退出vi编辑器 
:wq!-- 强制保存文件并退出vi编辑器 

软件包管理机制

流行的两种软件包管理机制
1.Deb软件包
2.Rpm软件包

Deb软件包命名规则:
软件包名_版本号-修订版本号_硬件架构(all).deb

命令行管理工具

1.dpkg本地安装
最早的Deb包管理工具,它在Debian一提出包管理模式后就诞生了。使用dpkg可以实现软件包的安装、编译、卸载、查询,以及应用程序打包等功能。但是由于当时Linux系统规模和Internet网络条件的限制,没有考虑到操作系统中软件包存在如此复杂的依赖关系,以及帮助用户获取软件包(获取存在依赖关系的软件包)。因而,为了解决软件包依赖性问题和获取问题,就出现了APT工具。

dpkg相关命令
dpkg -i 安装一个在本地文件系统上存在的Debian软件包
dpkg -r 卸载一个已经安装的软件
dpkg -P 卸载已安装软件并删除配置文件
dpkg -L 列出安装的软件包清单
dpkg -s 显出软件包的安装状态
dpkg-reconfigure 重新配置一个已经安装的软件包

调用已安装软件:直接输入软件名
安装软件是在对系统进行操作,而普通用户没有系统管理员权限,用sudo 为当前用户临时添加超级用户权限,命令执行结束后系统回收权限
2.APT系列工具—联网安装
(1)检查和修复软件包依赖关系
(2)利用Internet网络帮助用户主动获取并安装软件包

1./etc/apt/sources.list
列出最合适访问的镜像站点地址。
2./var/lib/apt/lists/目录
sources.list中每一个服务器网址都对应一个索引文件,存放该网址中包含的所有软件包信息
3./var/cache/apt/archives
软件包默认下载路径

安装某个软件
apt-get 命令族
apt-get install 软件名
重新安装某个软件
apt-get --reinstall install 软件名
卸载软件
sudo apt-get --purge remove 软件名
sudo apt-get remove 卸载软件包但保留配置文件
检查软件包依赖关系,如果依赖关系被破坏,则重新修复
sudo apt-get check
修复软件包间的依赖关系(使用dpkg安装出现依赖问题时可以使用)
Sudo apt-get –f install

清理缓冲区
sudo apt-get clean 删除默认下载路径中的所有软件包

apt-cache 命令族–查询软件包的状态
apt-cache search 关键字检索软件包信息,帮助用户快速找到软件包。
apt-cache show”命令获取指定软件包的详细信息
注意:联网安装的软件包可以用dpkg查询
apt-cache policy 获取软件包当前的安装状态

apt-cache depends 查看软件包的依赖文件
apt-cache rdepends
查看软件包被哪些软件所依赖

sudo apt-get update 升级(更新)索引目录下的所有文件
共享文件夹:/mnt/hgfs/

shell

Shell是一个命令行解释器。将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互。

工作步骤:
1.用户在命令行提示符下键入命令文本,开始与Shell进行交互。
2.接着,Shell将用户的命令或按键转化成内核所能够理解的指令
3.控制操作系统做出响应,直到控制相关硬件设备。
4.然后,将输出结果通过Shell提交给用户。

查看系统支持的shell解释器:cat /etc/shells
Shell基本命令格式
命令提示符
linux@ubuntu:~$
用户名 @主机名 目录名
家目录:系统登入用户后默认进入的目
家目录可以用~代替
pwd:查看当前目录所在的路径
$:普通用户的命令行提示符
#:用户的命令行提示符

通常一条命令包含三个要素:命令名称、选项、参数。
注意:
1.一条命令的三要素之间用空格隔开;
2.若将多个命令在一行书写,用分号(;)将各命令隔开;
3.如果一条命令不能在一行写完,在行尾使用反斜杠(\)标明该条命令未结束。

ls

功能:打印当前目录中的文件和目录(不包含隐藏文件)
-a 打印当前目录中的所有内容(包含隐藏文件包含隐藏文件)
-l 以列表形式显示文件或目录

history

打印历史命令
history n : 打印n行历史记录
HISTSIZE环境变量:保存历史记录的条数
注意:
在命令行终端下修改环境变量只能临时修改,系统每次启动都会执行相应配置文件中的内容,重新给环境变量赋值。想要永久性修改环境变量,则直接修改配置文件

echo 在命令行终端打印指定的内容

注意:在命令行终端用$提取变量的值
eg.echo $HISTSIZE
在命令行终端赋值:
变量名=变量值
注意:赋值号前后不能有空格

通配符

星号(*):匹配任意长度的字符
问号(?):只能匹配一个字符
方括号([-]):匹配指定范围的一个字符
方括号([…]):匹配其中指定的一个字符
方括号([^…]):除了其中指定的字符,均可匹配(只能匹配一个字符)

注意:a-A = 32Linux系统区分大小写

管道

管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入
eg. ls | wc -w

输入/输出重定向

输入/输出重定向是改变Shell命令或程序默认的标准输入/输出目标,重新定向到新的目标。
Linux中默认的标准输入定义为键盘,标准输出定义为终端窗口。
用户可以为当前操作改变输入或输出,迫使某个特定命令的输入或输出来源为外部文件。

file 将file文件重定向为输出源,新建模式(也可用来新建文件)
注意:>无法将命令错误的执行结果重定向

file 将file文件重定向为输出源,追加模式
<file 将file文件重定向为输入源
2> 只能将出错信息重定向(新建模式)
&> 可以将出错信息和正确执行结果都重定向
2>>、&>>追加模式

注意:>、>> 可用来创建文件,一个新建模式,一个追加模式

touch

创建文件但不打开,如果文件存在则不再重复创建

wc命令

功能:统计指定文件中的行数、单词数、字节数, 并将统计结果显示输出。
语法:wc [选项] 文件…
说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。
该命令各选项含义如下:

  • c 统计字节数。
  • l 统计行数。
  • w 统计字数(单词数,以空格或回车键识别)

cat 标准输出上显示文件

-n :带行号显示

命令置换

将一个命令的输出作为另一个命令的参数
eg.ls pwd

man联机帮助手册

查询命令或函数的使用方式
Windows下查询Linux命令:
http://man.linuxde.net/

shutdown

sudo shutdown -h 时间参数

-h:关机
-r:重启

时间参数:+n n分钟后执行命令
7:00 7点的时候执行命令

ctrl + z :暂停正在执行的进程并将其置于后台
fg:继续后台暂停的进程并将其置于终端窗口(前台)

sudo poweroff 关机
sudo reboot 重启
ctrl + c :取消正在执行的进程

passwd

1.只输入passwd,修改当前用户的密码(对长度有要求)
2.sudo passwd 用户名 修改指定用户的密码
3.sudo passwd 修改超级用户密码

su

切换用户
sudo — 给当前用户临时添加超级用户权限
1.su – 默认切换到超级用户
2.su - 用户名 :切换带指定用户

注意:1.普通用户切换到超级用户需要密码
2.超级用户切换到普通用户不需要密码

echo

在标准输出上打印指定内容
echo aa
打印两个字符串,字符串之间用空格隔开
echo “aa bb” 双引号括起来的表示一个字符串,字符串有一个字符是空格

date

显示和设置系统时间

clear(ctrl +l)

清屏

用户管理

1./etc/passwd文件
是系统能够识别的用户清单
用户登陆时,系统查询这个文件,确定用户的UID并验证用户口令
文件包括以下几个字段(字段之间用:隔开)
登陆名
经过加密的口令
UID 用户ID
默认的GID
个人信息
家目录:指定登录用户是默认进入的路径
登陆shell
2./etc/shadow
加密的用户清单,只有超级用户可以访问这个文件,用来保护加密口令的安全
字段:
登录名
经过加密的口令
上次修改口令的时间
两次修改口令最短期限(天数)
两次修改口令最短期限(天数)
提前几天提醒口令过期
口令过期多少天禁用账号(禁止用户登录)
账号过期日期
保留字段
3./etc/group文件
包含了LUNIX组的名称和每个组中成员列表
每一行代表一个组,包括4个字段:
组名
加密的口令
GID号
成员列表,彼此用逗号隔开
如果用户与所属的组同名,则在第四个字段中省略

一、添加用户
sudo adduser + 用户名

4.etc/adduser.conf 是adduser命令配置文件
FIRST_UID=1000
LAST_UID=29999
USERS_GID=100
DHOME=/home 指定用户的工作目录
DSHELL=/bin/bash
SKEL=/etc/skel

SKEL模板
etc/skel目录是被 /usr/sbin/useradd使用
使用adduser 命令添加用户时,Linux系统会自动将/etc/skel/下的所有文件和目录拷贝到新建用户的主目录下。这些都是一些配置文件:
.bash_profile
.bashrc
.bash_logout
dircolors
.inputrc
.vimrc

注意:1.创建用户时。首先创建同名的用户组,将该用户置于组中
二、修改用户属性
-d <登录目录>:修改用户登录时的目录(修改~表示的绝对路径)

-g <群组>:修改用户所属的组
注意:只能修改成已存在的组ID

-G <群组>:修改用户所属的附加组

-l <账号名称>:修改用户账号名称(登录名)
注意:只能修改配置文件中的登录名,但无法修改用户工作目录

-u :修改用户ID

sudo usermod -d /home farsight
sudo usermod -g 1000 farsight
三、删除用户
deluser --remove-home user1
删除用户user1的同时删除用户的工作目录
注意:删除时如果用户所属组是同名组,且该组中没有其他用户,则同时将用户组也删除
四、添加组
sudo addgroup 组名
五、删除组
sudo delgroup 组名

进程管理

程序的一次执行就是一个进程
区别:程序是静态,进程是动态的

进程控制块的组成
进程名
特征信息
进程状态信息
调度优先权
通信信息
现场保护区
资源需求、分配和控制方面的信息
进程实体信息
族系关系

寄存器,程序计数器,控制器
必要的堆栈

ps – 只显示依赖于当前终端窗口的进程状况
-A 列出所有的进程
-au 显示较详细的资讯(只显示运行在终端机的进程)
-aux 显示所有包含其他使用者的进程
-可以被省略

TTY :进程依赖的终端
终端窗口 用pts/n 表示,

TTY1-6 :文字界面
tty7:图形界面
如果是?表示不依赖于人终端

S:阻塞状态
s:包含子进程
R:可运行
就绪态(只有在该状态下才可能被cpu执行)
运行态
+:进程在前台执行

top
动态监视进程
默认没3秒刷新一次
-d + time 指定刷新时间间隔

pstree
将所有进程以树状图显示

信号

Linux系统支持了一些给进程发送信号,

kill -l 列出系统支持的信号清单

kill [-signal] PID 发送序列号指定的信号给PID
2) SIGINT
程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。
9) SIGKILL
用来立即结束程序的运行. 本信号不能被阻塞、处理和忽略。如果管理员发现某个进程终止不了,可尝试发送这个信号。

文件系统

提供存储、管理、检索文件的方式
用于组织和管理计算机存储设备上的大量文件,并提供用户交互接口。
Linux特点:支持多种文件系统
开发更加灵活,系统可以根据不同的功能自动选择要使用的文件系统。

Linux是一种兼容性很高的操作系统,支持的文件系统格式很多,大体可分以下几类:
1.磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。
Windows常用:FAT16,FAT32,NTFS
linux常用:ext系列,ext4\ext6

2.网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。NFS

3.专有/虚拟文件系统(VFS):不驻留在磁盘上的文件系统。 VFS 作为 Linux内核中的一个软件抽象层,用于给应用程序提供文件系统接口,Linux允许不同的文件系统很好地共存,任何要使用这些实际文件系统的程序都必须通过这层接口来使用它。它只存在于内存中,不存在于任何外存空间。VFS在系统启动时建立,在系统关闭时消亡。 VFS 使 Linux 同时安装、支持许多不同类型的文件系统成为可能。常见格式有:TMPFS(临时文件系统)

文件系统的分区
sudo fdisk -l
hd”代表IDE硬盘
“sd”表示SCSI或SATA硬盘

window在磁盘分区中创建目录结构
Linux是将磁盘分区抽象成文件挂在相应目录下

文件系统逻辑结构:
Linux的文件组织模式犹如一颗倒置的树
顶层目录:根目录 /

/bin:存放系统中最常用的可执行文件(二进制)
/dev 存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等
/etc 存放系统的所有配置文件,例如passwd存放用户账户信息,hostname存放主机名等

绝对路径和相对路径
绝对路径:指文件在文件系统中的准确位置。通常在本地主机上,以根目录为起点。例如“/usr/games/gnect”就是绝对路径。
相对路径:指相对于用户当前位置的一个文件或目录的位置。例如,用户处在usr目录中时,只需要“games/gnect”就可确定这个文件。
. 表示当前目录
… 表示上层目录

文件属性

-rw-rw-r-- 1 linux linux 27 Sep 23 16:29 file
第一部分:前10个字符
第一个字符:文件类型(b、c、d、-、l、s、p)
-:普通文件,指ASCII文本文件、二进制可执行文件,以及硬件链接
b: 块设备文件
c:原始输入/输出设备文件,每次I/O操作仅传送一个字符
d:包含若干文件或子目录
l:符号链接文件,只保留了文件地址,而不是文件本身
p:管道(pipe),一种进程间通信的机制,用于进程间通讯的暂时文件
s:套接字文件,用于进程间通信,两台计算机间通讯的应用程序接口(API)
file:查看文件类型

第一组:当前用户对文件的权限
第二组:用户所属组中其他用户对文件的权限
第三组:其他用户对文件的权限
r:可读
w:可写
x:可执行
权限位在计算机中以二进制表示

权限掩码umask
文件默认权限是666
目录默认权限是777
创建文件或目录时默认权限-权限掩码值得出当前权限位

修改文件属性
1.chmod命令
chmod 764 filename
chmod 777 filename
chmod u+x filename
u-改拥有者权限(前三位)
g-改同组用户
o-改其他用户的权限(后三位)
chmod a+x filename 统一修改三组对应权限位
chmod也可以改目录的权限
2.chown修改文件拥有者、所属组
sudo chown newusername filename : 将filename文件的拥有者改为newusername用户
Sudo chown :newgroup filename : 将filename文件的所属组改为newgroup
3. chgrp:
sudo chgrp newgroup filename :将filename文件的所属组改为newgroup

mkdir

创建目录
mkdir -p 创建级联目录

cp

复制
cp -r 复制目录

mv

1.剪切文件和目录
2.重命名文件和目录

rm

删除文件
rm -r 删除目录

head

查看文件前几行,默认打印文件前10行内容
head [-n] 打印前n行内容

tail

查看文件后几行,默认打印文件后10行内容
tail [-n] 打印前n行内容

创建链接文件

Linux中有两种类型的链接:
1.硬链接 ln
利用Linux中为每个文件分配的物理编号——inode建立链接。因此,硬链接不能跨越文件系统(ls -l)。

注意:1.如果文件没有任何的硬链接文件,则文件属性中的硬链接数为1,没创建一个硬链接文件链接数加1
2.不能跨越文件系统

2.软链接(符号链接)ln -s 
利用文件的路径名建立链接。通常建立软链接使用绝对路径而不是相对路径,以最大限度增加可移植性。
类似于Windows下的快捷方式

区别:
1.硬链接不可以跨文件系统,软连接可以
2.inode节点问题


硬的不管有多少个,均指向一个inode,每创建一个硬链接,会产生一个(大小、权限、inode、时间)一致的文件,并增加1个链接数,它们是绝对平等的,可以通过ls -i命令查看详细的inode和连接数。
软链接,是产生一个很小的具有新inode的文件,有点类似win中的“快捷方式”,它存放的是指向源文件路径的指针,是个全新的文件 
删除一个硬链接,只会减少连接数,直到删除最后一个连接数为1的文件,就是彻底删除了此文件;删除一个软链接文件,无区别。删除源文件的话,软连接则指向了一个空文件,相当于快捷方式失效
3.软的可以链接目录,而硬的不行 

文件压缩和归档

首先需要明确两个概念:
1.归档文件是将一组文件或目录保存在一个文件中。
2.压缩文件也是将一组文件或目录保存一个文件中,并按照某种存储格式保存在磁盘上,所占磁盘空间比其中所有文件总和要少。

—压缩和解压
– gzip
功能:压缩指定文件但不保存源文件;只能压缩文件,无法将多个文件压缩为一个文件,也无法压缩目录
后缀名:.gz
eg.gzip file 压缩文件
解压文件:
gunzip file.gz 或者 gzip -d file.gz 选项: -l(小写l):查看压缩文件信息
gzip -l file.gz 该命令只能查看,不能压缩
–bzip2:用法和gzip相同
后缀名:.bz2
–zip :类似于Windows下的压缩命令
格式:zip 指定压缩包名 需要压缩的文件
注意:1.保存源文件
2.后缀名.zip
3.可以压缩目录(-r 可加可不加)
4.可以将多个文件压缩成同一个压缩包
unzip: 解压缩
unzip -Z all.zip 查看压缩包的内容

tar命令、、
主要用于将若干文件或目录合并为一个文件,以便备份和压缩
后缀名:.tar
-c 创建一个新的归档文件
-f 用户指定归档文件的文件名,否则使用默认名称
tar -cf file.zip file
.保存源文件
-v 显示归档和释放的过程信息
-x 释放归档文件

tar -xvf file.tar 释放归档文件
-j 由tar生成归档,然后由bzip2压缩
-z 由tar生成归档,然后由gzip压缩
tar -czf file2.tar.gz file2
tar -cjf file1.tar.bz file
tar -xvjf myExamples.tar.bz
tar -xvzf myExamples.tar.gz

网络配置

IP地址通常用点分十进制(用“.”隔开的四个十进制数)
ping:检测网络连接状况
ifconfig:显示和配置网卡
eth0:第一个以太网卡
lo(loop):回环地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值