Linux教程

LINUX系统与命令相关

本文主要是介绍LINUX系统与命令相关,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

软件包安装

一、dpkg 【本地安装】

  1. 安装软件

    1. sudo dpkg -i 软件包 [安装单个软件包]

    2. sudo apkg -i *.deb [多个软件包一起安装]

    3. 例如:sudo dpkg -i nano_2.2.6-1_i386.deb

  2. 移除已经安装的软件包

    1. sudo dpkg -r 软件包名

    2. 例如:sudo dpkg -r nano

      移除已安装的软件包及配置文件

sudo dpkg -P 软件包名

  1. 列出软件包在系统所安装的文件

sudo dpkg -L 软件包名

  1. 列出软件包安装状态

sudo dpkg -s 软件包名

二、apt-get 【联网安装】

1、安装软件

sudo apt-get install 软件包名

ls例如: sudo apt-get install sl 或 sudo apt-get install btanks

2、卸载软件

sudo apt-get remove 软件包名

例如: sudo apt-get install sl

3、更新索引文件

sudo apt-get update

4、清空存放下载软件包的目录

sudo apt-get clean


用户管理

一、Linux中常见用户

  1. 超级用户root:具有最高的权限,UID=0,GID=0

  2. 系统用户:主要服务于系统应用,维护系统运行,不能登录。例如:uucp daema等。

  3. 普通用户:登录的用户

二、Linux用户相关路径与详解

/etc/passwd

图片描述

帐号名称:帐号名称由于对应用户ID,这个是系统默认用户root超级管理员,

         在同一个系统帐号名称是唯一的,长度根据不同的linux系统而定,一般是8位。

密码:由于系统中还有一个/etc/shadow文件用于存放加密后的口令,

      所以在这里这一项是“x”来表示,如果用户没有设置口令,则该项为空。         

用户ID:这个是系统内部用于来识别不同的用户的,不同的用户识别码不同,其中用户ID有以下几种:

0代表系统管理员

1-500系统预留的ID

500以上是普通用户使用。

组ID:其实这个和用户ID差不多,用来规范群组,他与/etc/group有关。

描述信息:这个字段几乎没有什么作用,只是用来解释这个帐号的意义。一般常见的是用户全名信息。-

用户根目录:就是用户登录系统的起始目录,用户登录系统后将首先进入该目录。root用户默认的是/root,普通用户的是/home/用户名。

用户登录shell:就是用户登录系统时使用的shell路径

/etc/shadow(保存密文的用户口令

图片描述

       

密码:这才是真正的密码,并且已经加密过了,只能看到一些特殊符号。需要注意的是这些密码很难

     破解,但是不等于不能。还有密码栏的第一个字符为“*”表示这个用户不用来登录,

     如果那个用户不想让他登录了,可以在他前面加个星;

 

上次改动密码的日期:这段记录了改动密码的最后日期,为什么是13798呢?

               这是因为linux计算日期的方法是以1970年1月1日作为1,1971年1月1日就是366,

               依次类推到我修改密码的日期表示为13798了。

密码不可被改动的天数:这个字段代表要经过多久才可以更改密码。如果是“0”代表密码可以随时更改。

密码需要重新更改天数:由于害怕密码被人盗取而危害到整个系统的安全,所以安排了这个字段,

                    你必须在这个时间内重新修改密码,否则这个帐号将暂时失效。

                    上面的99999,表示密码不需要重新输入。

密码到期的警告期:当帐号的密码失效期限快到时,系统依据这个字段的设定发出警告,

                提醒用户“再过n天您的密码将过期,请尽快重新设定密码。默认的是七天。

 

切换进入超级用户

切换到root用户:sudo su root

切换到普通用户:sudo su linux


添加用户

sudo  adduser  用户名


删除用户

sudo deluser --remove-home  用户名


修改密码

sudo passwd  用户名


关闭和重启

立即关机

sudo shutdown -h now  

立即重启

sudo reboot


linux之挂载

一个硬盘是一个设备文件,一般是/dev/sda(第一块);而硬盘上的每一个分区也是设备文件,比如第一个分区叫做/dev/sda1,第二个是/dev/sda2。



挂载 : 指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件**。**


下图为 U 盘文件目录结构和 Linux 系统中的文件目录结构

图片描述

文件系统相关命令

查看目录的内容或文件属性信息:ls


查询文件详细的属性:ls  -ld   /home/linux


drwxrwxr-x 4 linux linux 4096 May 28 01:34 class


第一部分:文件类型 

d -> 目录文件 


常见文件类型标识字符

bcd-lps

   

b : 块设备文件    (block)---硬盘

c : 字符设备文件   character                ---鼠标

d : 目录文件       directroy                ---文件夹


- : 普通文件       regular


l : 软链接文件(windows快捷方式)   link    

p : 管道文件(常用于进程通信)      pipe

s : unix域socket文件(常用于进程通信)


第二部分: 权限 [文件所有者权限 + 文件所有者所在组的组员权限 + 其他人权限]

r 读, w 写, x 执行

100 010  001 ====>八进制数: r : 4  w : 2 x : 1

r-- -w-  --x

r-- -w- --x


100

r--  ===>4

010

-w-  ===>2

001

--x ====>1


r--4  100

w--2  010

x--1  001


用八进制表示: 0775


第三部分:

4 -> 硬链接数


第四部分:

linux -> 文件所有者名


第五部分:

linux -> 文件所属于组


第六部分:

文件大小 (默认单位byte)


第七部分:

文件最后一次修改时间 


第八部分:

文件名 


ls常用指令

ls -a -> 显示所有的文件,包括隐藏文件 

ls -lh -> 带单位(G,K,M)显示文件大小 


修改文件的权限

格式:

chmod  权限  文件名

常用:

u: user(文件所有者)

g: group(文件所属组)

o: other(其他用户)


chmod u+x test.c

chmod u+w test.c

chmod g-r test.c 

chmod o+x test.c


常用:

  100 101 001  

  r-- -w- --x

故八进制表示:

r--->4

w---->2

x---->1        


查看磁盘空间使用情况:

df  -Th


挂载本地设备文件

sudo mount 设备文件 挂载点目录


卸载设备

sudo umount 设备文件

例如:sudo umount /dev/sda1


zip压缩相关命令


压缩文件

zip   test.zip    hello.c  log.c

解压文件

unzip  test.zip


inux支持常用的两种压缩格式

gzip : linux支持的压缩格式的一种,优点是压缩速度较快

bzip2 :linux支持的压缩格式的一种,优点是压缩后存储空间占用较小


tar : 该命令一般用来压缩/解压gzip和bizp2的文件

相关参数:

c -> 创建

x -> 释放

z -> gzip操作

j -> bzip2操作

v -> 显示过程

f -> 指定文件名(一定需要放在最后)

压缩文件/文件夹:

sudo tar -czvf work.tar.gz work

sudo tar -cjvf work.tar.bz2 work

解压文件:

sudo tar -xzvf work.tar.gz

sudo tar -xjvf work.tar.bz2

或者

sudo tar -xvf work.tar.gz/work.tar.bz2(两种都可以释放)


软连接和硬链接

Linux系统中一个文件由目录项****、****inode表和数据块组成。 test.c

**目录项:**包括文件名和inode节点号

**Inode表:**包含文件的一些信息。例如,inode号,文件类型,文件大小等待。

**数据块:**文件具体内容存放的地方。

当我们查看一个文件的时候,linux系统的运行过程如下图

图片描述

查找过程

首先根据文件名,找到我们目录项中的inode号。

通过inode号进入我们inode表中,查找到该文件中一些信息。

然后通过inode表中的保存的数据区的指针,读取我们相应数据区的内容。


硬链接

本质:是给我们的文件取别名。**与源文件直接关联。修改一个,另一个同时被修改。删除一个另一个不会有影响。

Linux系统中规定,只有在文件的打开次数为0(即文件这个时候没有打开),并且文件的硬连接数为0,此时文件才会被删除

特点: 不能对目录操作


查看inode号

ls  -i   文件名

硬链接命令

ln  源文件名  硬链接文件名


软链接

本质"类似于我们windows的快捷方式,用来记录我们目标的路径

特点:占用磁盘空间,可以对目录操作


ln   -s   源文件   软链接文件 

图片描述

查找搜索


grep 从文件中搜索字符串

grep "字符串"  文件


参数:

-n   显示行号

-R   递归及子目录


例如:

grep  "hello" log.c       //在log.c文件中搜索"hello"字符串

grep "main" * -nR         //在当前目录及子目录所有文件中搜索main


find 在指定路径下搜索文件

find  路径  -name  文件名

例如:

find  /home/linux -name hello.c    //在/home/linux目录下搜索hello.c


管道连接符

说明:管道就是将一个命令的输出当作另一个命令的输入,通过|连接多个命令。

(理解:后一个命令的操作,是在前一个命令的基础上进行的)


例如:

cat  /etc/passwd | grep -n "linux"

ls /usr/include | grep "stdio.h"


head 显示文件开头的内容

head -行数  文件

例如:

head -10 /etc/passwd   显示/etc/passwd文件开头前10行


tail 显示文件尾部指定的行数

tail -行数  文件

例如:

tail -1 /etc/passwd   显示/etc/passwd文件最后一行的信息


cut 字符串裁剪函数

注意: 一般与管道联合使用

cut  -d "分割字符"  -f  字段

参数:

-d    指定我们的分割字符

-f    指定我们显示的区域

示例代码:

tail  -1 /etc/passwd | cut -d ":" -f 1,3,4

grep "linux" /etc/passwd | cut -d ":" -f 1,3


wc 统计某个文件的行数 /单词个数 /字节数

-l 显示一个文件的行数

-w 显示一个文件的单词个数

-c 显示一个文件的字节数

log.txt文件内容如下:

{

    123

    abc

    789 ABCD

}

wc -l  log.txt

wc -w  log.txt

wc -c  log.txt


























这篇关于LINUX系统与命令相关的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!