1.通过命令行重启linux操作系统
shutdown -r now
reboot
2.命令行中快速删除光标前后内容
ctrl+u 光标前
ctrl+k 光标后
3.更改文件权限
chmod [-R] <+|-|=> file|dir
chmod 权限值 file
rm -rf A*
cp -r dir1 dir2
mv file directory
mv file file1
mv /dir/file /dir/file1
chown username file|directory
chgrp groupname file|directory
tail /etc/group
wc -l /etc/passwd
10.vim末行模式使用
vim file
:20,50 d 删除20-50之间所有行
11./var 用于存储大文件的溢出区
12.查看文件头3行和尾3行
head -3 file
tail -3 file
13.添加设置账户
useradd -G 1001 -e 20180404 u1
useradd -u 1002 u2
gpasswd -a u1 g1
gpasswd -d u3 g1
pwd
16.一次性创建多个目录
mkdir -p text/1/2/3/4
17.查看/etc下的所有文件
ls -al /etc
18.最快的返回到当前账户的宿主目录
cd ~
cd
19.只查看/etc单个目录的信息,并以长格式显示
ls -ld /etc
du -sh /etc
应用程序一般安装目录 | /usr |
日志存放目录 | /var/log |
root宿主目录 | /root |
user1宿主目录 | /home/user1 |
22.删除/tmp下所有的文件
rm -rf /tmp/*
rm -rf /tmp/A*
24.用vim把文档中的50到100行之间的man改为MAN
:50,100 s/man/MAN/g
25.编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下
26.编写shell脚本获取本机的网络地址
本机的ip地址是192.168.100.2/255.255.255.0
那么它的网络地址是192.168.100.1/255.255.255.0
27.命令行下发邮件
发件人:[email protected],收信人:[email protected]
28.linux下改IP,主机名,DNS
vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/sysconfig/network
vim /etc/resolv.conf
第一次握手,建立连接,客户端发送SYN包到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手,服务器收到SYN,同时自己也发送一个SYN包和一个ACK包来确认客户端的SYN,并进入SYN_RECV;
第三次握手,客户端收到服务器发来的SYN+ACK后,回复服务器端一个ACK确认,发送完毕后,双方进入ESTABLISHED状态。
三次握手成功后,开始传输数据。
30.GPL,GNU,自由软件
GPL:(通用公共许可证):一种授权,任何人有权取得、修改、重新发布自由软件的权力。
GNU:(革奴计划):目标是创建一套完全自由、开放的的操作系统。
自由软件:是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。主要许可证有GPL和BSD许可证两种。
31.关于选择Linux操作系统版本
一般来讲,桌面用户首选Ubuntu;服务器首选RHEL或CentOS,两者中首选CentOS。
根据具体要求:
1)安全性要求较高,则选择Debian或者FreeBSD。
2)需要使用数据库高级服务和电子邮件网络应用的用户可以选择SUSE。
3)想要新技术新功能功能可以选择Feddora,Feddora是RHEL和CentOS的一个测试版和预发布版本。
4)根据现有状况,绝大多数互联网公司选择CentOS。现在比较常用的是6系列,现在市场占有大概一半左右。另外的原因是CentOS更侧重服务器领域,并且无版权约束。
32.初学者在Linux系统的开机启动项如何选择
1).crond: 该服务用于周期地执行系统及用户配置的计划任务。有要周期性执行的任务计划需要开启,此服务是生产场景必须要用的一个软件。
2).iptables: iptables包过滤防火墙,有外网IP时,考虑开启。
3).network: 启动系统时,若想激活/关闭启动时的各个网络接口,则应(必须)考虑开启。
4).sshd: 远程连接Linux服务器时需要用到这个服务程序,所以必须要开启,否则将无法远程连接到Linux服务器。
5).rsyslog: 是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog将各种信息收集写入到系统日志文件中,CentOS6以前此服务的名字为syslog。
6).sysstat: 是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于Linux系统性能数据很有帮助,比如CPU使用率、硬盘和网络吞吐数据等,这些数据的分析,有利于判断系统运行是否正常,所以它是提高系统运行效率、安全运行服务的助手。
33.Linux系统优化的12个步骤
⑴登录系统:不使用root登录,通过sudo授权管理,使用普通用户登录。
⑵禁止SSH远程:更改默认的远程连接SSH服务及禁止root远程连接。
⑶时间同步:定时自动更新服务器时间。
⑷配置yum更新源,从国内更新下载安装rpm包。
⑸关闭selinux及iptables(iptables工作场景如有wan ip,一般要打开,高并发除外)
⑹调整文件描述符数量,进程及文件的打开都会消耗文件描述符。
⑺定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满(c6.4默认没有sendmail,因此可以不配。)
⑻精简开机启动服务(crond、sshd、network、rsyslog)
⑼Linux内核参数优化/etc/sysctl.conf,执行sysct -p生效。
更改字符集,支持中文,但是还是建议使用英文,防止乱码问题出现。
⑾锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 处理以上内容后,把chatter改名,就更安全了。)
⑿清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。
34.Linux运行级别0-6的各自含义
0:关机模式
1:单用户模式<==破解root密码
2:无网络支持的多用户模式
3:有网络支持的多用户模式(文本模式,工作中最常用的模式)
4:保留,未使用
5:有网络支持的X-windows支持多用户模式(桌面)
6: 重新引导系统,即重启
35.Linux系统从开机到登陆界面的启动过程
⑴开机BIOS自检,加载硬盘。
⑵读取MBR,MBR引导。
⑶grub引导菜单(Boot Loader)。
⑷加载内核kernel。
⑸启动init进程,依据inittab文件设定运行级别
⑹init进程,执行rc.sysinit文件。
⑺启动内核模块,执行不同级别的脚本程序。
⑻执行/etc/rc.d/rc.local
⑼启动mingetty,进入系统登陆界面。
36.Linux下软链接和硬链接的区别
在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。
1)默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接。
2)硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,
3)ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。
4)删除软链接文件,对源文件和硬链接文件无任何影响。
5)删除文件的硬链接文件,对源文件及软链接文件无任何影响。
6)删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。
7)同时删除源文件及其硬链接文件,整个文件才会被真正的删除。
8)很多硬件设备的快照功能,使用的就是类似硬链接的原理。
9)软链接可以跨文件系统,硬链接不可以跨文件系统。
37.Linux下文件删除的原理
Linux系统是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说每个文件两个link计数器来控制i_count和i_nlink。当一个文件被一个程序占用的时候i_count就加1。当文件的硬链接多一个的时候i_nlink也加1。删除一个文件,就是让这个文件,没有进程占用,同时i_link数量为0。
38.VI编辑器的使用
1)vi编辑器是linux系统下最最基本和最常用的标准文本编辑器。
2)vi编辑器有三种工作模式:普通模式、编辑模式、命令模式。
3)普通模式下的键盘输入任何字符都是当作命令来执行的,也可以输入命令进行光标的移动,字符、单词、行的复制、粘帖以及删除等操作。
4)编辑模式主要用于文本的输入。在该模式下,用户输入的任何字符都被作为文件的内容保存起来。
5)命令模式下,用户可以对文件进行一些如字符串查找、替换、显示行号等操作还是必须要进入命令模式的。
6)在普通模式下输入冒号即可进入命令模式,此时vi窗口的状态行会显示出冒号,等待用户输入命令。“i”插入模式,即可以进行编辑。用户输入完成后,按【Esc】之后编辑器又返回到普通模式下,在命令模式下,保存退出,可以使用的命令为wq和x。前面加!表示强制退出,强制保存等。
39.用户管理的相关命令及用途
#组管理命令
groupadd #添加组
groupdel #删除用户组
groupmod #修改用户组
groups #显示当前用户所属的用户组
grpck #检查用户组及密码文件的完整性(etc/group以及/etc/gshadow文件)
grpconv #通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv #通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件 。
#用户管理命令
useradd #添加用户
adduser #添加用户
passwd #为用户设置密码
usermod #修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等
pwcov #同步用户从/etc/passwd 到/etc/shadow
pwck #pwck是校验用户配置文件/etc/passwd 和/etc/shadow文件内容是否合法或完整
pwunconv #执行pwunconv指令可以关闭用户投影密码,它会把密码从shadow文件内,重回存到passwd文件里。
finger #查看用户信息工具(危险命令,一般不用)
id #查看用户的UID、GID及所归属的用户组
chfn #更改用户信息工具
su #用户切换工具
40.查看当前哪些用户在线的Linux命令
w #显示目前系统登录用户
who #显示目前已登录用户信息
last #列出目前与过去登入系统的用户相关信息
lastlog #检查某特定用户上次登录时间
whoami #打印与当前生效的用户ID关联的用户名
finger #用户信息查找程序
id #显示指定用户或当前用户的用户与组信息
41.Linux中重要的文件夹及包含内容
1) /目录下的文件夹里面分别是以下内容:
/usr 包含所有的命令和程序库、文档和其他文件及当前linux发行版的主要应用程序
/var 包含正在操作的文件,还有记录文件、加密文件、临时文件等
/home 除了root用户外的所有用户的配置文件,个性化文件和主目录,即家目录
/proc 虚拟目录,该目录实际上指向内存而不是硬盘
/bin 系统执行文件(二进制文件)普通用户可以使用
/sbin 系统执行文件(二进制文件)不能被普通用户使用,通常由root用户使用
/etc 操作系统的配置文件
/root root用户的家目录
/dev 系统设备文件,linux所有设备都是以文件的形式被处理,该目录不包含驱动程序
/lib 程序和核心模块共享库(仅限于/下的程序)
/boot 系统引导、启动文件,通常grub也在这里
/opt 可选应用程序目录
/tmp 临时文件,系统会自动清理
/lost+found 恢复文件(类似回收站)
/media 所有的磁盘(有时有光盘)将以文件夹的形式挂载,光盘镜像也可以挂载
/cd-rom 挂载光盘的地方
2) /usr目录下的文件比较重要,其作用下面分类列出:
/usr/X11 X-windows桌面环境
/usr/doc linux系统的文档资料
/usr/share 独立于当前计算机的数据结构,如字典中的词
/usr/bin 类似/bin但是不参与启动,大部分命令都在这里
/usr/local 本地管理员安装的应用程序
/usr/local/bin 用户安装的应用程序(部分)
3) /proc目录的内容
/proc/cpuinfo 处理器的信息
/proc/devices 当前运行内核的所有设备清单
/proc/dma 当前正在使用中的DMA通道
/proc/filesystem 当前运行内核所配置的文件系统
/proc/interrupts 当前使用的中断和曾经有多少个中断
/proc/ioports 正在使用的I/O端口
42.关机和重启服务器的命令
1)shutdown
[-t] 指定在多长时间之后关闭系统
[-r] 重启系统
[-k] 并不真正关机,只是给每个登录用户发送警告信号
[-h] 关闭系统(halt)
2)halt
halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。
halt命令的部分参数如下:
[-f] 没有调用shutdown而强制关机或重启
[-i] 关机或重新启动之前,关掉所有的网络接口
[-p] 关机时调用poweroff,此选项为缺省选项
3)reboot
reboot工作过程与halt类似,作用是重新启动,而halt是关机。其参数与halt类似。
4)init
init是所有进程的祖先,其进程号始终为1。init用于切换系统的运行级别,切换的工作是立即完成的。init 0命令用于立即将系统运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动。
42.linux系统集权分治的权限分级精细管理
1)收集以及制定用户和权限的匹配信息,原则是给于最小权限,但是又能完成所承担的工作职责。
2)各个用户组设置对应权限,用什么给什么,精细到每一条指令上根据分组情况。
3)创建规划权限分组的用户.添加相关用户组。并修改etc/sudoers配置文件。
4)增加sudo的权限开放,确定相关用户加入如soduers权限列表,并详细设置所开放权限内容,并选择是否需要密码的相关执行权限开放。(注意ALL权限,以及密码修改权限设置)。
5)不建议先给all权限,后面排除。建议使用白名单。
6)实战调试测试相关权限是否正确配置完成。
7)编写操作说明,及相关注意事项。
8)调试完毕,邮件周知所有相关人员系统权限设置生效,并附带操作说明及相关注意事项。
43.一台办公室内主机无法上网的排查步骤
1)首先确定物理链路是否联通正常。
2)查看本机IP,路由,DNS的设置情况是否达标。
3)telnet检查服务器的WEB有没有开启以及防火墙是否阻拦。
4)ping一下网关,进行最基础的检查,通了,表示能够到达服务器。
5)测试到网关或路由器的通常情况,先测网关,然后再测路由器一级一级的测试。
6)测试ping公网ip的通常情况(记住几个外部IP),
7)测试DNS的通畅。ping出对应IP。
8)通过以上检查后,还在网管的路由器上进行检查。
44.Linux shell中单引号、双引号及不加引号的简单区别
单引号:所见即所得,即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就输出什么。
双引号:把双引号里面的内容给输出出来,如果内容中有命令、变量等,会先把,变来那个、命令解析出结果,然后输出最终内容。
双引号内的命令或者变量写法'命令或变量'或$(命令或变量)
无引号:把内容输出出来,可能不会键含有空格的字符串,视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出来,然后输出最终内容,如果字符串中带有空格等特殊字符,则不能完整输出,需要改加双引号。一般连续的字符串,数字,路径等可以用,不过用双引号,替代之。
45.Linux启动过程中几个重要配置文件的执行过程
Linux 登录后,配置执行顺序为(Debian Serials Capable):
/etc/environment -> /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
关于各个文件的作用说明:
(1)/etc/environment:此配置文件设置基本的PATH变量,及系统当前语言变量,虽然比较短,但却在系统启动中占据举足轻重的作用,比如如下是我的系统中的内容:
(2)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
(3)/etc/bash.bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
(4)~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
(5)~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
(6)~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。
(7)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。
46.LINUX 常用命令及作用
1、cat:可以显示文件的内容,或将多个文件合并成一个文件。
2、chgrp:用来改变文件或目录所属的用户组,命令的参数以空格分开的要改变属组的文件列表,文件名支持通配符,如果用户不是该文件的所有者,则不能改变该文件的所属组。
3、chmod:用于改变文件或目录的访问权限,该命令有两种用法:一种是使用图形化的方法,另一种是数字设置法。
4、chown:用来将指定用户或组为特定的所有者。用户可以设置为用户名或用户ID,组可以是组名或组ID。特定的文件是以空格分开的可以改变权限的文件列表,文件名支持通配符。
5、clear:用来清除终端屏幕。
6、cmp:用来比较两个文件的大小。
7、cp:(copy)可以将文件或目录复制到其他目录中,就如同Dos下的copy命令一样,功能非常强大。在使用cp命令时,只需要指定源文件名或目标目录即可。
8、cut:用来移除文件的部分内容。
9、diff:用来找出两个文件的不同之处。
10、du: 用来显示磁盘的剩余空间的大小。
11、file:用来显示文件的类型。
12、find:用来在目录中搜索文件,并执行指定的操作。
13、head:只查看文件的头几行内容,而不必浏览整个文件。
14、ln:可以在文件之间创建链接,实际上是给某个文件指定一个访问它的别名。
15、less:用法与more类似,可以查看超过一屏的文件内容,不同的是less除了可以按空格键向下显示文件外,还可以利用方向键来滚动显示文件,要结束浏览,只要在less的提示符“:”后按Q即可。
16、locate:可用于查找文件,且比find命令的搜索速度快。
17、ls(list):用来显示当前目录中的文件和子目录列表。
18、mkdir(make directory):建立子目录。
19、more:用于显示内容超过一屏的文件,为了避免文件内容显示瞬间就消失,可以使用more命令让文件显示满一屏时暂停,在按下任意键的时候继续显示下一屏的内容。
20、rmkdir(remove directory):用来删除“空”的子目录或无用的目录文件。
21、mv(move):可以将文件以及目录移到其他位置,或更改文件以及目录的名称。
22、pico:可指定文本的编辑方式。
23、pwd(print working directory):可显示用户当前所在的目录。
24、rm:用来删除系统中过时或无用的文件,可以删除目录中的文件或目录本身,对于链接文件,原有文件保持不变。
25、sort:将文本文件自动分类。
26、stat:用于显示文件或文件系统的状态。
27、Strings:显示文件中要打印的字符串。
28、tail:输出文件的结尾。
29. touch:改变文件的时间戳。
30、umask:用于启动bash shell。
31、uniq:移除已分类文件中的重复文本行。
32、vi:启动vi文本编辑器。
33、wc:显示文件中字节、词组合文本行的数目。
34、whereis:查找特定目录下的原始程序,二进制程序或用户手册等文件的位置。
35、man:如果用户对某个命令想了解更详细的话,可使用此命令。
36、dd:复制一个文件。
37、df:查看一个文件系统的磁盘空间使用情况。
38、edquoat:设置用户与用户组的磁盘空间限制,即Windows系统中的配额。
39、fdformat:格式化软盘。
40、fdisk:执行Linux下的磁盘分区。
41、mkfs:建立一个Linux文件系统。
42、mkswap:创建一个Linux交换分区。
43、mount:挂载一个文件系统。
44、quota:限制和显示用户可用的磁盘空间。
45、swapon,swapoff:启用或取消设备和文件的交换页。
46、quotaon,quotaoff:启用或取消quota限制。
47、umount:取消文件系统的装备。