LINUX基础知识

来源:互联网 发布:主机一定有域名吗 编辑:程序博客网 时间:2024/06/14 04:33

Linux学习基础知识札记

 

目录

1. 系统基本命令操作 2

1.1. 简单操作命令 2

1.2. 重要的热键 2

1.3. Man Page 2

1.4. 超简单文本编辑器:nano 3

1.5. 正确的关机方法 3

1.6. 忘记root密码 3

2. Linux文件权限与目录配置 3

2.1. 文件属性 3

2.2. 目录与文件的权限意义 4

2.3. Linux目录配置 4

2.3.1. /usr目录 4

2.4. Linux文件与目录管理 4

2.4.1. 目录与路径 4

2.4.2. 文件与目录管理 5

2.4.3. 文件内容查阅 6

2.4.4. 文件与目录的默认权限与隐藏权限 7

3. Linux账号管理 8

4. 而后居委会 8

5. 软件安装 8

5.1. 编译问题 8

5.2. make进行宏编译 8

5.2.1. Makefile的基本语法与变量 8

 

 

 

 

 

 

 

 

 

 

1. 系统基本命令操作

1.1. 简单操作命令

显示日期与时间的命令:date

显示日历的命令:cal

简单好用的计算器:bc;(quit退出计算器)

 

1.2. 重要的热键

Tab】按键:命令补全文件补全功能;

Tab】接在一串命令的第一个命令的后面,则为命令补全

Tab】接在一串命令的第二个命令以后,则为文件补全

ctrl+ c:中断目前程序。(比如,如果是正在编译某一个软件程序,此处按此组合键,便可中断编译过程!)

ctrl+ d:键盘输入结束。(直接离开文字输入界面!)

 

1.3. Man Page

1.4. 超简单文本编辑器:nano

命令:nano + 文件名称(可以是旧文本文件,也可以是新文件名称)

常见的“^”:表示【ctrl】的意思。

 

1.5. 正确的关机方法

查看网络的联机状态命令:netstat -a

查看后来执行的程序命令:ps -aux

将数据同步写入硬盘中的命令:sync

惯用的关机命令:shutdown

重启、关机:reboot, halt, poweroff

1.6. 忘记root密码

2. Linux文件权限与目录配置

2.1. 文件属性

u ls -al ”list”所有的文件详细的权限与属性;

-rw-r--r--1 root root42304 sep 4 18:26 install.log

文件权限 连接数文件所有者文件所属用户组 文件大小文件最后被修改的时间文件名

其中文件权限分为:rw-(文件所有者的权限)r--(同用户组的权限)r--(其他非本用户组的权限)

 

第一个字符“-”代表这个文件:

1) 目录【d】;

2) 文件【-】;

3) 链接文件【l】;

4) 设备文件里面的可供存储的接口设备【b】;

5) 设备文件里面的串行端口设备【c】;

如果文件名之前多一个“.”,则代表这个文件为隐藏文件

改变文件所属用户组:chgrp

改变文件所属用户组的前提是:被改变的组名必需在/etc/group文件内存中,否则修改错误。

① chgrg [-R] 文件目录 ... -R进行递归的持续更改,连同目录下的所有文件、目录;

② chgrg users install.log install.log的所属用户组修改为“users”

改变文件所有者:chown

改变文件的权限:chmod

r:4 w:2 x:1

chmod 777 install.log  :将intall.log的三组权限全部改为rwx

或者

chmod u=rwx,go=r,o=rx install.log u——文件所有者go——文件所属用户组 o——其他非本用户组

复制文件:cp 源文件目标文件;(复制行为会复制执行者的属性与权限!)

2.2. 目录与文件的权限意义

能不能进入某一个目录,只与该目录的x权限有关;如果你拥有r权限但是不具备x权限是无法切换到该目录下,也就是无法执行该目录下的任何命令。

新建目录:makdir 目录(makdir testing);

新建空的文件:touch testing/testing

切换身份:su - 用户名;

删除文件:rm 文件名;

 

2.3. Linux目录配置

/etc :配置文件(该目录下的各文件属性是可以让一般用户查阅的,但是只有root有权利修改!)

u /usr :软件放置处

u /opt :第三方软件

u /boot : 开机与内核文件

u /var ——与系统运行过程有关 /var/mail ——用户邮件信箱 /var/run ——程序相关

