初遇Linux
Ctrl+Alt+(F1-F6):切换虚拟终端
Ctrl+Alt:鼠标切换界面
$:普通用户登录后系统的提示符
#:root用户登录后系统的提示符
Linux命令
exit 用于退出目前的shell
who 用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等
whoami 用于显示自身用户名称,本指令相当于执行"id -un"指令
date 用来显示或设定系统的日期与时间
clear 清屏(Ctrl+l)
su 用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码
例:su - root #切换到root用户
cd 用于切换当前工作目录至 dirName(目录参数);其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录);另外,"~" 也表示为 home 目录 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录
例:cd /usr/bin/ #跳到 /usr/bin/
cd ~ #跳到自己的 home 目录
cd ../.. #跳到目前目录的上上两层
useradd 用于建立用户帐号;帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号;使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中
passwd 用来更改使用者的密码
例:passwd pd #设置pd用户的密码
usermod 用来修改用户帐号的各项设定
ls 用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)
语法:ls -al name
ls -i /pd.txt #查看pd.txt的inode号
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
pwd 用于显示工作目录;执行pwd指令可立刻得知您目前所在的工作目录的绝
对路径名称
cp 主要用于复制文件或目录
mv 用来为文件或目录改名、或将文件或目录移入其它位置
例:mv aa bb #将文件aa更名为bb
mv info/ logs #将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs
mkdir 用于建立名称为dirName之子目录
参数:-p 确保目录名称存在,不存在的就建一个
例:mkdir aa #在工作目录下,建立一个名为aa的子目录
mkdir -p bb/Test #在工作目录下的bb目录中,建立一个名为 Test 的子目录;若bb目录原本不存在,则建立一个;(注:本例若不加 -p,且原本bb目录不存在,则产生错误)
touch 用于修改文件或者目录的时间属性,包括存取时间和更改时间;若文件不存在,系统会建立一个新的文件;ls -l 可以显示档案的时间记录
例:touch text.txt #新建text.txt
touch {1..9}.txt #相当于9条命令,新建1.txt到9.txt
rm 用于删除一个文件或者目录
rm text.txt #删除文件text.txt
rm -r homework #删除目录homework
rm -r * #删除当前目录下的所有文件及目录
#删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r"
文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令
cat 用于连接文件并打印到标准输出设备上
例:cat text.txt #查看text.txt里面的内容
head 指定显示头部内容的文件列表
例:head -n file #显示file文件的前n行(不带-n默认显示10行)
tail 可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件;tail -f file会把 file文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 file更新就可以看到最新的文件内容
例:tail -n file #显示file文件的后n行(不带-n默认显示10行)
tail -f file #跟踪名为file文件的增长情况
more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h
例:more +n file #从第n行开始显示file文档内容
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件
groupadd 用于创建一个新的工作组,新工作组的信息将被添加到系统文件中
groupmod 用于更改群组识别码或名称
[root@w3cschool.cc ~]# groupadd linuxso
[root@w3cschool.cc ~]# tail -1 /etc/group
linuxso:x:500:
[root@w3cschool.cc ~]# groupmod -n linux linuxso
[root@w3cschool.cc ~]# tail -1 /etc/group
linux:x:500:
chgrp 用于变更文件或目录的所属群组;在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可
chown Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者;利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符;一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人;只有系统管理者(root)才有这样的权限
说明:chown 属主.属组 参数 #改属主属组
chown 属主 参数 #只改属主
chown .属组 参数 #只改属组
chown -R属主.属组 text(text/aa/bb/) #递归改text目录及目录下所有文件的属主属组(递归改bb目录及目录下所有文件的属主属组)
chmod Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他;利用 chmod 可以藉以控制文件如何被他人所调用
- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group者,o 表示其他以外的人,a 表示这三者皆是
- r(4)表示可读取,w(2)表示可写入,x(1)表示可执行
例:chmod -R file #对file目录下的所有与子目录进行相同的权限变更(即以递回的方式逐个变更)
chmod 777 file #对file文件u、g、o的权限改为可读可写可执行
./ 运行命令
Linux下可以用 ll 命令来判断文件类型,主要是根据每行的首个字符来判断:
例:ll -d tmp/aa/bb/cc/ #查看cc目录的权限信息(-d专门用来查看目录文件类型)
-rw-r--r-- #” - ”开头的都是普通文件
drw-r--r-- #” d ”开头的是目录文件
brw-r--r-- #” b ”开头的文件都是块设备文件
crw-r--r-- #” c ”开头的文件都是字符设备文件
srw-r--r-- #” s ”开头的文件都是socket文件
prw-r--r-- #” p “开头的文件都是管道文件
lrw-r--r-- #” l ”开头的文件都是软链接文件
> 左边的内容覆盖右边的内容
>> 左边的内容追加给右边的内容
wc 可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据
例:wc -l /etc/passwd #显示passwd文件有多少行
tar 用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件
参数:-c或--create建立新的备份文件
-v或--verbose显示指令执行过程
-f<备份文件>或--file=<备份文件>指定备份文件
#查看test.tar文件里的内容
参数:-t或--list 列出备份文件的内容
#解开(不是解压)文件以及解开到opt目录下
gzip 是个使用广泛的压缩程序命令,文件经它压缩过后,其名称后面会多出".gz"的扩展名
gunzip 是个使用广泛的解压缩程序命令,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为".gz";事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成
bzip2 采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好;若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件
参数:-v或--verbose压缩或解压缩文件时,显示详细的信息
bunzip2 可解压缩.bz2格式的压缩文件;bunzip2实际上是bzip2的符号连接,执行bunzip2与bzip2 -d的效果相同
Ctrl+a 光标移动到该跳命令首部
Ctrl+e 光标移动到该调命令尾部
Ctrl+c 取消当前命令
ps 用于显示当前进程 (process) 的状态
例:ps aux |grep “bash” |grep -v “grep”
Kill 用于删除执行中的程序或工作
例:kill -9 123456 #强制杀死123456进程
vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在;但是目前我们使用比较多的是 vim 编辑器;vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计
vi、vim编辑器有三种模式:命令行模式、编辑模式、扩展模式
命令行模式:
a、i、o 进入编辑状态
u 复原上一步操作
dd 删除光标所在的那一行
ndd n为数字,删除光标所在的向下n行;例如5dd则是删除5行
yy 复制所在光标的那一行
nyy n为数字,复制光标所在的向下n行,例如5yy则是复制5行
p(小写) 将已复制的数据在光标下一行黏贴
P(大写) 将已复制的数据在光标上一行黏贴
ctrl+r 重做上一步操作
使用复制命令后np n为数字,将已复制的数据在光标上/下一行黏贴n行
使用删除命令后按p 可以理解为剪切再粘贴
0 光标移动到该行的行首
$ 光标移动到该行的行尾
G 光标移动到这个文件的最后一行
nG n为数字,光标移动到这个文件的第n行;例如5G则是移动到第5行
gg 移动到这个文件的第一行,相当于1G
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
扩展模式:
Esc:wq! w为保存 q为退出 !为强制
set nu 显示文件行号
Linux系统引导顺序:bios--->mbr--->grub--->kernel--->init
fdisk 是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表
例:fdisk -l /dev/sda #创建分区
mksf 用于在特定的分区上建立 linux 文件系统(格式化)
例:mkfs.ext4 /dev/sda4 #将sda4分区格式化为ext4格式
mount 用于挂载Linux系统外的文件
例:mount /dev/hda1 /mnt #将 /dev/hda1 挂在 /mnt 之下
mount -o ro /dev/hda1 /mnt #将 /dev/hda1 用唯读模式挂在 /mnt 之下
mount -o rw /dev/hda1 /mnt #将 /dev/hda1 用可读写模式挂在 /mnt 之下
何为挂载?
在linux操作系统中,挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上;我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备
umount 用于卸除文件系统;可卸除目前挂在Linux目录中的文件系统
df 用于显示目前在Linux系统上的文件系统的磁盘使用情况统计
du 用于显示目录或文件的大小;会显示指定的目录或文件所占用的磁盘空间
ln 为某一个文件在另外一个位置建立一个同步的链接;当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间
ln软链接:
格式:ln -s 源路径 目标路径
特点:1.相当于win中的快捷方式
2.删除链接文件,源文件无影响
3.删除源文件,链接文件失效
4.修改源文件/链接文件,内容都变
5.软链接是指向文件名的
软链接中:source.txt和dex.txt的inode号不同
ln硬链接:
格式:ln 源路径 目标路径
特点:1.删除链接文件,源文件无影响
2.删除源文件,链接文件无影响
3.修改源文件/链接文件,内容都改
4.硬链接执行inode号
硬链接中:a.txt和b.txt的inode号相同
软链接可以跨分区;硬链接中a.txt和new.txt的inode号可以一样,但是他们在不同分区中,导致不在同一个block块,所以硬链接不可以跨分区
用4段8位二进制数表示ip地址
172.16.122.204/16------->16为子网掩码
网络地址:172.16.0.0
主机地址:172.16.122.204
将ip地址中的网络位和主机位固定下来后,ip地址被分成了不同的几类:A类、B类、C类、D类、E类;这里展示前3类
特殊ip地址
ifconfig 用于显示或设置网络设备;可设置网络设备的状态,或是显示目前的设置
chkconfig 用于检查,设置系统的各种服务
rpm 用于管理套件
rpm -ivh package.rpm #安装一个rpm包
rpm -qa #显示系统中所有已经安装的rpm包
rpm -e package_name.rpm #删除一个rpm包
yum 是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器;基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装;yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记
yum install package_name #下载并安装一个rpm包
yum remove package_name #删除一个rpm包
yum update package_name.rpm #更新当前系统中所有安装的rpm包
yum update package_name #更新一个rpm包