Linux常用基本命令
1、显示当前所在的位置:# pwd,注意:该命令它是显示绝对路径
2、移动切换到任意的指定目录下:# cd
3、# ls -l,选项:-l long显示长格式信息(详细信息)
-》# ll 也能显示详细信息
4、选项是可以联合使用的
-》# ls -ld /etc/
5、ls -a all显示所有全部的文件或者目录,包括隐藏文件
Linux文件目录常用命令
1、创建一个新的目录:# mkdir test
-》相对路径创建:# mkdir test
-》绝对路径创建:# mkdir /root/test02
2、递归创建多个目录:# mkdir -p test03/file01
-》选项:-p代表递归创建
3、创建一个空的文件:# touch file.txt
-》创建一个带空格命名的文件:# touch "prg file",加上双引号
-》但是不建议大家创建带空格的文件
4、删除一个文件:rm file
5、删除一个目录:# rm -r test
-》选项:-r,代表目录
6、强制删除一个文件或者目录:# rm -rf test04
-》选项:-f,代表强制操作
7、复制拷贝一个文件到一个目录下:# cp file.txt test
-》拷贝一个目录到另一个目录下:# cp -r temp test/test02/
-》选项:-r,代表目录
8、剪切一个文件:# mv file.txt temp
9、重命名一个文件:# mv file.txt zhanghao.txt
10、查看一个文件内容:# cat beifeg.list
11、查看一个内容较多的文件可以使用:# more beifeg.list
-》按空格一页页查看,按回车一行行查看,按q退出浏览状态
12、查看文件前几行:# head -5 /etc/passwd,可以指定行数,默认为10行
13、查看文件末尾的几行:# tail -2 /etc/passwd
-》选项:-f ,实时滚动查看文件内容,一般用来查看日志信息
14、分页查看文件内容:less /etc/passwd
-》可以按pgup或者pgdn向上或向下翻页查看
-》按q退出
VI编辑器
1、命令模式
-》在一开始进入文件后,所处的就是命令模式
2、插入模式
-》该模式下可以对文件内容进行编辑修改添加
3、最后行模式
-》按下shift+冒号,进入最后行模式
-》:wq保存并退出,!感叹号代表强制操作
4、常用快捷键:
-》显示行号:set nu,最后行模式
-》移动到第一行:gg,命令模式
-》移动到最后一行:G,命令模式
-》删除一行:dd,带有剪切的效果,命令模式
-》可以删除多行,比如:3dd
-》撤销上一步的操作:u,命令模式
-》黏贴:p,命令模式
-》复制:yy,命令模式
-》同理dd,可以复制多行,比如:3yy
-》替换::1,$s/nologin/666/g
-》1,$-》代表一个范围,第一行到最后一行
-》s-》代表替换的意思
-》/nologin/666/代表被替换和替换的内容
-》g-》代表通行的意思
权限修改
chmod
-》修改文件和目录的权限,所有者和管理员
-》用字母修改权限:# chmod u+x 52.txt
-》赋予一个权限用加号表示
-》撤销一个权限用减号表示:# chmod u-x 52.txt
-》同时添加多个权限:# chmod u+x,g+x,o+x 52.txt
-》用逗号隔开
-》用数字修改权限:# chmod 644 42.txt
# chmod 755 42.txt
-》递归修改多个文件目录的权限:# chmod 777 -R temp2
-》R表示递归修改
-》一个组可以有多个用户
-》teacher组-> t1 t2 t3...
-》一个用户也可以加入多个不同的用户组
3、修改所有者和所属组
-》命令:chown,chgrp 只有管理员才可以使用
-》 chown zhanghao 52.txt ,# chgrp zhanghao 52.txt
-》同时修改:# chown zhanghao:zhanghao 123.txt
-》注意:修改的用户必须是系统已经存在的用户或者用户组
drwxr-xr-x. 2 root root 4096 Oct 11 18:47 temp
-rw-r--r--. 1 root root 0 Oct 11 18:47 filetext.txt
用户和用户组
1、/etc/passwd 存放系统用户的信息
2、严格来说UID为0的就称为超级管理员
3、root:x:0:0:root:/root:/bin/bash
-》UID:0 用户ID userID
-》GID:0 用户组ID groupID
4、在创建了一个普通用户的同时会创建一个同名的用户组
5、添加一个用户:
-》useradd zhanghao
-》passwd zhanghao
6、创建一个用户的同时会在/home目录下生成一个与用户名同名的目录
7、添加一个用户组:
-》# groupadd zhanghao01
8、切换用户:# su - zhanghao02
9、删除用户:# userdel -r zhanghao02
-》选项:r 彻底删除,包括用户主目录
注意:切换用户时一定要加上 - 横杠
Linux符号命令
1、# grep 'root' /etc/passwd
2、命令:grep -》 作用:过滤 筛选
3、格式:命令 条件 操作对象
4、管道符号:| 一个竖线
5、将前面的命令的输出结果传递给后面一个命令进行处理
-》# cat /etc/passwd | more
-》# cat /etc/passwd | grep 'root'
-》# ifconfig | grep 'inet6 addr:'
6、追加:>> 两个连续的大于符号
-》# ifconfig | grep 'inet6 addr:' >> /home/zhanghao/eth0.log
如果写入的文件不存在,会自动的创建一个文件
7、覆盖:> 一个大于符号
-》# head -3 /etc/passwd > /tmp.pass
覆盖掉原来的文件内容
8、统计命令:wc -l
-># wc -l passwd
9、系统管理命令:
-》# ps -ef 显示系统当前运行的所有进程的详细信息
-》# ps -ef | wc -l 统计有多少个进程
Linux磁盘管理
1、brw-rw---- 其中b也是占位符,代表block,块设备文件的意思
2、sda-》代表第一块硬盘,sda1,2代表第一块硬盘的第一个和第二个分区
-》同理第二块硬盘sdb
-》d表示disk硬盘的意思
-》s表示硬盘接口:Sata sas 一般用于服务器
scsi ide 一般用于个人电脑
3、# fdisk -l -》 几块硬盘-》每块的容量-》每块的分区
4、cylinders-》磁柱,简单理解判断分区与否,以及分区的信息
5、关机重启命令:init 0,init 6,reboot,shutdown
6、添加硬盘前需要关闭虚拟机
7、对于一块新添加的硬盘进行分区:# fdisk /dev/sdb
8、创建一个新的分区:n add a new partition
9、磁盘中有主分区和扩展分区的概念
10、扩展分区必须要进行逻辑分区才能使用
11、可以删除分区重新操作d delete a partition
12、分区完毕后,按w 保存并写入退出,然后重启虚拟机立即生效
13、格式化硬盘,格式化命令:mkfs,
14、Linux中的文件系统:ext1,2,3,4
centos 7 -》xfs
windows NTFS FAT16 FAT32
-》# mkfs.ext4 /dev/sdb5
15、挂载硬盘,命令:mount-》临时挂载
16、挂载需要一个挂载点,在根目录下有一个默认的文件夹,/mnt
-》# mount /dev/sdb5 /mnt
17、查看挂载成功与否:
-》# df -h
18、永久挂载硬盘:# vi /etc/fstab 写入配置文件
/dev/sdb5 /mnt ext4 defaults 0 0
压缩和解压缩
1、格式:.gz,压缩命令:gzip
# gzip bf_test01
641020 Oct 11 23:07 bf_test01
127224 Oct 11 23:07 bf_test01.gz
->不保留原文件
2、解压缩命令:gunzip
# gunzip bf_test01.gz
注意:gzip只能压缩文件,不能压缩目录
3、tar可以将一个目录打包成一个文件,打包的同时做一个压缩
-》格式.tar
4、打包选项:c,显示详细信息:v,指定文件名:f
解压缩:x,选项:z 压缩
5、# tar -cvf file.tar file/
-》选项后先跟上打包后的文件名加上后缀,再加上要打包的文件名
-》保留原文件的
-》选项F ,必须要放在最后,后面跟上文件名
6、先打包再压缩生成:# gzip file.tar -》.tar.gz格式
7、打包的同时做一个压缩:# tar -zcvf file03.tar.gz file03
8、解压到指定的目录下# tar -zxf file03.tar.gz -C /opt/
-》大写C 指定目录
Linux搜索命令
1、命令:find
2、搜索是很消耗系统资源的(内存、CPU等等)
3、搜索尽量缩小搜索的范围
4、语法:find[搜索范围][匹配条件]
5、根据文件名查找,选项:-name
-》*表示匹配任意字符,?表示匹配单个字符
-》# find / -name init
-》# find /etc/ -name *init* -》包含关键字的搜索
-》# find /etc/ -name init* -》搜索以某个关键字开头的文件
-》# find /etc/ -name init???
-》选项:-iname 不区分大小写
-》# find /etc/ -iname init???
6、根据文件大小查找,选项:-size
-》指定方式:+大于,-小于,不加符号表示等于
-》单位:数据块 block
-》一个数据块的大小:512字节=0.5k,1KB=两个数据块
-》100MB,1MB=1024KB,100MB=102400KB
-》102400KB*2=204800个数据块
-》# find / -size + 204800
7、根据文件所有者、所属组查找,选项:-user -group
-》# find /root/ -user root
-》# find /root/ -group root
8、根据文件类型查找,选项:-type
-》f 代表file文件,d 代表data目录
-》-a 代表and 和
-》# find /etc/ -name init* -a -type f
-》# find /etc/ -name init* -a -type d
awk命令
1、语法:awk '条件1 {动作1} 条件2 {动作2} ... ' 文件名
2、功能:格式化输出内容-》printf
3、# awk '{printf $1 "\t" $5 "\n" }' test.txt
4、printf需要手动的添加换行,print不需要手动添加换行的
5、# df -h | awk '{print $1 "\t" $5 "\t" $6}'
Linux时间命令
1、命令:# date
2、选项:-s
3、设定时间:# date -s "2016-10-12 16:31:20"
4、# date "+%Y%m%d",# date "+%y%m%d%H%M%S"
5、时间设定为7天前:# date -d '7 day ago' '+%y%m%d'
RPM命令以及RPM包的管理
1、rpm包,后缀为.rpm格式的包
2、用rpm命令去管理
3、挂载光驱-》# mount /dev/cdrom /media/-》光驱是只读不可写的
4、# ls | wc -l列出当前目录下所有的包的个数
5、查询:# rpm -qa-》q表示查询,a表示全部
-》显示当前系统下全部已经安装好的RPM包
-》# rpm -qa | grep httpd 过滤筛选出个别的包
6、安装:选项:-i表示安装,显示进度信息-》vh
-》# rpm -ivh zlib-1.2.3-29.el6.x86_64.rpm
-》后缀加上.rpm
7、卸载:选项:-e表示卸载
-》# rpm -e zlib-1.2.3-29.el6.x86_64
# rpm -qf /usr/bin/man
-》-qf表示查询某个命令来自于哪个包文件
8、缺点:依赖性极强
YUM命令以及管理RPM包
1、同样可以管理RPM包
2、很好的解决了RPM包的依赖性,非常智能
3、# yum list-》列出所有已经安装好的RPM包
4、使用前提必须连接到外网(必须设置DNS)
5、YUM仓库
6、查询:# yum list | grep httpd-tools
7、@anaconda仓库名前面如果有@符号,表示已经安装过,没有表示未安装
8、安装:选项:install表示安装
-》# yum install httpd-devel.x86_64
-》# yum -y install httpd-devel.x86_64
-》选项:-y 表示直接确认
-》Resolving Dependencies表示解析依赖
9、卸载:选项:remove表示卸载
-》# yum -y remove httpd-devel.x86_64
10、YUM仓库位置:/etc/yum.repos.d
-》.repo结尾的都叫做仓库配置文件
-》gpgcheck=1是否开启校验
-》gpgkey=file:校验码key
11、常见错误:
-》DNS解析配置
-》仓库位置不能更改
时间计划任务
1、一次性计划任务
# at 11:33
at> cp /etc/passwd /tmp/
at> <EOT>
job 3 at 2016-10-13 11:33
2、周期性计划任务
-》必须前提启动相关的服务
# service crond status
3、内容格式:
如果时间是时间段,可以使用横杠(-)来表示一段连续的时间,
使用(,)表示若干不连续的时间,
使用星号(*)表示所有的时间,
使用除号(/)表示间隔时间
4、计划任务条件示例:
*分 *时 *日 *月 *周 cmd
0 2 * * 3 cp /etc/passwd/tmp 每周三凌晨2点备份/etc/passwd
5 1 10,25 * * rm -rf /tmp/* 每个月10号和25号凌晨1点5分执行
*/10 * * * * ntpdate 每10分钟执行时间同步
0 1-6 * * * 每天凌晨1点到6点执行
4、示例:每一分钟将文件的结果内容写到某一个文件中去
*/1 * * * * date >> /tmp/date.log
指定完计划需要重启:# service crond restart
删除计划任务:# crontab -r
-》删除是全部删除
Linux防火墙
1、查看防火墙状态:# service iptables status
2、Linux系统中一般查看服务都用service命令
3、使用service命令,需要使用管理员身份
4、关闭防火墙:# service iptables stop
5、查看系统服务开机启动的状态# chkconfig
6、使用chkconfig命令,需要使用管理员身份
7、关闭防火墙开机启动设置:# chkconfig iptables off
8、sudo权限设置:zhanghao ALL=(root)NOPASSWD:ALL
-》建议后续使用同一个用户学习
9、selinux是一个安全子系统
-》/etc/sysconfig/selinux
-》SELINUX=disabled设置禁用
10、搭建一个完整的Linux基本环境
-》安装虚拟机、操作系统
-》配置IP、主机名、映射
-》设置DNS域名解析
-》创建一个普通用户
-》为用户设置sudo权限
-》卸载系统自带openJDK
-》安装自己的JDK配置环境变量
-》禁用防火墙和selinux设置
sudo权限
1、操作的对象是命令
2、让普通用户执行管理员用户才能执行的某一些操作,进行授权
3、修改sudo配置命令:# visudo,必须管理员身份修改
4、查看帮助信息:# man 5 sudoers
5、root ALL=(ALL) ALL
-》第一个ALL:代表的是IP地址或者网段
-》第二个ALL:代表被管理主机,可以不写,默认为root
-》第三个ALL:代表具体被授权的命令(绝对路径)
-》# whereis shutdown 找到命令所在的存放路径
-》zhanghao ALL=/sbin/shutdown -r now
-》注意命令一定要写绝对路径
-》$ sudo shutdown -r now
-》$ sudo -l 查看用户被授权哪些权限操作
系统管理命令
1、# ifconfig-》查看网络基本信息
2、# top-》实时滚动查看系统整体资源信息
-》load average:表示负载
-》Tasks:表示当前服务器的进程和状态
-》Swap: 交换分区-》类似虚拟内存的概念
-》按q退出浏览状态
3、# free-》查看当前系统中内存的信息
-》选项:-m 代表单位为:MB
-》默认不加选项,单位为:KB
4、# netstat-》net表示网络,stat表示状态-》查看网络状态的信息
-》所有用户都可以使用
-》语法格式:命令+选项
-》选项:-t表示TCP网络协议-》更加安全、可靠
-》选项:-u表示UDP网络协议-》直接传输数据-》不稳定
-》选项:-l表示listen监听,查看监听的端口
-》选项:-r表示查看路由(网关)
-》选项:-n表示查看IP地址和端口号
-》第一种:# netstat -tlun-》查看系统当前已经开启的端口情况(监听)
-》Apache的端口一般默认都是80开头
-》第二种:# netstat -an-》查看所有的监听状态
-》ESTABLI表示已经连接
-》与-tlun最大的区别就是能够查看正在连接的网络程序
-》第三种:# netstat -rn查看当前计算机的路由列表(网关地址)
5、$ kill -9 2084 强制结束某个系统进程,不加-9,默认是正常结束进程
Linux帮助命令
1、命令:man
2、Linux中配置文件都有一定的格式,有规律可循
3、service-name port/protocol [aliases ...]
4、查看配置文件技巧:文件的作用和文件的格式
5、man命令可以查看命令的帮助和配置文件的帮助信息