Linux启航之笔记篇

本文预计阅读时间 32 分钟

CentOs修改配置:

展开

CD/DVD(IDE)选择“使用ISO映像文件 ”

网络适配器:选择桥接模式

打印机:不启动

显示器:指定800*600

开启虚拟机:选第一个就可以

ctrl+alt:释放鼠标和键盘

Skip:不用检查磁盘

查看-自定义-选项卡

next(右下角)...

您要进行哪种类型的安装:

创建自定义布局-》sda空闲-》标准分区-》挂载点/boot

添加分区-》文件系统类型选swap(交换分区(虚拟内存)),大小2000(不要超过8g)

继续拿空闲的创建/,选择使用全部可用的空间

下一步-》格式化-》将修改写入磁盘(grub:引导系统程序)

选择Minimal即可


Linux下设置IP:

展开

ifconfig:查看网络IP

ifconfig -a:查看未安装的网卡

1.dhclient:设置网卡(自动获取IP地址)

2.vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=no修改成yes,BOOTPROTO=dhcp修改成static

最后添加IPADDR=10.72.133.31

NETMASK=255.255.255.0

(route -n:查询网关)GATEWAY=10.72.133.1

PEERDNS=no为了不让DNS去影响resolv.conf

(ifconfig -a:查询IP地址)

(ip add:查询IP地址)

DNS1=8.8.8.8

DNS2=4.4.4.4

wq

cat !$:查看上条命令的参数

然后重启网络服务:/etc/init.d/network restart

查看是否配好网络:ifconfig或者cat /etc/resolv.conf

> /etc/resolv.conf:命令的重定向,相当于把/etc/resovl.conf这个文件给清空

!/etc/:命令历史里面离我最近的以/etc开头的命令(特殊字符不支持)

出现的问题1.(ping www.baidu.com不通):

在设置好以上之后,

cd /etc->

vi /etc/sysconfig/network->

添加网关(GATEWAY=192.168.1.1<和物理主机的一样>)

2.虚拟机中的linux和物理主机ping不同,但是ping www.baidu.com能通

只需要把物理主机的防火墙关掉即可


建立远程链接

展开

setenforce 0:关闭防火墙

putty:密钥问题:mkdir .ssh

vi .ssh/authorized_keys(将私钥粘贴进来)

chmod 600 <img src="C:/Users/李鑫帅/Desktop/QQ图片20170402175010.jpg" alt="Linux启航之笔记篇" width="593" height="295" border="0" alt="">!$(文件)

chmod 700 .ssh/(目录)

setenforce 0: setenforce 0:关闭防火墙

vi /etc/selinux/config(永久关闭防火墙-》SELINUX=disabled)

iptables -F(把iptables默认的防火墙规则清空)

/etc/init.d/iptables save(保存下)

 


yum的使用

展开

yum是一个在线安装软件包的工具,它可以帮我们解决软件包的依赖

yum list:列出所有安装过的和未安装的软件包

yum grouplist:可以列出所有安装过和未安装的套件

yum gropinstall -y "Desktop";yum groupinstall -y"X Window System",使用这个命令安装图形化桌面,init 5或者startx可以让我们切换到图形


单用户(类似于windows系统的安全模式):

展开

重启Linux,3秒钟内,按一下回车

若有加grub密码,需要先按p,输入密码方可进行后面的操作

按e,选择第二行,再按e

在最后面加入single或者数字1或者字母S

先按回车再按b

这样就可以进入单用户模式,此时可以修改root密码


救援模式(类似于windows装系统的PE,BIOS可以指定计算机的启动盘,要进pe就要在BIOS里面设置好。grub是确定启动哪个系统):

展开

开机-》BISO-》pe(救援模式)

开机-》grub(确定启动哪个系统)

若是真机,需要先安装光盘或者U盘,重启进入bios调成光驱启动,选择“Rescue installed system”

语言默认,键盘类型默认

Rescue Method 保持默认

是否在使用rescue模式的时候启用网络,这个根据实际情况

三种模式可以选择:shell模式会直接进入命令行,可以进行的操作有编辑文件、修改用户密码等;fakc是诊断模式;reboot会直接重启;选择第一个shell

执行一个命令:chroot/mnt/sysimage


运行级别

展开

安装man:yum install -y man

Linux有7个运行级别:0-6

0:关机

1:单用户

2:不带NFS服务的3级别

3:命令行模式

4:保留的

5:图形化模式

6:重启

(如果不联网,2级别和3级别是一样的)

