Linux 名字的由来,是当时作者将初版的 Linux 发布在网上,供别人下载完善,而那个核心文件夹就叫 Linux,就这么叫着了。而为什么 Linux 的吉祥物是一只企鹅呢?是因为当时大家要发行稳定版的 Linux 的时候询问作者将什么动物作为吉祥物,而作者对小时候在动物园被企鹅咬了一口印象深刻,竟然就选择将企鹅作为 Linux 的吉祥物了。Linux 是一套免费使用和自由传播的的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 cpu 的操作系统;运行主要的 UNIX 工具软件、应用程序和网络协议。
Linux 发行版 简单点就是将Linux内核与应用软件做一个打包。
Linux distributions主要分为两大系统,一种是 RPM 方式安装软件的系统,包括 Red Hat,Fedora,SuS E等都是这类;一种则是使用 Debian 的 dpkg 方式安装软件的系统,包括 Debian、Ubuntu、B2D 等等。
底下列出几个主要的Linux distributions 发行者地址:
- Red Hat:http://www.redhat.com
- Suse:https://www.suse.com
- Febora:https://getfedora.org/
- CentOS:http://www.centos.org/
- Debian:http:www.debian.org/
- Ubuntu:http://www.ubuntu.com/
- Gentoo:http://www.gentoo.org/
备注:如果是个人学习使用的话,建议使用社群单位发行版的即可。如果是做服务器使用,推荐使用商业版,比较稳定,比较少bug。
1、系统命令
arch 显示机器的处理器架构
uname -m 显示机器的处理器架构
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒
clock -w 将时间修改保存到 BIOS
uname -a 查看Linux内核版本命令
lsb_release -a 查看Linux系统版本的命令
2、要让IP地址永久生效
vim /etc/sysconfig/network-scripts/ifcfg-eth0
3、开启SSH服务
SSH为Secure Shell 的缩写,由IETF的网络工作小组做制定。建立在应用层和传输层基础上的安全协议。
- 查看SSH是否安装:rpm -qa | grep ssh
- 安装SSH:yum install openssh-server
- 启动服务:service sshd start
- 停止服务:service sshd stop
- 重启SSH服务:service sshd restart
- 查看是否启动22端口:netstat -antulp | grep ssh
- 设置SSH 服务为开机启动:chkconfig sshd on
6、目录结构
接下来的字符以3个为一组,rwx 的组合,r 代表 read 、w 代表 write、x 代表 execute
第1-3位确定该文件的所有者
第7-9位确定其他用户的权限
- 更改文件属组 : chgrp [-R] 属组名 -R 代表目录下的所有文件的属组都会修改
- 更改文件属主: chown [-R] 属主名 文件名 chown [-R] 属主名:属组名 文件名
- 更改文件属性 chmod 777 文件
除了普通的 r w x的文件权限外,Linux操作系统还有 t / s两种
8、基础目录命令
- 列出目录: ls [-a/-d/-l] 目录名称 不填目录名称表示列出当前目录,-a 表示全部文件,包括隐藏目录、-d 表示仅列出目录本身、-l 长数据串列出(这个也能写成ll)
- 切换目录:cd [相对路径或者绝对路径]
- 显示当前所在的目录 :pwd (Print Working Directory)
- 显示当前的目录连接档 :pwd -P
- 创建目录 :mkdir 目录名称
- 同时创建两个目录: mkdir dir1 dir2
- 创建一个目录树: mkdir -p /tmp/dir1/dir2
- 删除空[级联删除]目录: rmdir [-p] 目录名称
- 复制文件或目录 :cp source(源文件) destination(目标文件)
- 复制文件时,若目标文件已经存在则询问是否覆盖:cp -i source(源文件) destination(目标文件)
- 连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用):cp -p source(源文件) destination(目标文件)
- 建立一个快捷方式: cp -s 源文件 快捷方式名称
- 强制移除文件或目录不管是否是空白目录: rm -rf 目录名称
- 重命名文件夹(强制/询问/更新):mv [-fir] 源文件名 新文件名
- 由第一行/最后一行开始显示文件内容: cat /tac 目录名称
- 显示行号: nl
- 创建空文件 tough 1.txt(默认更新三个时间) 或者 vim 1.txt
- 系统环境变量 :echo $PATH
- 显示文件前面几行: head [-n number] 文件
- 不包括后面一百行: head -n -100 文件
- 取出11到20行: head -n 20 文件 | tail -n 10 (管线的意思是前面所输出的信息交由后面继续使用)
- 目前用户在建立文件或者文件夹时的默认权限值 umask / umask -S
- 修改umask:umask 002
- locate: 是根据Linux 下的数据库文件 /var/lib/mlocate来查询,该数据库文件一天更新一次,可能你查询的内容因为未及时更新查找不到,可以手动更新数据库
- updatedb :手动更新数据库
- find / -name file1 :从 '/' 开始进入根文件系统搜索文件和目录
- find / -user user1 :搜索属于用户 'user1' 的文件和目录
- find /home/user1 -name \*.bin: 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
- find /usr/bin -type f -atime +100 :搜索在过去100天内未被使用过的执行文件
- find /usr/bin -type f -mtime -10 :搜索在10天内被创建或者修改过的文件
- find / -name \*.rpm -exec chmod 755 '{}' \: 搜索以 '.rpm' 结尾的文件并定义其权限
- find / -xdev -name \*.rpm 搜索以 '.rpm' :结尾的文件,忽略光驱、捷盘等可移动设备
- locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
9、系统用户账号的管理
useradd -d /usr/jomoo -m -g jomoo -G root jomoo
-c 添加一段注释性描述
-g 指定用户组
-G 指定所属的附加组
-s 指定登录的Shell
> 删除账号:userdel [-r] 用户名 (-r 作用是把用户的主目录一起删除)
> 修改账号:usermod 选项 用户名 (修改账号和添加账号相似,选项也相同)
> 管理密码(刚创建的账号因为没有密码,被系统锁定,无法使用,必须为其制定口令后方可使用):
passwd 选项 用户名
-l 锁定口令、即禁用账号
-u 口令解锁
-d 使账号无口令
10、系统用户组的管理
> 新增一个用户组
> 切换用户组:newgrp root
> /etc/shadow 用户的密码信息
> /etc/group 用户组的所有信息
11、Linux磁盘管理
cat /proc/filesystems:查看已经加载到内存中的文件系统
lsblk :列出本系统所有磁盘和磁盘内的分区信息
df:列出文件系统的整体磁盘使用量
du:列出磁盘空间使用量
fdisk:用于磁盘分区
tmpfs:其实这是一个临时文件系统,驻留于内存中,使用它可以提高文件访问速度,并能保证重启时会自动清除这些文件。只不过驻留在这里的文件是容易丢失的,也可以认为这里就是内存,这个临时文件系统挂载在 /dev/shm 下。
临时改变虚拟内存大小:mount -o remount,size=180M tmpfs /dev/shm
永久改变虚拟内存大小:vi /etc/fstab 编辑/etc/fstab, 把tmpfs这一行改为:
tmpfs /dev/shm tmpfs defaults,size=180M 0 0