Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
Linux完全免费,完全兼容posix1.0,多用户与多任务,良好的界面与支持多种平台。使得Linux越来越的得到重视。
Linux的发展史
1991 年 林纳斯(Linus) 就读于赫尔辛基大学期间,对 Unix 产生浓厚兴趣,尝试着在Minix 上做一些开发工作
因为 Minix 只是教学使用,因此功能并不强,林纳斯 经常要用他的终端 仿真器(Terminal Emulator) 去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了 Linux 第一个内核的雏形,当时,他年仅 21 岁!
l林纳斯 利用 GNU 的 bash 当做开发环境,gcc 当做编译工具,编写了 Linux 内核,一开始 Linux 并不能兼容 Unix
l即 Unix 上跑的应用程序不能在 Linux 上跑,即应用程序与内核之间的接口不一致
一开始 Linux 只适用于 386,后来经过全世界的网友的帮助,最终能够兼容多种硬件
Linux6和Linux7的区别
(1)桌面系统
[CentOS6] GNOME 2.x
[CentOS7] GNOME 3.x(GNOME Shell)
(2)文件系统
[CentOS6] ext4
[CentOS7] xfs
(3)内核版本
[CentOS6] 2.6.x-x
[CentOS7] 3.10.x-x
(4)启动加载器
[CentOS6] GRUB Legacy (+efibootmgr)
[CentOS7] GRUB2
(5)防火墙
[CentOS6] iptables
[CentOS7] firewalld
(6)默认数据库
[CentOS6] MySQL
[CentOS7] MariaDB
(7)文件结构
[CentOS6] /bin, /sbin, /lib, and /lib64在/下
[CentOS7] /bin, /sbin, /lib, and /lib64移到/usr下
(8)主机名
[CentOS6] /etc/sysconfig/network
[CentOS7] /etc/hostname
(9)时间同步
[CentOS6]
$ ntp
$ ntpq -p
[CentOS7]
$ chrony
$ chronyc sources
(10)修改时间
[CentOS6]
$ vim /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=fales
$ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
[CentOS7]
$ timedatectl set-timezone Asia/Tokyo
$ timedatectl status
(11)修改地区
[CentOS6]
$ vim /etc/sysconfig/i18n
LANG="ja_JP.utf8"
$ /etc/sysconfig/i18n
$ locale
[CentOS7]
$ localectl set-locale LANG=ja_JP.utf8
$ localectl status
(12)服务相关
1)启动停止
[CentOS6]
$ service service_name start
$ service service_name stop
$ service sshd restart/status/reload
[CentOS7]
$ systemctl start service_name
$ systemctl stop service_name
$ systemctl restart/status/reload sshd
2)自启动
[CentOS6]
$ chkconfig service_name on/off
[CentOS7]
$ systemctl enable service_name
$ systemctl disable service_name
3)服务一览
[CentOS6]
$ chkconfig --list
[CentOS7]
$ systemctl list-unit-files
$ systemctl --type service
4)强制停止
[CentOS6]
$ kill -9 <PID>
[CentOS7]
$ systemctl kill --signal=9 sshd
(13)网络
1)网络信息
[CentOS6]
$ netstat
$ netstat -I
$ netstat -n
[CentOS7]
$ ip n
$ ip -s l
$ ss
2)IP地址MAC地址
[CentOS6]
$ ifconfig -a
[CentOS7]
$ ip address show
3)路由
[CentOS6]
$ route -n
$ route -A inet6 -n
[CentOS7]
$ ip route show
$ ip -6 route show
(14)重启关闭
1)关闭
[CentOS6]
$ shutdown -h now
[CentOS7]
$ poweroff
$ systemctl poweroff
2)重启
[CentOS6]
$ reboot
$ shutdown -r now
[CentOS7]
$ reboot
$ systemctl reboot
3)单用户模式
[CentOS6]
$ init S
[CentOS7]
$ systemctl rescue
4)启动模式
[CentOS6]
[GUICUI]
$ vim /etc/inittab
id:3:initdefault:
[CUIGUI]
$ startx
[CentOS7]
[GUICUI]
$ systemctl isolate multi-user.target
[CUIGUI]
$systemctl isolate graphical.target
默认
$ systemctl set-default graphical.target
$ systemctl set-default multi-user.target
当前
$ systemctl get-default
Linux命令
文件和目录
cd /home 进入 '/ home' 目录'
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls *[0-9]* 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构
lstree 显示文件和目录由根目录开始的树形结构
mkdir dir1 创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
查看进程
ps aux | less
其中,
-A:显示所有进程
a:显示终端中包括其它用户的所有进程
x:显示无控制终端的进程
任务:查看系统中的每个进程。
// 查看自动服务的进程
ps -ef|grep 'queue:signremindpush'
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 #用户切换工具
Linux面试题
问题一:
绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
答案:
绝对路径: 如/etc/init.d
当前目录和上层目录: ./ ../
主目录: ~/
切换目录: cd
问题二:
怎么查看当前进程?怎么执行退出?怎么查看当前路径?
答案:
查看当前进程: ps
执行退出: exit
查看当前路径: pwd
问题三:
怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
答案:
清屏: clear
退出当前命令: ctrl+c 彻底退出
执行睡眠 : ctrl+z 挂起当前进程fg 恢复后台
查看当前用户 id: ”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名
查看指定帮助: 如 man adduser 这个很全 而且有例子; adduser --help 这个告诉你一些常用参数; info adduesr;
问题四:
Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
答案:
ls 执行的功能: 列出指定目录中的目录,以及文件
哪些参数以及区别: a 所有文件l 详细信息,包括大小字节数,可读可写可执行的权限等
问题五:
建立软链接(快捷方式),以及硬链接的命令。
答案:
软链接: ln -s slink source
硬链接: ln link source
问题六:
目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
答案:
创建目录: mkdir
创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件
复制文件: cp 7. 文件权限修改用什么命令?格式是怎么样的?
文件权限修改: chmod
格式如下:
chmodu+xfile给file的属主增加执行权限chmodu+xfile给file的属主增加执行权限 chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
chmodu=rwx,g=rx,o=xfile上例的另一种形式chmodu=rwx,g=rx,o=xfile上例的另一种形式 chmod =r file 为所有用户分配读权限
chmod444file同上例chmod444file同上例 chmod a-wx,a+r file同上例
$ chmod -R u+r directory 递归地给 directory 目录下所有文件和子目录的属主分配读的权限
问题八:
查看文件内容有哪些命令可以使用?
答案:
vi 文件名 #编辑方式查看,可修改
cat 文件名 #显示全部文件内容
more 文件名 #分页显示文件内容
less 文件名 #与 more 相似,更好的是可以往前翻页
tail 文件名 #仅查看尾部,还可以指定行数
head 文件名 #仅查看头部,还可以指定行数
问题九:
随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
答案:
写文件命令:vi
向屏幕输出带空格的字符串:echo hello world
问题十:
终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
答案:
终端 /dev/tty
黑洞文件 /dev/null
问题十一:
移动文件用哪个命令?改名用哪个命令?
答案:
mv mv
问题十二:
复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
答案:
cp cp -r ????
问题十三:
删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
答案:
rm rm -r rmdir
问题十四:
Linux 下命令有哪几种可使用的通配符?分别代表什么含义?
答案:
“?”可替代单个字符。
“*”可替代任意多个字符。
方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]
问题十五:
用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
答案:
wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数。
问题十六:
Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
答案:
是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
grep [stringSTRING] filename grep [^string] filename
问题十七:
Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
答案:
(1)、不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。
(2)、暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。
“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。
(3)、就绪状态:在 run_queue 队列里的状态
(4)、运行状态:在 run_queue 队列里的状态
(5)、可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起
(6)、zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉
(7)、退出状态
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核 2.6 开始无效)
X 死掉的进程
问题十八:
怎么使一个命令在后台运行?
答案:
一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)
问题十九:
利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
答案:
ps -ef (system v 输出)
ps -aux bsd 格式输出
ps -ef | grep pid
问题二十:
哪个命令专门用来查看后台任务?
答案:
job -l
问题二十一:
把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
答案:
把后台任务调到前台执行 fg
把停下的后台任务在后台执行起来 bg
问题二十二:
终止进程用什么命令? 带什么参数?
答案:
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
kill-9 pid
问题二十三:
怎么查看系统支持的所有信号?
答案:
kill -l
问题二十四:
搜索文件用什么命令? 格式是怎么样的?
答案:
find <指定目录> <指定条件> <指定动作>
whereis 加参数与文件名
locate 只加文件名
find 直接搜索磁盘,较慢。
find / -name "string*"
问题二十五:
查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
答案:
查找自己所在的终端信息:who am i
查看当前谁在使用该主机:who