1、常用命令
date可以查看,设置当前系统时间,可以用date+%Y中间符号随意%m随意%d格式化显示时间 date −s可以修改当前系统时间
hwclock用来显示硬件时钟时间
cal用来查看日历
uptime用来查看系统运行时间
echo可以显示输入内容,后面跟着任何字符串都会返回回来
cat可以用来显示文件内容,会显示全部内容
more可以用来翻页显示文件内容,不能上下翻页
less可以用来翻页显示文件内容,可以上下翻页
head用来显示文件的头几行,默认10行,可以用-n来指定显示多少行
tail用来显示文件的末尾几行,默认10行,可以用-n指定显示行数−f可以跟踪显示文件更新,一般用于查看日志
lspci用来查看pci设备,查看硬件信息可以-v查看详细信息
lsusb可以用来查看usb设备,比如usb摄像头,可以加-v来查看详细信息
lsmod可以用来查看加载的模块(驱动),比如显卡驱动等
shutdown可以用来关闭,重启计算机 -h关闭计算机-r重新启动
shutdown-h now 立即关机
shutdown-h +10十分钟后关机
shutdown-h 23:30 十一点半时关机
shutdown-r now立即重启
poweroff可以用来立即关闭计算机
reboot可以用来立即重启计算机
zip+文件名+要压缩的文件的文件名 压缩
unzip+文件名解压缩
gzip+文件名进行压缩
tar可以用来归档文件
tar -cvf 创建归档名+要归档的文件
tar-xvf释放一个归档+要解开的归档的文件名
tar-cvzf+归档后的名字.tar.gz+要归档的文件或文件夹(最常用)
可以用which来查找文件路径
which -a 文件名
可以用whereis或者locatn来查找文件,如果找不到才用find
locate用来快速查找文件和文件夹
locate +需要查找的文件和文件夹,默认一天更新一次数据库也可用update手动立即更新数据库
find可以用以高级查找文件,文件夹
find 查找位置 查找参数
find .-name *su* 在当前目录下查找文件名包含su的所有文件 .是代表当前目录,name是条件,
find /-name *.conf 在根目录查看名字是.conf结尾的文件 /是根分区
find /-perm 777 在根目录下查找所有权限为777的文件
find / -type d返回所有的目录 查找所有链接type l
find .-name “*linuxcast*” -exec ls-l{}\;查找包含了linuxcast的文件,查看查找出来的结果的文件的详细信息。除了ls-l外其他都是固定格式,
find-user 基于用户查找文件
find-ctime基于时间查找,比如查找最近两天修改过的文件
find-size基于文件大小查找
cp 源文件 目标文件(可以是新建)复制文件
在cp后面+ -r可以复制文件夹,+v可以显示详细参数
mv可以移动文件,用法与cp一致,不指定目录,直接在当前目录的话就是重命名
rm可以删除文件 + -r可以删除文件夹 -i可以交互式的删除 -f可以强制删除,
mkdir 可以创建一个目录
rm可以删除一个目录,但是不能删除非空文件夹
2、分区命令
fdisk用在操作分区,只有超级权限用户才能用此命令
fdisk/dev/sdb进入目标磁盘对其操作,进入后可以用m提示操作
partprobe可以让内核更新分区信息,不然就要用重启的方式更新
mke2fs用于创建文件系统
mke2fs -text4 /dev/sd3 意思是使用ext4的文件系统 跟要创建的硬盘
-bblocksize 指定文件系统块大小 跟数字
-c 建立文件系统时检查坏损块
-L label 指定卷标 名字
-j 建立文件系统日志
mkfs也可以用于创建文件系统,比mke2fs简单,但不能做精细化控制,比如指定文件快大小等
mkfs.ext4/dev/sdb3
dumpe2fs可以用来查看分区文件系统信息
dumpe2fs/dev/sdb3
e2label可以用来给文件系统加标签
e2label/dev/sdb1 如果只跟目标路径,是查看文件系统标签
e2label/dev/sdb1 linuxcast 跟了第二个参数这可以将文件系统加上linuxcast标签,一般不区分大小写,但是写标签最好使用大写
fsck可以用来检查并修复文件系统
fsck/dev/sdb3 检查文件系统必须先卸载。
-y是不提示而直接进行修复,不然会有交互式即每个错误都要恢复yes or no
默认fsck会自动判断文件系统类型,当文件系统损坏比较严重,也可以使用-t参数来指定文件系统类型,否则可能更加损坏文件系统
fsck -text4 /dev/sdb3
对于识别为文件的损坏数据(文件系统无记录),fsck会将该文件放入lost+found目录,每个格式化了的磁盘(就是创建了文件系统)都会产生一个lost+found目录
系统启动的时候都会进行fsck操作
创建好文件系统后,需要挂载到一个目录才能使用:通常是挂载在/mnt目录下,实际上挂载在什么目录下都可以,建议挂载到mnt目录
通过mount可以用来将格式化好的分区和磁盘挂载到一个目录下
mount/dev/sdb3(要挂载的分区),/mnt(挂载到那个目录)
不带任何参数的mount命令可以查看挂载的文件系统
-t 指定文件系统类型,一般会自动识别
-o 可以指定其他挂载参数
ro rw 以只读或者读写形式挂载,默认是rw
sync 代表不使用缓存,而对所有操作直接写入
mount -oremount,sync /dev/sdb1 /mnt 意思是重新挂载修改为不使用缓存,直接写入
async 代表使用缓存,默认使用async
noatime 代表每次访问文件时不更新文件访问时间
atime 代表每次访问文件时,更新文件的访问时间,默认使用atime,比较耗性能
remount 重新挂载文件系统
mount -oremount,ro /dev/sdb3 /mnt这条命令的意思是重新挂载带ro参数,改变文件系统为只读
umount可以用来卸载已挂载的文件系统
umount 文件系统或者挂载目录
umount/dev/sdb1 等于 umount /mnt
如果进程正在被使用可以用 fuser -m /mnt查看使用文件系统的进程,也可以用lsof查看正在被使用的文件,lsof /mnt
可以通过修改etc目录下的fstab文件来实现自动挂载文件系统
/dev/sdb1(需要挂载的设备) /mnt(挂载目录,挂载点) ext4(文件系统) defaults(挂载选项如ro,sync等) 0 0(dump,fsck相关选项)
3、用户及权限
useradd 可以用来创建一个新用户
useradd +用户名
-d 家目录
-s 登陆shell
-u userid
-g 主组
-G 附属组 最多31个用‘,’分割也可以修改etc下的passwd文件实现,不过一般不建议这样改
usermod可以用来修改用户信息
usermod +参数+要修改的用户的用户名
-l 新用户名
-u 新userid
-d 用户家目录位置
-g用户所属主组
-G用户所属附属组
-L 锁定用户使其不能登录
-U 解除锁定
可以用userdel 删除用户,+-r参数可以删除用户家目录,否则默认不删除家目录
groupadd可以用来创建组
groupmod 可以修改组信息+ -n参数修改组名
groupmod-n newname oldname
-g修改组id
groupmod-g newGid oldGid
groupdel可以用来删除组
chown可以改变文件的所属用户
chown scj(用户名) linuxcast.net(文件名)+-R可以递归的修改目录下的所有文件
chgrp可以改变文件的所属组
chgrp scj(用户名) linuxcast.net(文件名)+-R可以递归的修改目录下的所有文件
可以用chmod修改文件权限
chmod 模式 文件
u g o分别代表用户,组,其他
a可以代表ugo
+-代表加入或者删除对应权限
r w x代表三种权限
同样可以+R可以递归修改目录下的文件权限也被修改
可以通过数字修改权限,使用数字权限必须ugo都修改,不能单独修改某个
r=4 w=2x=1 可以通过相加的形式修改权限
chmod 660文件目录或者文件名
660=u=rwg=rw o=0代表没有权限
每一个终端都具有一个umask属性,来确定新建文件,文件夹的默认权限
可以用umask来查看设置umask值
umask使用数字权限方式表示
目录(文件夹)默认权限:777-umask
文件默认权限666-mask
7=r(4)+w(2)+x(1)
一般情况普通用户的umask是002,root用户默认是022
umask+022可以更换普通用户的umask值,达到和root用户一样权限的新建文件的权限
特殊权限
1:suid 以文件的所属用户身份执行,而不是执行文件的用户,对目录(文件夹)没有影响
设置命令:chmod u+s+文件名
2:sgid 以文件所属组身份执行文件,对目录(文件夹)的影响是在该目录(文件夹)下创建的任意新文件的所属组与该目录(文件夹)的所属组相同
设置命令:chmod g+s+文件名
3:sticky 对文件没有影响,对目录(文件夹)有写入权限的用户仅可以删除其拥有的文件,无法删除其他用户所拥有的文件
设置命令:chmod o+t+文件名
与普通权限一样,特殊权限也可以用数字表示
suid=4sgid=2 sticky=1
4755=suid+rwx+rx+rx,第一位表示特殊权限位
4、vim文本编辑器
vim+目标文件路径,如果文件存在则打开,如果不存在则在还目录下新建
vim启动后进入命令模式
在命令模式按i可以进去插入模式
在命令模式按:进入ex模式
在命令模式下
i 在光标前插入文本
o在当前行下面插入新行
dd删除整行
yy将当前行放入缓冲区(复制当前行)
p将缓冲区的内容复制在光标后(粘贴)
数字+yy可以复制多行
r可以替换当前字符
/可以查找关键字,可以按n键查找
:w 保存当前修改
:q退出
:q! 强制退出,不保存修改
:x 保存修改并退出,相当于:wq
:setnumber 显示行号
:!执行一个系统命令并显示结果
:sh 切换到命令行,使用 ctrl+d切换回vim
5、根目录下的文件
bin目录下保存的是代表可执行文件
boot目录是引导目录
dev目录保存的是计算机硬件设备
在linux下硬件设备都被抽象成了一个文件
etc目录下保存了几乎所有的配置文件home目录是所有用户的家目录,每存在一个用户还目录下就会有一个对应的文件,lib目录存放的是库文件,
media目录是挂载文件,比如插入了u盘会挂载在还目录下,mnt目录也是
opt目录通常用来装一些大型软件,
proc目录是系统实时信息,只存在内存中的虚拟数据 ,
sbin跟bin存放的内容都是可执行文件,但该目录只有超级权限用户才能执行,都是些比较危险的,比如磁盘分区,格式化,sys目录是我们系统底层的信息。
tmp目录是临时目录,该目录下的东西一段时间后会被删除,
usr目录一般的软件装在该目录下,
var目录保存的是一些经常变化的信息,log等
6、以太网命令
可以通过lspci查看网卡硬件信息,如果是usb网卡可以通过lsusb
可以通过ifconfig -a查看所有接口
ifconfigeth0查看特定接口
可以通过ifup ifdown来启用,禁用一个接口
ifup eth0、ifdown eth0
可以通过setup来配置网络信息,配置完要用ifup来启动网卡
网卡配置文件目录
/etc/sysconfig/network-scripts/ifcfg-eth0
DNS配置文件
/etc/resolv.conf
主机名配置文件
/etc/sysconfig/network,再次路径下修改文件可永久修改主机名
实时修改主机名:hostname + 主机名,重启后会丢失
静态主机名配置文件
/etc/hosts
通过ping命令检测网络联通性
测试dns解析
host +www.baidu.com(域名)简单
dig+www.baidu.com(域名) 复杂
显示路由表
ip route
可以通过traceroute +www.baidu.com(域名)追踪到达域名所经过的路由器
可以通过mtr进行网络质量分析结合了traceroute和ping
mtr+www.baidu.com(域名)
7、重定向和管道
标准输出重定向:
通过关键字‘>’将结果重定向到文件中,如果文件中原来有内容会被“覆盖”,如果不想被“覆盖”可以用‘>>’两个大于号
echo “linuxcast.net” >outfile 这条命令可以把输出结果linuxcast.net保存到outfile文件中
标准错误重定向:
通过关键字‘2>’将结果重定向到文件中,以覆盖的形式,如果结果没有错误会被正常执行
既保存标准错误信息也保存标准输出信息可以通过2>&1命令
标准输入可以用关键字‘<’
greplinuxcast < /etc/passwd 这条命令的意思是吧passwd文件传给grep linuxcast并返回结果
管道的意思是:将一个命令的标准输出作为另一个命令的标准输入,用‘|
8、文件及目录命令
pwd可以查看当前工作目录,touch可以创建一个空白文件或者更新已有文件的时间,.开头的文件为隐藏文件,隐藏文件大多数都是配置文件,不要轻易去动。ls可以查看文件目录,通过file命令查看文件的类型,cd可以用来切换目录,
可以通过grep来基于关键字搜索文本,必须是纯文本文件
grep ‘关键字’ + 文件路径(含文件名)
grep su/etc/suchujun
find /-user sucht jun | grep Video
-i 在搜索时忽略大小写
-n 显示结果所在行数
-v 输出不带关键字的行
-Ax(x=数字)在输出的时候包含结果所在行之后的指定行数
-Bx 在输出的时候包含结果所在行之前的指定行数
通过cut命令基于列处理文本内容
cut -d :-f1 /etc/passwd 意思是:基于:号将文本信息分列,之后再去显示第一列
grepsuchujun /etc/passwd | cut -d: -f3
-d 指定分割符,默认是tab
-f 指定输出的列号
-c 基于字符进行切割
cut -c2-6/etc/passwd 用于查找还文件中每一列的第2到6个字符
可以通过wc命令统计文本信息
wc/etc/passwd
-l 只统计行数
-w 只统计单词
-c 只统计字节数
-m 只统计字符数
可以通过sort对文本内容进行排序,仅对数字和英文
sort +文件名
-r 进行倒序排序
-n 基于数字进行排序
-f 忽略大小写
-u 删除重复行
-t c 使用c作为分隔符分割为列进行排序
-k x 当进行基于指定字符分割为列的排序时,指定基于那个列排序
也可以通过uniq删除重复行,uniq默认情况下只能删除重复行
可以通过diff来比较两个文件
diff 文件1 文件2
-i 忽略大小写
-b 忽略空格数量的改变
-u 统一显示比较信息
可以通过tr命令处理文本内容
删除关键字
tr -d‘tmd’ < linuxcast
转换大小写
tr ‘a-z’‘A-Z’ <linuxcast
通过sed 搜索并替换文本
sed ‘正则表达式’ +文件名
sed ‘s/要被替换的关键字/要替换进去的关键字/g’ linuxcast 如果不加g只会替换第一个,g代表全局的意思
sed ‘1,50s/要被替换的关键字/要替换进去的关键字/g’ linuxcast 如果不加g只会替换第一个,g代表全局的意思,指定行数
指定多个关键字替换
sed-e ‘s/要被替换的关键字/要替换进去的关键字/g’ -e ‘s/要被替换的关键字2/要替换进去的关键字2/g’ linuxcast
9、RPM软件包管理
步骤
1 - ./configure 检查编译环境,相关库文件以及配置参数并生成makefile
2- make 对源代码进行编译,生成可执行文件
3- make install 将生成的可执行文件安装到当前计算机
为了解决源代码编译的依赖关系,引入了RPM
RPM通过将源代码基于特定平台系统编译为可执行文件,并保存依赖关系,简化开源软件安装管理
RPM文件通常以.rpm后缀
rpm常用命令
安装软件 rpm -i software.rpm
卸载软件 rpm -e software
升级形式安装 rpm -U software-new.rpm
rpm支持通过http,ftp协议安装软件
rpm -ivh http://www.linux.net/software.rpm
可选加入-v 显示详细信息
-h 显示进度条
rpm查询
rpm -qa 列出所有安装的rpm软件
rpm -qf filename 查询目标文件属于那个rpm包
rpm -qi packagename 查询指定已安装rpm软件的信息
rpm -ql packagename 查询指定已安装rpm软件包含的文件
rpm -qip software.rpm 查询rpm文件的信息
rpm -qlp software.rpm 查询rpm文件包含的文件
rpm验证
rpm-K sortware.rpm 验证rpm文件
rpm-V sortware 验证已安装文件是否被修改过
YUM是rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系
yum特点:
自动解决依赖关系
对rpm进行分组,并基于组进行安装操作
引入了仓库的概念,支持多个仓库
配置简单
yum仓库配置文件存在于etc/yum.repos.d目录下
yum通常的配置格式:
name =自己写
baseurl=文件路径,可以是网络路径
enabled=1是打开0是关闭,默认是打开
gbgcheck=1是打开0是关闭,默认是打开
yum配置文件必须用repo结尾,可以配置多个仓库信息,yum.repos目录可以保存多个yum配置文件
yum常用命令
yum install software-name安装指定软件
yum remove software-name 卸载指定软件
yum update software-name 更新指定软件
yum查询
yum search +关键字 可以搜索yum仓库软件包
yum list (all /installed/remove/update)
列出yum仓库全部,安装,卸载,更新的所有软件
yum info package 显示指定软件信息
yum whatprovides filename 查询哪个rpm软件包含目标文件
可以自己创建yum仓库,步骤如下
1:拷贝所有的rpm文件到一个文件夹中
2:通过rpm命令手工安装createrepo软件
rpm -ivh createrepo
3:运行命令createrepo -v+rpm路径
可以通过yum clean all 清除缓存信息,一般用在更改yum仓库后