写在前面:
其实在我没有真正的感受过linux之前,我不过以为linux和windows一样就只是一个普通的操作系统罢了,但是 现在我不这么认为。linux是一个服务器,不再是一个普通的个人机,多用户很方便的远程登录、管理。
命令格式 :
命令 【-选项】 【参数】(注意这里的中括号表示可选)-表示简化了的 --表示完整选项
linux中 # 开头的是注释信息
1.删除命令(删除后是没有回收站这一说法的)
rmrm -f 文件名 (强行删除文件,没有提示)
-r删除目录
rm -rf 目录名字 (向下递归删除)
2.查看当前时间
cal 命令3.创建目录
mkdir 命令mkdir -p /tmp/Japan/boduo (-p的意思就是递归创建。可以同时创建多个文件)
4.移除目录
rmdir (删除空目录,如果目录非空,那么删除失败,使用并不是很多)5.查看当前位置
pwd(print working derectories).. 表示上级目录
cd..表示回到上级目录
6.创建、打开文件的编辑器,linux自带是vi但是不好用,可以自行安装vim
vim
vim 文本编辑器 (每一个字符都被当做命令来处理)
只有三种模式 编辑模式 命令模式 插入模式vi 【文件名】『可以创建也可以打开』
进入后:
a 光标所在字符后插入模式
A 光标所在行后插入模式
i 光标所在行后插入模式
I 光标所在行行首
o 这行的上一行插入
O 这行的下一行
按 esc shift +: set nu 既可以显示行号
set nonu 取消
gg 回到第一行
G 到最后一行
nG 到第n行
按 esc shift +:n到第n行
$ 到行尾
0到行尾
dd删除光标所在行
ndd删除n行
x删除光标所在字符
nx删除n个字符
dG删除光标所在行到文件末尾的内容
D删除光标到行尾的内容
、 n1,n2d 删除n1--n2行
yy复制当前行
p复制到下面一行
P复制到上一行
nyy复制以下n行
dd剪切当前行
ndd剪切n行
按一下r/R 替换当前的字符,直至按Esc结束
恢复 u
:w 保存退出
:w [文件名] 保存另存为到另一个地方
:wq 保存退出
ZZ 快速保存退出
:q! 不保存退出
:wq! 保存修改并退出 (文件所有者,及root可以)
:r [文件名] 导入文件内容
:!which ls
:!date
:r !date 导入时间到当前
:map ctrl v P (定义快捷键ctrl p) I#<ESC>
:map ctrl v H i106905481@qq.com
:ab mymail samlee@lampbrother.net 当输入mymail自动替换samlee@lampbrother.net
但是对于这些快捷键,下次重新进入之后就不存在了
所一可以在用户目录,或者根目录下面进行配置
.vimrc 这个文件里面配置
7.在windows中远程登陆linux的软件可以用:
secureCRT8.在windows中对linux进行文件传输的软件可以用
winSCP9.命令格式与目录处理:
ls 操作当前所在目录ls -i 查看i节点
ls -a 显示所有文件,包括隐藏了的,在linux中以 . 开头的文件是隐藏了的文件(a表示all)
ls -l 详细信息显示(long长格式)
ls -ld显示某一个目录本身,而不是它的内容
ll 目录名 显示目录权限
查看权限时,出现的三组权限分别对应:
2.所属组,只有符合某个条件的所有用户
3.其他,上述都不符合
-rw-rw-r-- 1 (第一个 - 表示是文件)
drwxrwxrwx 4 (第一个 d 表示是目录,如果是 l 表示软件)
u g o (所有者、所属组、其他)
是文件的所有者不一定具有执行权限
ls -d 查看目录属性
ls -i查看i节点号
10.复制
cp -rp 【源文件或者目录】 【目标目录】-r表示复制目录
-p表示复制源文件的属性
拷贝过去如果需要改名字那么直接在目标名称后接上就可以
11.清屏
ctrl + l12.剪切、改名字
mv13.终止当前目录
ctrl + c14.创建空文件
touch15.查看文件的内容
cat-n 显示浏览的行号
tac (cat倒着写,就可以反向显示一个文件的内容)
16.分页显示文件内容
more 文件名按回车一行一行的显示,按空格一行一行的显示
lsee 文件名
和more差不多,但是按pageup可以向上翻,箭头也可以
less还可以用 /查询的文件名 就会高亮显示然后按n就可以遍历所查找
17.只想看一个文件的前几行
headhead -n 7 文件路径 (查看文件的前7行)
18.只想看后面几行
tailtail -n 3 文件路径加名字 (查看后3行)
tail -f 动态的指定文件末尾的内容
head和tail命令如果不指定,默认10行
19.链接问题
软链接 ln -s /etc/issue /tmp/issue.soft硬链接 ln -s /etc/issue /tmp/issue.hard
20.权限管理命令
chmodchmod [{ugoa}{+-=}{rwx}] [文件目录] (a代表ugo)
chmod g-w,o-x /etc/japan (用逗号隔开)
权限数字表示:
r----4
w----2
x----1
rwxrw-r--
7 6 4 (就这样表示)
chmod -R 777 /tmp/a (递归的进行权限修改)
r------->读权限 可以查看文件内容 可以列出目录的内容
w------->写权限 可以修改文件内容 可以在目录中创建文件、删除文件
x------->执行权限 可以执行文件 可以进入目录
删除一个文件的前提条件是:对这个目录具有写权限。而不是对这个文件有写权限
linux中一个目录具有r权限那么他就应该也有x权限
21.改变文件所有者,只有以管理员的身份(root)来进行这个操作
chown [用户] [文件或目录]22.改变文件的所属组
chgrp [用户] [文件或目录]23.显示新建目录的缺省权限
umask -Slinux中温和缺省创建的文件都是不具有可执行权限x
使用umask 会出现0002,这个是掩码指 用777-0002=775才是真正的权限
用umask 0003(直接加数字就完了)就可以将默认权限改成777-0003=774
24.文件搜索命令(在windows里面有一个工具everything 可以搜索文件,前提:ntfs分区)
find 【搜索范围】 【匹配条件】-name 用指定名字搜索文件
find /etc -name init (搜索名字为init(只能为init)的名字)
find /etc -name *init* (只要包含init的都给我搜出来)
find /etc -name init* (以init开头的文件)
find /etc -name init??? (以init开头并且后面还差三个字符的,问号匹配单个符)
如果查找时,想不区分大小写 用 -iname
find /etc -iname init
查找文件大于100MB的文件
find / -size +204800 大于100MB的文件
+ 号表示大于 -号表示小于
linux中:1数据块 512字节 0.5k
换算单位:100MB=102400kb=204800
查找根目录下面属于yinpeng的文件
find /home -user yinpeng
三个经常使用的关于时间的格式控制
-amin 访问时间access find /etc -amin -5 访问小于5分钟内访问过的文件
-cmin 文件属性change find /etc -cmin -5 访问5分钟内修改过时间的文件和目录
-mmin 文件内容modify find /etc -mmin -30 30分钟内被访问的文件
使用find需要同时满足不同条件
-a 同时满足 find /etc -size +163840 -a -size -204800 查找大于80MB小于100MB的文件
-o 或着,满足一个就可以
查找文件只想看到文件或者目录
-type
f文件 d目录 l软链接文件
-exec/-ok 命令 {}\; 对搜索结果执行操作 {} \; 这个是固定的
-exec和-ok的区别就是-ok会一个一个的询问你yes或者no
find /etc -name inittab -exec ls -l {} \;
查找名字init开头的并且类型是文件,最后将它列出来
find /etc -name init* -a -type f -exec ls -l {} \;
find . -name yinpeng (find后面那个.号表示在当前文件)
其他的搜索命令(并非真正的在硬盘上进行检索,而是在locate那个资料库里面进行搜索)
locate [文件名]
但是存在一个问题就是刚创建的文件并没有被写入locate
所以就要用updatedb来进行刷新一下,但是在/tmp临时文件里面的不能使用locate来进行搜索,
如果需要不区分大小写来进行搜索,那么需要使用
locate -i [文件名]
搜索一个命令所在的绝对路径,查看一个命令的别名: which (whereis也可以)
which [命令]
which cp
查找、搜索文件内容的某一行grep
grep [查找的关键词] 【文件路径加文件名】
grep -i [查找的关键词] 【文件路径】 不区分大小写的搜索
grep -v ^# /etc/inittab 去掉以#开头的行(排除查找)
掌握解压命令
1 对文件生效的:.gz的压缩格式
压缩格式: 只能压缩文件不能压缩目录,而且这种压缩不保留源文件
gzip 【文件名】
解压缩格式:
gunzip [压缩包名字]
2
tar
-c 打包 -v 显示详细信息 -f指定文件名 -z打包同时目录
压缩:-zcf
tar -cvf Japan.tar Japan
tar -zcf Japan.tar.gz(压缩后的名字) Japan(需要压缩的路径目录)
解压缩:-zxf
tar -zxvf 【压缩包路径和名字】
3
zip(压缩完可以保留源文件)
zip [压缩后文件名] 【文件或者目录】
zip -r [压缩后文件名] 【文件或者目录】压缩目录
解压缩:
unzip 【压缩包】
4
bzip2 压缩比较大的文件可以使用bzip2
bzip2 -k [文件名] 保留源文件的压缩
tar -cjf 压缩目录生成tar.bzip2
tar -xjf 解压tar.bzip2
网络命令:
1.给在线的linux其他用户发送信息
write [用户名] 按ctrl D 保存退出w 可以查看现在在线的用户
2.
wall [message]给每个用户都发送
3.
ping 【ip地址】他会一直ping ,按ctrl c才能退出
ping -c 3 www.baidu.com 只ping3次
4.ifconfig查看当前网络
ifconfig5.mail 发送邮件
mail [用户名]输入mail 可以查看邮件
6.last统计计算机所有登陆记录,包括重启
lastlastlog
lastlog -u 502
7.traceroute 追踪网络节点 显示数据包到网络节点
traceroute 【ip】8.netstat
-t tcp 协议-u udp
-l 监听
-r 路由
-n 显示ip地址和端口号
netstat -tlun 查看本机监听的端口
netstat -an 查看本机的网络链接
netstat -rn 查看本机路由表
9.mount 挂载
先创建挂载点 mkdir /mnt/cdrom挂载 mount -t iso9660 (设备名称) /dev/sr0 (挂载点)
卸载:umount /dev/sr0
关机和重启命令
shutdownshutdown -h now
shutdown -h 20:30 关机命令
shutdown -r now 重启命令
-c 取消前一个关机命令
halt 关机
poweroff 关机
init 0 关机
reboot 重启
init 6 重启
系统运行级别:
0 关机1 单用户 (用来做修复,没有图形界面)
2 不完全多用户 不含NFS服务(网络文件服务系统)
3 完全多用户
4 未分配
5 图形界面
6 重启
查看系统运行级别:
runlevel退出登陆
logout 面对一台服务器,不退出登陆是很危险的。linux软件包的安装
1.什么叫做源码包为经过编译的c语言代码,可以自己进行修改
2.什么叫做二进制包
已经进行过编译的,机器直接可以识别。不可以修改
RPM安装
rpm -ivh 【包全名】-i 安装
-v 显示详细信息
-h 现实安装过程
RPM升级
rpm -Uvh [包全名]
RPM卸载
rpm -e [包名,不是包全名]
RPM查询
rpm -q 【包名】
rpm -qa [包名]
任何位置都可以使用,全局查询查看是否已经安装。
rpm -qi [包名]
查看包安装的相关信息
rpm -qip [包全名]
查看未安装的包信息
rpm -ql [包名] 查询包中文件安装的位置
rpm -qf [系统文件名] 查询系统文件属于哪一个rpm包
rpm -qR [包名] 查询已经安装包的依赖性
rpm -qRp [包全名]查询未安装包的依赖性
YUM在线管理 (yum命令用来管理rpm包)
在线的安装,方便的解决依赖问题。红帽子使用yum需要付费,红帽子配置网络,输入setup就可以
yum -y install [包名] 在线安装
yum -y update [包名】升级
yum -y remove 【包名】卸载
RPM包安装的服务可以使用service来进行管理
使用方式:
service [包名] start 启动
stop 暂停
du -sh [目录文件名】 查看目录有多大
安装源码包和rpm包的区别就是:
源码包的安装路径是自己定义的
rpm包的路径是规定好了的。
源码包源代码的保存位置:
/usr/local/src
软件安装的位置;
/usr/local
脚本安装包
并不是独立的软件安装包,常见安装的是源码包
是人为的把安装的过程写成了自动安装的脚本
执行安装脚本 ./setup.sh
在linux上安装webmin就可以在远程的访问时候,使用网页图形化界面来管理。
linux的用户名在/etc/passwd
密码在 /etc/shadow 影子文件 密码使用SHA512散列加密
在shadow里面,密码串的前面加一个! 就可以禁用这个用户
yinpeng:$6$I2.w9xUG$rIck0bM7mxTzW1qm.P/Kvw3Ke5kB9zFkP0SiYRnsAMzfu/fpXjRZL6TftGiYPWgrZ0NpM9wNjjIn0M9Y9YDdC/:17115:0:99999:7:::
17115 时间戳 0 密码过期永远失效 -1则不会 99999密码有效期 7提前7天提醒换密码
用户模板目录:
/etc/skel/每次添加一个新的用户,都会从/etc/skel/下面拷贝文件
邮件目录:
var/spool/mailroot没有邮件目录
添加新的用户:
useradd [用户名]-u 指定用户的UID
-d 家用户
-c 用户说明
-g 组名
-G 用户的附加组,用逗号来分割
-s shell 指定用户的登陆shell 默认是/bin/bash
添加用户名后,如果不设置密码,那么不能进行登陆
passwd [密码]
passwd的使用
直接输入 passwd 更改当前用户的密码-S 查询用户密码的状态 仅root可以使用
-S 【用户名】
锁定用户 -l [用户名]
解锁用户 -u 【用户名】
usermod修改用户的信息
-u [用户名] 修改用户的UID-c 修改用户的说明
-G 组名
-L 临时锁定用户
-U 解锁用户
chage命令修改密码(其实查出来的也就是shadow里面的信息)
-l 列出用户的详细密码信息-d 日期 常用命令 chage -d 0 [用户名] 强制要求用户登录后,修改密码
userdel 删除用户
-r [用户名] 删除用户同时删除用户的家目录id查看用户的id
id 【用户名】su切换用户
-连用户环境变量一起改变切换成root要用 su - root
su - yinpeng
env查看用户的环境变量
su - root -c "useradd user3" 在不切换用户的前提下,执行root的命令df -h 查看当前系统的分区。
ACL权限问题,解决linux中身份只有所有者,所数组,其他的权限分类不足的问题。
useradd zhangsanuseradd lisi
useradd st
groupadd tgroup
mkdir /project
chown root:tgroup /project/
chmod 770 /project/ 所有者的权限为7,所数组的权限为7,其他为0,st这个用户单独设定的权限为r-x,只有读和执行,没有写的权限。
setfacl -m u:st:rx /project
给用户st赋予r-x权限,使用“u:用户名:权限” 格式