可以使用命令init+运行级别数字来进行各个模式的切换,比如我们安装好图形页面后,在命令init5可以进入到图形页面下。而在图形页面下,打开终端软件,输入命令init3 可以进入到命令页面。输入init 可以关机,输入init 6可以重启。


Linux启动过程:

展开

Linux启动过程参考全面的帖子:http://ask.apelearn.com/question/7505

Linux启动过程的图:www.aminglinux.com/study_v2/boot.jpg

BIOS加电自检,找启动介质则找到MBR(主引导记录)

找到MBR后,则根据bootloader(grub)设置找的内核所在位置

执行Linux内核映像代码,检测和加载硬件驱动

驱动加载完成后,内核把主动权交给了init

init会根据系统设定的运行级别做系统初始化

HD:硬盘


w命令:

展开

w命令也用于显示登录到系统的用户情况,但是与who不同的是,w命令功能更加强大,

它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,

感觉比较实用,具体用法如下:

w命令的显示项目按以下顺序排列:

当前时间,系统启动到现在的时间,登录用户的数目,系统在最 近1秒、5秒和15秒的平均负载。

然后是每个用户的各项数据,项目显示顺序如下:登录帐号、终端名称、远 程主机名、登录时间、
空闲时间、JCPU、PCPU、当前正在运行进程的命令行。

w -[husfV] [user]

下面对参数进行说明:

-h 不显示标题。

-u 当列出当前进程和CPU时间时忽略用户名。这主要是用于执行su命令后的情况。

-s 使用短模式。不显示登录时间、JCPU和PCPU时间。

-f 切换显示FROM项,也就是远程主机名项。默认值是不显示远程主机名,

当然系统管理员可以对源文件 作一些修改使得显示该项成为默认值。

-V 显示版本信息。

User 只显示指定用户的相关情况

切换用户用out+F(1,2,3,4...),前提必须在本地


ls命令(当前目录下所有的文件和目录,只有当前一级的)(list的简写):

展开

权限 硬链接(inode) 属主 属组 目录或文件的大小 最后更改的时间 文件名

ls / :根分区下的所有文件和目录

-l:显示目录下的详细信息(ll命令相当于:ls -l)

-a:显示全部的文件(把隐藏的文件也调出来了)

设置隐藏文件的方法:在文件名前加“.”即可

.当前目录

..上一级目录(父目录)(父目录也是子目录)

-d:显示当前目录

-ld:显示“当前这个目录”的一些详细信息

ls -ld /tmp:只想看/tmp的详细信息

ls -ld/boot/lost+found/:显示系统什么时候安装的

-lt:按时间先后顺序对详细目录进行排序

-lrt:时间逆向

修改时间用touch anaconda-ks.cfg(内容不变,只改变时间)

ls -i:可以查看inode(一个inode指定一个文件,但一个inode可以让几个文件去用它)
参考inode的理解:http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html
多个文件可以指定一个inode
目录有硬链接,不可以自己创建硬链接

ls -la 12/:里面有几个d开头的,就有几个硬链接,意思就是有几个文件使用了相同的inode

^d:以d开头的意思

ls -lh:显示看着舒服点的文件大小

ls:只是这个目录本身的大小,并不是这个目录下所有文件和目录的大小

ls -F(可以区分文件类型):如果是目录则显示“目录/”;如果是软连接的话,最后有个@


which命令:去搜这个命令的绝对路径(从根开始的路径)在哪里(如 which ll):

展开

alias:别名的意思(可以自定义别名)

自定义别名:alias aming='ls /tmp/'(只在当前窗口下生效)

取消别名:unalias aming

定义永久生效的别名:

vi /etc/bashrc中添加要定义的别名

#source /etc/bashrc使其生效

如何查看自己设置了哪些alias:直接alias即可