/var/spool/news ——新闻组 /var/lock ——程序相关

/dev ——任何设备与接口设备都是以文件的形式存在于该目录下

u /home ——系统默认的用户主文件(~:代表目前这个用户的主文件夹)

u /media ——“媒体

u /mnt ——“用于挂载某些额外的设备

u /sbin——“用来设置系统环境,里面包含了开机、修复、还原系统所需要的命令

u /srv ——“网络服务启动之后,服务所需要取用的数据目录

u /tmp ——“让一般用户或者正在执行的程序暂时放置文件的地方

u /proc /sys ——“虚拟文件系统,不占有硬件物理内存

/bin ——“重要执行文件

/lib ——“执行文件所需的函数库与内核所需的模块

 

2.3.1. /usr目录

ü /usr/local/:系统管理员在本机自行安装下载的软件(非distribution默认提供者),建议安装在此目录下。

ü /usr/src/:一般源码建议放置在这里,而内核源码则建议放置到/usr/src/linux/目录下。

 

2.4. Linux文件与目录管理

2.4.1. 目录与路径

写程序来管理系统的条件下,务必使用绝对路径的写法。

特殊目录:

① . 代表此层目录;

② .. 代表上一层目录;

③ - 代表前一个工作目录;

④ ~ 代表目录用户身份所在的主文件夹;

⑤ ~account 代表account这个用户的主文件夹(account是个账号名称)。

u  目录的相关操作:

① cd:切换目录;

② pwd:显示当前目录;

ü pwd -P: -P参数,会不以连接文件的数据显示,而是显示正确的完成路径。

③ mkdir:新建一个新的目录;

ü -m:配置文件案的权限,直接设置,而不需要看默认权限;

ü -p: 帮助你直接将所需要的目录(包括上层目录)递归创建起来。(不建议使用该参数,因为如果在迭代创建目录时,即使某目录已经存在,系统也不会显示错误信息出来,会造成目录乱七八糟!

④ rmdir:删除一个空的目录(rmdir仅能删除空的目录);

ü -p:连同上层空的目录也一起删除;

执行文件路径的变量:$PATH

① echo $PATH

ü echo : “显示、打印出的意思

ü PATH前面加的$表示后面接的是变量

2.4.2. 文件与目录管理

2.4.2.1. ls相关命令

u ls -aAdfhilnrRSt】目录名称

① -a:全部的文件,连同隐藏文件(开头位.的文件)一起列出来;

② -d:仅列出目录本身,而不是列出目录内的文件数据;

③ -l:列出长数据串,包含文件的属性与权限等数据。

u ls --color={never,auto,always}】目录名称

① nerver:不要依据文件特性给予颜色显示;

② always:显示颜色;

③ auto:让系统自行依据设置来判断是否给予颜色。

u ls --full-time】目录名称

① --full-time:以完成时间模式(包括年、月、日、时、分、秒)输出

② --time={atime,ctime}:输出访问时间或改变权限属性时间(ctime);而非内容更改时间。

2.4.2.2. cp相关命令

u cp -adfilprsu】源文件 目标文件

① -a:相当于-pdr的意思;

② -i:若目标文件已经存在时,在覆盖时会先询问操作的进行;

③ -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);

④ -r:递归持续复制,用于目录的复制行为。

u cp 【属性】源文件1源文件2源文件3 ...目标目录

① 如果源文件有两个以上,则最后一个目的文件一定要是目录

2.4.2.3.  rm相关命令(移除文件或目录)

u rm -fir】文件或目录

① -fforce的意思,忽略不存在的文件,不出现警告信息;

② -i:互动模式,在删除前会询问用户是否操作;

③ -r:递归删除。最常用在目录的删除。(这是非常危险的参数)。

u touch ./文件名:这个命令可以创建空文件。

2.4.2.4. mv相关命令(移动文件与目录,或更名)

u mv -fiu】源文件 目标文件夹

① -f:强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

② -i:若目标文件已经存在时,就会询问是否覆盖;

③ -u:若目标文件已经存在,且源文件比较新,才会更新。

u mv mvtest mvtest2:将目录名mvtest重命名为mvtest2。(rename命令也是可以重命名的,但是该命令是专门进行多个文件名的同时重命名,并非对单一文件名的梗概,与mv不同。)

u  mv 源文件1(文件或目录) 源文件2(文件或目录) 目标文件(此处一定要是目录)。

2.4.2.5. 取得路径的文件名与目录名称

u basename /etc/sysconfig/network ==>> network :(basename获取路径中的文件名);

u dirname /etc/sysconfig/network ==>> /etc/sysconfig:(dirname获取路径中的目录名)。

2.4.3. 文件内容查阅

2.4.3.1. 直接查看文件内容

u cat -AbEnTv:concatenate

① -A:相当于-vET的整合参数,可列出一些特殊字符,而不是空白而已;

② -b:列出行号,仅针对非空白行做行号显示,空白行不标行号;

③ -n:打印出行号,连同空白行也会有行号,与-b参数不同;

④ -T:将【Tab】按键以^I显示出来;

⑤ -v:列出一些看不出来的特殊字符。

u tac 命令是和“cat”命令显示文本的顺序是相反的。

u nl -bnw】文件

① -b:指定行号指定的方式;

ü -b a:表示不论是否为空行,也同样列出行号;

ü -b t:如果有空行,空的那一行不列出行号。

② -n:列出行号表示的方法,主要有方式:

ü -n ln:行号在屏幕的最左方,且不加0

ü -n rn:行号在自己字段的最右方显示,且不加0

ü -n rz:行号在自己字段的最右方显示,且加0

③ -w:行号字段占用的位数。

nl -b a -n rz -w 3 /etc/issue:表示打开该“/etc/issue”文件时,所有行(包含空行)显示行号,并且行号在自己字段的最右方显示,行号具有3位。

u more :(一页一页翻动查看文件内容,但是只能往后翻,不可往前翻);

u less:(一页一页翻动查看文件内容,可以前后翻)。

u head -n number】文件

默认情况下,没有-n参数的时候,是显示文件内容中的前10行。

u tail -n number】文件

默认情况下,没有-n参数的时候,是显示文件内容中的前10行。

u od -t type】文件:(读取二进制文件)

① -t a:利用默认的字符来输出;

② -t c:使用ASCII字符输出;

③ -t d[size]:利用十进制来输出数据,每个整数占用size bytes;

④ -t f[size]:浮点数输出数据;

⑤ -t o[size]:八进制输出数据;

⑥ -t x[size]:十六进制输出数据。

2.4.3.2. 修改文件时间或创建新文件

u Linux系统下的三种时间记录参数的不同意义:

① Modefilecation time mtime):当文件的内容数据更改时,就会更新这个时间。内容数据更改是指文件的内容,而不是文件的属性和权限。

② Status time(ctime):当文件的状态改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间。

③ Access time(atime):当该文件的内容被取用时,就会更新这个读取时间。

u touch -acdmt】文件

① -a :仅修改访问时间;

② -c:仅修改文件的时间,若该文件不存在则不新建文件;

③ -d:后面可以接欲修改的日期而不用目前的日期,也可以使用--date=”日期或时间

④ -m:仅修改mtime;

⑤ -t:后面可以接欲修改的日期而不用目前日期,格式为【YYMMDDhhmm】。

2.4.4.   文件与目录的默认权限与隐藏权限

2.4.4.1. 文件默认权限:umask

目前用户在新建文件或目录时候的权限默认值由“umask”控制。

得知umask:

① umask==>> 0002(只需要看后面三位数字即可,该分数指的是该默认值需要减掉的权限

② umask -S; ==>>u=rwx,g=rwx,o=rx (与上面的分数是一致的,一样的含义。)

修改umask的值的命令:umask 002。(只需在后面加上去掉的分数便可!)

一般默认权限情况:

① “文件默认权限:-rw-rw-rw-;(一般默认设置为无执行(x)权限)

② “目录默认权限:drwxrwxrwx。(若用户新建目录,则由于“x”与是否可以进入此目录有关,因此默认为所有权限均开放。)

如此综合来说,如果默认umask == 0002:

① 新建文件时,在默认权限的基础之上,去掉other“w”权限,则最终生成的文件的权限应该是:-rw-rw-rw-减去(--------w-==> -rw-rw-r--;

② 新建目录时,则是drwxrwx减去(d-------w-) ==> drwxrwxr-x

3. Linux账号管理

4. 而后居委会

5. 软件安装

5.1. 编译问题

u Linux默认是讲函数库放置在/lib/usr/lib当中,如果在编译的时候,即使没有添加-L/lib-L/usr/lib也是没有关系的。如果你需要的链接函数库并非放置在以上两个目录下,那么-L/path是非常重要的。

u -I/...的默认路径是/usr/include

u Gcc或者g++编译的时候:-I/include的路径;-L/lib的路径。

5.2. make进行宏编译

5.2.1. Makefile的基本语法与变量

5.2.1.1. 基本语法

建立生成执行文件目标:

目标(target):目标文件1  目标文件2

<tab> gcc -o 欲新建的可执行文件 目标文件1目标文件2

清除原本所有的目标与可执行文件:

clean(目标):

<tab> rm -f  main mian.o haha.o sin_value.o cos_value.o

5.2.1.2. 变量

Makefile格式:

/**********************************

LIBS = -lm

OBJS = main.o haha.o sin_value.o cos_value.o

main: ${OBJS}

<tab>gcc -o main ${OBJS} ${LIBS}

clean:

<tab>rm -f main ${OBJS}

***********************************/

变量的基本语法:

① 变量与变量内容以=”隔开,同时两边可以具有空格;

② 变量左边不可以有<tab>,例如上面范例的第一行LIBS左边不可以有<tab>

③ 变量与变量内容在=”两边不能具有“:”;

④ 在习惯上,变量最好是以“大写字母”为主;

⑤ 运用变量时,以${变量}$(变量)使用。

⑥ 在该shell的环境变量时可以被套用的,例如提到的GFLAGS这个变量;(不太明白意思)

⑦ 在命令行模式也可以定义变量

环境变量取用的规则:

① Make命令行后面加上的环境变量为第一优先;

② Makefile里面指定的环境变量第二优先;

③ Shell原本具有的环境变量第三优先。

$@:代表目前的目标

例如:

main:${OBJS}

<tab>gcc -o $@ ${OBJS} ${LIBS}  ==>其中$@就是表示“main”。

5.2.1.3. 安装软件的注意事项

建议用户自行安装的软件则建议放置在/usr/local里面。

如果是源码,则建议放置在/usr/local/src下面。

u Tarball安装软件过程

① 确保解压缩文件到/usr/local/src目录下:

cd /usr/local/src //定位到/usr/local/src

tar -zxvf /root/ntp-4.2.4p7.tar.gz //解压软件到当前目录下

② 进入到解压后的软件文件夹下,检查configure支持参数,并生成makefile规则文件:

cd ntp-4.2.4p7

vi INSTALL

./configure --help|more //用于查询可用的参数有哪些

./configure --prefix=/usr/local/netp --enable-all-clocks --enable-parse-clocks //后面的三个参数是通过查询了上面的help得到的;(此步骤会产生makefile文件)

③ 开始编译与安装:

make clean; make

make check

make install

5.2.1.4. 将动态内存加载到高速缓存中

具体步骤:

① /etc/ld.so.conf里面写下想要读入高速缓存当中的动态函数库所在的目录,而不是文件。

② 利用ldconfig这个可执行文件将/etc/ld.so.conf的数据读入缓存当中。

③ 同时将数据记录一份在/etc/ld.so.cache这个文件当中。

具体操作实例:假设我的MYSQL数据函数库在/usr/lib/mysql当中,如何读入cach??

① vi /etc/ld.so.conf

② 新增/usr/lib/mysql

③ ldconfig

④ ??此处的上述步骤第三步步不见了??

u ldconfig -f conf】 【-C cache

① -f conf:那个conf指的是某个文件名,即conf作为library函数库的取得路径,而不以/etc/ld.so.conf为默认值

② -C cahe:那个cache指的是某个文件名,即cache作为缓存暂存的函数库资料,而不以/etc/ld.so.cache为默认值

③ -p:列出目前的所有函数库数据内容(/etc/ld.so.cache内的数据)

u ldconfig -p

5.2.1.5. 动态函数库的解析ldd

判断可执行的二进制文件含有什么动态函数库:ldd -vdr】文件名

① -v:列出所有内容信息

② -d:重新将数据丢失的link点显示出来!

③ -r:将ELF有关的错误内容显示出来。

5.2.1.6. MD5编码用于查询指纹编码是否被篡改。                                                                                                            

 

 

 

6. 软件安装RPM

 

6.1. RPM

6.2. DPKG

0 0
原创粉丝点击