目录结构:(参考http://yangrong.blog.51cto.com/6945369/1288072)

展开

/bin,/sbin,/usr/bin,/usr/sbin 放命令的目录,sbin是超级用户root才可以用的命令

bin指二进制的文件(绿色的文件)

/boot Linux内核及引导系统程序所需要的文件目录

/dev存放的是Linux的外部设备

/etc配置文件目录

/home用户家目录 命令:user add

root用户的家目录/root下

普通用户的家目录在/home目录下(/home/username)

/lib 系统(32位)中所有的库文件

64位系统在/lib64下

ldd:可以查询命令依赖的一些库

ldd /bin/ls:可以列出ls依赖的一些库

/media,/mnt默认为空

/opt:是存放某些大型软件或者某些特殊软件的目标(默认为空)

/proc:系统内核映射

修改内核的参数,去这个目录下去找

echo 1>/proc/sys/net/ipv4/icmp_echo_ignore_all:

修改内核的参数,上面这条命令可以让对方ping不通自己,但是自己可以ping通对方

/root root用户的家目录

/selinux 一种防火墙(很少用)

/srv存放一些服务启动之后需要提取的数据(几乎不用)

/sys/class包含所有注册在kernel里面的设备类型,链接到device

/tmp 临时文件(windows下是C盘的temp下)

/usr用户程序存放目录,类似win program files文件夹

/var存放着在不断扩充着东西,我们习惯将那些经常被修改的目录放在这个目录下


cd命令:

展开

-:切换到上一次的目录下

~:切换到家目录下

.:当前目录

..:上一级目录

绝对路径是指以根开头的路径

相对路径指相对于当前路径来说的路径


环境变量PATH的用法:

展开

echo $PATH可以查看系统的环境变量PATH的值,使用which命令可以查看某个命令的绝对路径

PATH=$PATH:/tmp(只在当前窗口可用)

想永久生效:vi /etc/profile->到文件的最后(G:调到文件的最后)->在最后一行输入PATH=$PATH:/tmp->重启生效;或者直接运行:source /etc/profile


快捷键:

展开

ctrl+c:取消命令(使用stty -echoctl:可以消除^c;使用stty ehcoctl:可以恢复)

(想永久生效就运行命令vi .bashrc->在最后添加stty -ctlecho)

ctrl+z:暂停命令,执行fg回到刚才没执行完的命令

ctrl+e:光标到行尾

ctrl+u:删除光标前所有字符

ctrl+k:删除光标后所有字符

ctrl+l:清屏(同clear)

ctrl+d:退出登录 == exit

ctrl+s:锁住命令终端,按任何键都不会有反应

ctrl+q:解除命令终端

Tab:补齐命令


chown:更改所有者

展开

chown aming 12:只会修改12这个目录的属主,但是不会修改目录下文件的属主

要想把12这个目录及目录下的文件的属主都修改掉:chown -R aming 12

chown aming 2.txt:把2.txt的属主改成aming

chown :aming 2.txt:把2.txt的属组改成aming

chown aming:root 2.txt:把2.txt的属主和属组分别修改成aming和root


chmod:修改权限

展开

rwx:r=4,w=2,x=1。rwx=7、r--=4、r-x=5、rw-=6

chmod a=all u=user g=group o=other

chmod 420 2.txt:-r---w----

chmod u+x 2.txt:指属主可执行

chmod u-x 2.txt:指属主不可执行

chmod o+r 2.txt:给other用户一个可读的权限

chmod -R 777 12:将12的权限模式更改为0777(rwxrwxrwx)

将12/1的权限(同上)

将12/1.txt的权限(同上)

chmod -Rv 777 12:修改权限的时候可视化了

umask:用来规定文件或者目录的默认权限的

默认目录权限:755,默认文件权限:644

root用户执行umask:0022,即(----w--w-)

普通用户用户执行umask:0002

目录是rwxrwxrwx(777)减去umask,文件是rw-rw-rw-(666)减去umask

(rwxrwxrwx)-(----w--w-)=(rwxr-xr-x)=755

修改umask:umask 001


和目录相关的几个命令:

展开

目录必须有x的权限(cd目录就是x权限),文件没有x的权限
mkdir:创建目录

mkdir /tmp/aming:在绝对路径下创建一个aming的目录

mkdir 123:在相对路径下创建一个123的目录

mkdir 12 34:mkdir可以一次性创建多个目录

-p:创建一串目录

-vp:可视化创建一串目录
rmdir:删除目录(目录必须为空)(不常用)

-p:将给出的一串目录和文件全部删除了
rm:不仅可以删除目录(不是直接),还可以删文件

/bin/rm

-r:可以直接删除目录

rm -i:会提示是否要删除,如果不想提示,可以把别名去掉(unalias),或者执行/bin/rm

-f:强制删除文件

-rf:强制删除目录及下面的文件
cp:拷贝

/bin/cp

cp 12 /tmp/:会出现(cp:略过目录“12”)

解决:cp -r 12 /tmp/

如果覆盖的文件或者目录存在于目标目录下,会将该文件或者该目录拷贝到目标目录下面
mv:移动或者重命名

/bin/mv

mv 1.txt 2.txt:将1.txt移动到2.txt里面,也可以说重命名1.txt为2.txt


跟文件相关的命令:

展开


cat:查看

-A:有一个结尾标志$
tac:反过来查看(几乎不用)
more:看一个长的文件的时候

执行查看命令的时候,再执行more!$

用空格键或者回车键或者b进行控制查看的文件
less:同上

按空格或者回车:向下看

PgUp:往上看

PgDn:往下看

g:回到行首

G:回到行尾

j:往下看(减下去)

k:往上看(看上来)

ctrl+b:向上

ctrl+f:向下
查询:/要搜索的字段

按n根据要搜索的字段向下走

按N...向上走

?要搜索的字段

和/要搜索的字段相反

q:退出
head:默认只显示文件头的前10行

-20(同-n 20):只看前20行
tail:默认只显示最后10行

-5(同-n 5):只看最后的5行

查看最新的系统日志:tail /var/log/message

-f:动态的去查看(比如动态查看系统日志:tail -f /var/log/message


lsattr:列出当前目录下所有目录和文件的权限

展开

查看当前这个目录的权限:lsattr

-R:可以另外列出子目的权限


chattr:给目录和文件追加权限的

展开

+i 2.txt:给2.txt一个权限(不能修改,不能删除,不能往里面写)

-i 2.txt:去除2.txt上的权限

+a:只能执行追加的操作(文件),如果是目录(只能在里面创建文件或目录,但是不能删除本目录和不能修改、重命名本目录)

如,只能执行echo "111122222333" >>2.txt,不能执行echo "111122222333" >2.txt(即在后面添加新的一行)

-a:去除上面的权限


set_uid:4;set_gid:2;stick_bit:1

展开

chmod u+s /usr/bin/passwd:则权限为4755

继续执行chmod g+s /usr/bin/passwd:权限就为6755
s:叫做set_uid

s:允许执行这条命令的用户(root或者普通用户)临时拥有该命令的属主的权限

如果没有执行的权限,则s变成S,S没有意思,因为没有执行的权限

chmod u+s:赋予s的权限
sgid:叫做set_gid(不能作用于目录)

sgid:给这个用户赋予属组的权限,可以给予新创建文件或者目录的父目录的属组的权限

chmod g+s:赋予sgid的权限
t(stick_bit):防删除位(谁创建的谁可以去删除这个目录,其他用户都没有这个权限)

只能作用于目录

chmod o+t:防止其他用户去删除


添加用户:

展开

useradd test1

usetadd test2

在root用户下临时切换到test用户下(不需要密码):

su - test1

切换回来:logout

普通用户只要有w权限,就可以删除root用户的文件

普通用户也可以强制向root用户的文件中写东西,不过写完,这个文件的属主和属组都变成普通用户名了

如果没有x的权限,就无法打开文件或者目录

root用户可以任意删除其他用户的文件或者目录


在linux下搜索的命令:

展开

which:会列出别名和绝对路径

which cd:cd是系统内置的命令,在内核中,所以会搜不到

whereis:会搜出与这个命令相关的文件

locate:安装用到的库是mlocate yum install -y mlocate,再生成数据库updatedb,更新时间是每天的凌晨四点,找文件也有一定的局限性

不会搜索/tmp下的文件

新创建的文件,搜不到,因为没有更新数据库,需要更新数据库(updatedb)才可以搜到
find(根据任何条件全部可以搜到):find /root -type f:搜索root下所有的文件(包括隐藏的文件)

find /root -type d:搜索root下所有的目录

fing /root -name "aming":搜索root下所有的名为aming的文件

“*”:通配符

fing /root -name "aming*":同上,可以把aming后面还有一些内容的都搜索出来

find /root/-name "*.txt":可以搜索root下,所有的txt文件

find /root/-name "*txt" -mtime +5:把创建5天之前的txt文件搜索出来

find /root/-name "*txt" -mtime -5:把创建5天之内的txt文件搜索出来

find /root/-name "*txt" -mmin -5:把创建5分钟之内的txt文件搜索出来

find /root/-name "*txt" -mmin -60 |xargs ls -l(用到了管道):搜索出创建在1小时之内的txt文件,并显示出具体的创建时间

find /root/-name "*txt" -mmin -60 -exec ls -l {} \;:作用同上

除目录之外,其他所有文件全部列出来:find /etc/init.d/ ! -type d

find /etc/ -type d -o -mtime -1:搜索etc目录下,type是d的或者一天之内的文件

-o:或者的意思,不加就是并且的意思


atime、ctime、mtime:

展开

atime:指access time,即文件的最近的一次访问时间

ctime:指change time,即文件状态(如文件的大小)最新改变的时间(当更改inode信息(inode:有文件大小,时间信息,权限,属主,属组等)的时候,就会去修改ctime)

mtime:指modify time,即文件数据最新的修改时间(ls一下,看到的是mtime)

mtime变,ctime必变(即使改前改后文件的大小相同)

stat 3.txt:会看到3.txt的Access,Modify,Change


软连接(又称为符号链接,相当于windows中的快捷方式):

展开

建立软连接(必须加绝对路径):ln -s /root/3.txt /tmp/21.txt:将3.txt文件创建软连接到/tmp下,并修改名字为21.txt

ln -s /root/aming /tmp/12/:将aming这个目录创建软连接到/tmp/12/下,同名

执行命令:cd /tmp/12/aming

pwd(显示的逻辑):出现的是软连接,如果要显示真实的文件,则

pwd默认为pwd -L(logical)(逻辑的)

pwd -P(phycial)(显示物理的文件)


硬链接(不可以作用于目录,不能跨分区,说白了就是一个指针):

展开

ln 3.txt 4.txt

本质是把一个文件的inode号给另一个文件,两个同时使用同一个inode号,换句话说就是给一个文件做备份,可以删除、移动任何一个文件,删除、移动3.txt,另一个不受影响

ln 3.txt /boot/4.txt(不可以,不能跨分区)


Linux用户和组管理:

展开

/etc/passwd:记录用户信息的文件

cat /etc/passwd:...

密码存放在shadow里

用户名 x(表示密码) uid gid 用户的解释说明相关的字符(没有意义) 家目录 shell(/bin/bash)(用来和用户交互的)

sbin/nologin:没有shell,此用户不允许登录

0-499:系统的一些服务

普通用户默认从500开始

普通用户uid和gid可以修改

uid最大为2^32-2

passwd user1:给user1用户修改密码

/etc/shadow:存密码的(还有一些密码的属性)

|用户名 密码 上次更改密码的日期(距离1970/1/1过去了多少天,如15980天)

|要过多少天才能改密码 过多少天密码就失效了 临到期前多少天报警 密码失效后还可以使用的期限

|账号的生命周期 保留用的(没有意义)

$6$K37...是sha-512加密的

$51313...是sha-256加密的

$11666...是md5加密的

新创建的用于如果没有设置密码,则为!!,表示密码为空

*:表示用户被锁定,无法登录

修改时间:date -s "2015-03-21 20:08:50"

ntpdate time.windows.com(同步到微软的时间服务器)
创建组的命令:groupadd grp1

查看组:tail /etc/group

组的密码:tail /etc/gshadow

group -g 1000 grp3:创建一个组id为1000的组

删除组的命令:groupdel grp3

要想删除组,必须先把组中的用户删掉
创建用户的命令:useradd user1

useradd -u 505 user2:创建一个用户属主和属组都为505的用户

useradd -u 508 -g 500 user3(gid500必须存在)

useradd -u 508 -g 500 -d /home/user44 user4:指定user4的家目录

useradd -u 508 -g 500 -M user4:不去创建user4的家目录,要想切换到user4,只能在root下手动去创建user4的家目录,然后cp -v /etc/skel/.b* /home/user4

(在/etc/skel下,有用户的配置信息,全是隐藏文件)

useradd -u 508 -g 500 -s /sbin/nologin user4:创建的user4无法登陆

usermod:修改用户账户属性信息

usermod -s /bin/bash user4:可以登录user4

usermod -d /home/user4 user4:修改user4的家目录

usermod -u 509 user4:修改属主为509

-L:将用户锁死

-U:解锁

chfn user4(几乎不用):修改user4的/etc/passwd中的解释说明的信息

useradd -u 508 -g 500 -G user1,user2 user4:创建一个用户user4加入到

属组500中,并加入到user1和user2的属组中,user1和user2是user4的附属组

也可以这样写:useradd -u 508 -g 500 -G user1,505 user4

用户的家目录在/home,邮件目录在/var/spool/mail

要想删除一个用户,需要在/etc/passwd;/home;/var/spool/mail中将用户全部删掉
一次性删除用户的命令:userdel -r user4

了解:

mkpasswd:随机产生不规则密码的命令(依赖expect包)

-l:指定密码长度(mkpasswd -l 15)

指定特殊符号的数量:mkpasswd -l 15 -s 0(s:special)

keepass:记录密码的(一定去官网下载)

持续更新中... :grin: :grin: :grin:

weinxin
七墨微信
请留下您宝贵的意见,或者每天来本站的文章页面签到,七墨将不胜感激~~
七墨

来一发,更加快活

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: