Linux中基本的常用命令

1、命令的格式:
命令本身 【-可选项】【操作的对象】
ls -l /opt
由于单个命令表示一种功能,那么使用不同的选项用来区分不同的功能
某些命令不需要加任何的选项就可以执行,也不需要操作对象
命令之间以空格隔开
2、命令:pwd
-》作用:显示当前用户所在的路径,绝对路径显示
3、命令:clear
-》作用:清楚屏幕,刷新屏幕
-》快捷键:ctrl+l 同样的清除屏幕的功能
4、命令:cd
-》作用:移动到任何指定的目录下
-》可以跟上cd ..表示移动返回到上一级的目录
5、查看命令:ls
# ls -l显示详细信息
# ls -a显示所有的文件,包括隐藏文件
-》在Linux中前缀为.的就表示隐藏文件
# ls -la  选项之间是可以结合一起使用的,不需要加多个-横杠
# ls -d /etc/只查看目录或者文件本身的属性
-》注意选项之间大部分情况下是不分前后顺序的,某些特殊的选项会区分
6、创建:
mkdir 创建目录
# mkdir test_data
# mkdir -p test_data01/data02
-》选项:-p表示可以一次递归创建多个目录
touch 创建文件
# touch ds.txt
# touch "pro file"
-》注意:创建带有空格命名的文件时候需要加上引号
-》让系统识别,它们是一个整体
-》不建议在创建的时候命名带有空格
echo 'hello' >> test.txt 在test.txt 文件末尾追加内容。
echo 'hello' > test.txt 在test.txt 文件覆盖内容。

删除:
rmdir 删除一个空目录
# rmdir ds_data/
rm 删除一个目录或者是文件
# rm ds.txt 删除文件
# rm -r test_data 删除目录
# rm -rf test_data01/ 不询问,直接删除,建议使用的时候要谨慎
选项:-r -f
拷贝:
cp
# cp file ds_data/
# cp -r data99/ ds_data/
选项:-r表示目录
命令本身 【源路径】【目标路径】
剪切:
mv
# mv "pro file" ds_data/
命令本身 【源路径】【目标路径】
重命名:
# mv file ds.txt  不移动位置可以直接更改名称
# mv "pro file" ds.list
查看的几种方式:
cat 查看普通文件
# cat /etc/hosts

more 分页查看文件,适合内容较多的文件
-》按空格翻页查看
-》按回车逐行查看
-》按q退出more的浏览状态

less 分页查看文件,适合内容较多的文件,支持向上或向下翻滚
-》按空格翻页查看
-》按回车逐行查看
-》按q退出more的浏览状态

head 查看文件的前几行
# head -5 /etc/passwd
head后面直接跟上需要查看的行数,默认不加参数就是10行

tail 查看文件的末尾几行
tail后面直接跟上需要查看的行数,默认不加参数就是10行
# tail -3 /etc/passwd
选项:-f 滚动实时查看,比较实用

六、Linux中的目录结构
/:表示根目录,系统最外层的顶层目录,系统最初始的目录
~:表示用户主目录,每个用户都会有一个用户名同名的家目录
-》/root -》管理员的家目录
-》/home/*** -》普通用户的家目录
-》每次的系统登录都会在用户主目录下


七、Linux中的用户
root:x:0:0:root:/root:/bin/bash
-》第三列UID,用户ID
-》第四列GID,用户组ID
比如:teacher组: t1,t2,t3,t4,t5.....多个用户
一个用户组中可以有多个用户,一个用户可以加入多个不同的组
一般创建了一个用户之后,UID和GID是相同的
添加用户
# useradd ds
设置密码
# passwd ds
切换用户
# su - ds
su和su -的区别:一个仅仅是切换用户,一个是完全切换用户以及环境变量
一般建议使用su - 用户名的方式切换
删除用户
# userdel -r ds02
选项:-r表示删除用户的时候删除该用户的主目录


八、Linux中的文件权限
drwxr-xr-x
-》d代表data目录文件的意思
-》对于一个文件或目录来说有:读、写、执行三种权限
r读 cat more tail less head...
w写 vi mkdir rm touch cp mv...
x执行 执行脚本、cd 

字母表现:
所有者-》user, u
所属组-》group,g
其他人-》other,o

数字表现:
r -》4
w -》2
x -》1
rwx r-x r-x = 755
rw- r-- -r--= 644

修改权限:
-》角色:只有管理员和该文件的所有者才能修改文件的权限
-》命令:chmod
# chmod u+x file ,添加权限使用:+加号,撤销使用-减号
# chmod u+x,g+x,o+x file 同时修改
# chmod 755 file  使用数字的方式修改
# chmod -R 777 bf_data/
-》选项:-R递归修改多个文件或者目录的权限
-》命令:chown、chgrp
-》角色:只有管理员才能修改文件的所有者和所属组
# chown root ds/
# chgrp root ds/
# chown ds:ds ds/  可以一条命令同时修改
-》选项:-R递归修改多个文件或者目录的所有者和所属组
对于删除或者修改一个文件来说,并不是看对于这个文件有写权限,而是对于这个文件所在的目录要有写权限


九、vi编辑器
vi和vim在基本的使用上是一致的,但是vim兼容了vi的所有功能,加入了一些新的特性
-》命令模式
-》编辑模式
-》最后行模式 shift+:
-》wq!   感叹号表示强制保存退出操作  q! 表示不保存强制退出
-》另外的保存方式:命令模式下使用大写ZZ
-》另外的保存方式:在最后行模式下使用小写x
-》快捷键:
显示行号:set nu 在最后行模式下使用
删除:小写dd 命令模式使用,可以删除多行,比如三行:3dd,还带有剪切的功能
撤销:小写u 命令模式使用
黏贴:小写p 命令模式使用
复制:小写yy 可以同时复制多行,命令模式使用,比如3yy
移动:大写G 移动到末尾,小写gg 移动到第一行 命令模式使用
移动:指定行移动,在最后行模式下使用,添加指定的行数数字
关键字:在最后行模式下使用,比如搜索root,:/root
替换:1,$s/nologin/666/g
-》1代表第一行
-》$代表最后一行
-》1,$代表一个替换的范围
-》s代表替换
-》/nologin/666/  替换和被替换的内容
-》g代表通行的意思
    命令行模式:ZZ 表示保存退出。
x表示把光标初的字符删除。
o表示在光标的下一行进行插入。


十、Linux中的搜索命令
命令:find
搜索是会占用很大资源的,所以尽量避免高峰期进行搜索
搜索的范围尽量的缩小,可以减少搜索的时间和占用的资源
语法格式:
find【搜索范围】【搜索条件】
1、文件名搜索,选项:-name,-iname
# find / -name init
*代表Linux中的通配符,表示匹配任意字符,可重复的
?代表Linux中的通配符,表示匹配单个字符
Linux中严格区分大小写
# find /etc/ -name *init*  -》查找包含关键的所有文件
# find /etc/ -name init*   -》查看包含关键字开头的所有文件
# find /etc/ -name init??? -》查看包含关键字的指定个数的文件
# find /etc/ -iname init???-》不区分大小写查找文件
2、文件大小搜索,选项:-size
-》单位:Linux中存储的最小单位是数据块,一个数据块的大小:512字节=0.5KB
-》100MB文件,1MB=1024KB,100MB=102400KB,102400*2=204800数据块
# find / -size +204800   +号表示大于,-号表示小于
3、文件所有者&所属组,选项:-user、-group
# find /root -user root 
# find /root -group root 
4、文件类型,选项:-type
# find /etc/ -name init* -a -type f
# find /etc/ -name init* -a -type d
-a表示and,连接,代表整个表达式前后的条件必须都满足,才成立
f表示文件file
d表示目录data

ln 保证了文件的一致性 。


sudo 权限的配置:

    1、一般Linux中命令操作的对象都是文件
2、sudo命令操作的对象是命令(脚本文件)
3、修改sudo配置
visudo进行配置,使用的身份必须是管理员
visudo=/etc/sudoers
root    ALL = (ALL)       ALL
用户 IP或者网段 root(可以不写) 具体执行的命令操作(命令的绝对路径)
ds ALL=/sbin/shutdown -r now  限制某一个用户可以使用的命令以及选项
$ sudo -l查看该用户被赋予了哪些sudo的可执行权限
执行前面必须要加上sudo命令$ sudo shutdown -r now
或者这样执行也可以:sudo /sbin/shutdown -r now
4、which和whereis命令
whereis定位可执行文件、源代码文件,定位文件在文件系统中的位置
which同样也是可以定位文件的位置
which shutdown
whereis shutdown


Linux中的符号命令
# grep 'root' /etc/passwd
grep可以过滤筛选出一些关键字的行
grep 【条件】【操作对象,文件】
1、管道符号
-》一个竖线表示,|
# cat /etc/passwd | more
# cat /etc/passwd | grep 'root'
# cat /etc/passwd | head -3
把前一个命令的输出结果通过管道符号传递给后一个命令处理
# ifconfig | grep 'inet6 addr:'
注意:不是所有的命令都能够放在管道符号后面使用的

cat /etc/passwd | grep 'root' | wc -l  可以多个管道符号一起用

2、追加符号
-》>>两个连续的大于符号
把前一个命令的输出结果追加到一个文件中
# ifconfig | grep 'inet6 addr:' >> temp.log
-》可以追加到一个已经存在的文件中,在原来的基础上追加
-》也可以追加到一个不存在的文件中,同时创建
3、覆盖符号
-》>一个大于符号
# ifconfig | grep 'inet6 addr:' > temp999.log 
-》覆盖原来的文件内容
4、wc命令
-》功能:统计,可以统计行数,选项:-l
# wc -l /etc/passwd
# head -3 /etc/passwd | wc -l
5、# ps -ef查看系统下的管理进程
# ps -ef | wc -l  统计多少个进程

Linux中的帮助命令
1、帮助命令:man
查看命令的帮助信息
查看文件的帮助信息
2、一般查看帮助信息的第一行NAME,了解该命令的基本作用

Linux中的压缩命令
1、gzip,压缩时不保留原文件
2、gzip,不能压缩目录
       gzip file_bf
压缩前:641020 Apr 16 18:34 file_bf
压缩后:127222 Apr 16 18:34 file_bf.gz

解压: gunzip file_bf.gz  不保留压缩包
3、bzip2适用于一些内容和数据较大的文件进行压缩
4、tar包格式压缩
打包:# tar -cvf ds100.tar ds100/  
注意:-f必须放在选项的最后
解包:# tar -xvf ds100.tar -C /opt/
.tar.gz格式打包:# tar -cvzf ds100.tar.gz ds100/
.tar.gz格式解包:# tar -zxvf ds100.tar.gz -C /opt/rh/
选项:-C 重定向,注意是大写

六、磁盘管理
   
uname 查看当前是什么系统
uname -r 查看当前系统的版本
cat /proc/cpuinfo 查看cpu配置信息
cat /proc/meminfo 查看内存配置信息
cal 2017  日历表
date -s 设置日期时间
1、查看当前磁盘使用情况
df -h
2、磁盘命令
# fdisk -l
brw-rw----  其中b代表的是块设备文件
sda代表第一块硬盘,s代表接口,d代表disk磁盘
sda1/2...代表硬盘中的分区
硬盘接口:
sata sas-》服务器方面
scsi ide-》个人电脑方面
SSD固态
3、cylinders磁柱-》就是查看分区情况
-》起始和结束
4、添加磁盘之前先关机,关闭所有的进程
5、分区
# fdisk /dev/sdb
输入m查看帮助信息
输入n进行分区
  e   extended      -》扩展分区
  p   primary partition (1-4)-》主分区
主分区+扩展分<=4
必须保证要有一个扩展分区
2+1或者3+1的模式
主分区分完格式化之后可以直接使用
扩展分区分完之后还需要进行逻辑分区才能使用
注意:分完区之后按w进行信息的保存
分完区之后建议重启机器,让系统重新加载一次信息

修复磁盘 fsck /dev/sda
free -m 查看系统内存使用情况
top -M 查看各个内存进程使用情况

要学会Linux中的table键自动补齐
6、格式化磁盘
Linux中的文件系统
ext2、ext3、ext4、xfs等
格式化命令:mkfs.ext4 /dev/sdb6
7、挂载磁盘
挂载临时命令:mount
mount /dev/sdb6 /mnt
卸载磁盘: umount /dev/sdb6
挂载点:是访问这个分区的唯一入口,是必须已经存在的
使用:df -h来验证是否挂载成功
永久生效的挂载方法:
# vi /etc/fstab  写入配置文件
/dev/sdb6   /mnt  ext4    defaults  0 0

Linux中的软件包管理方式
1、软件包的类型
-》源码包(脚本)
-》二进制包(rpm、系统默认包)
-》经过编译后的(看不到源码)
-》管理方便:安装、卸载、升级、查看
-》安装速度快
-》依赖性
A->B->C->D.....互相依赖
挂载光驱:# mount /dev/cdrom /media
2、rpm管理方式  ls | wc -l
-》管理.rpm结尾的包
-》查询:
rpm -qa  q表示查询,a表示所有
-》查询所有已经安装好的包
-》安装
rpm -ivh,i表示安装,vh表示进度
# rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm
-》卸载
rpm -e,e表示卸载
# rpm -e zlib-devel-1.2.3-29.el6.x86_64
选项:--nodeps:不检测依赖性,一般建议在试验环境使用
3、yum管理方式
-》使用的前提条件,需要连接到网络
-》查询:
# yum list查询已经安装好的包
# yum list | grep httpd-tools
-》安装:
选项:install ,选项:-y  直接确认
# yum -y install httpd-devel.x86_64
-》卸载:
选项:remove
# yum -y remove httpd-devel.x86_64
-》yum仓库:
地址:/etc/yum.repos.d/


系统管理命令
1、top -》 查看当前系统的资源和任务,3秒刷新一次
Swap交换分区-》类似windows中的虚拟内存概念
-》按q退出浏览的状态

ps -ef 查看进程
2、free -》 查看当前系统内存资源的情况
选项:-m 表示mb
3、netstat
-》查看网络状态
-》-t:表示TCP网络协议,三次握手,更安全
-》-u:表示UDP网络协议,直接传输数据,传输快,不稳定
-》-l:表示监听端口,listen
-》-r:表示路由器,查看网关
-》-n:表示IP地址和端口号
  第一种用法:
# netstat -tlun
查看系统已经开启的监听端口
第二种用法:
# netstat -an
-》a表示all全部的意思
查看系统已经开启的监听端口以及正在连接的网络程序
第三种用法:
# netstat -rn 查询路由信息及网关地址
# route -n同样也是单独查询路由信息
4、kill结束系统进程命令
$ kill -9 2287
-9表示强制关闭,类似windows中的结束任务

正则表达式
1、过滤包含数字的行
# grep '[0-9]' /etc/passwd
grep '[0-9][0-9][0-9]' /etc/passwd
# grep ':[0-9][0-9][0-9]:7' /etc/passwd
# grep '^r.*n$' /etc/passwd  查找以r开头以n结尾的任意行
“[a-z]”“[0-9]”“[A-Z]”
[A-Z][0-9][0-9] = B02

【举例】提取ifconfig命令中的IP地址,使用sed命令 -v代表反向选择(不包含这个) s/ 代表替换 /g 代表通行
# ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | sed 's/inet addr://g' | sed 's/Bcast.*//g'

Linux shell
0、脚本规范,每个脚本的开头第一行都会有一个固定的格式
#!/bin/bash,声明当前使用的shell环境是哪一种
执行脚本方式:
sh 脚本名称
./脚本名称  先赋予脚本的x执行权限
1、编程语言:解释型脚本语言-》直接调用Linux命令
2、shell解释器
外层应用程序,-》ls-》ascii字符
|
shell命令解释器 -》转换
|
内核
|
硬件 -》 0101010101.....机器语言
3、Linux sh bash psh zsh....
-》bash一般Linux环境的常用shell环境
4、环境变量
-》用户变量
-》只针对于某个用户的环境变量
-》系统变量
-》系统全局生效的
/etc/profile
5、位置变量
命令:echo

#!/bin/bash


echo $0 1.sh
echo $2
echo $3
echo $1 tom
6、自定义变量
name=[value]
等号两边不能有空格
对大小写敏感
$符号取值
[ "$Yn" = "Y" -o "$Yn" = "y" ] ; echo.....  
7、for循环
#!/bin/bash


for i in tom tony leo
do
echo $i
done
【需求】使用for循环
#!/bin/bash
for i in {1..50}
do
mkdir /home/ds/data_test/dir$i
done
【需求】打印1到10
#!/bin/bash
for i in {1..10}
do
echo $i
done
【需求】求1到10的和
#!/bin/bash
for((i=1;i<=10;i++))
do
SUM=$((SUM+i))
done
echo $SUM
课后练习:
使用shell中的for循环来实现99乘法表
8、while循环
【需求】求1到10的和
#!/bin/bash
i=1
while [ $i -le 10 ]
do
SUM=$((SUM+i))
i=$[i+1]
done
echo $SUM
【需求】读取文件内容
#!/bin/bash
while read -r line
do
echo $line
done < /etc/passwd

#!/bin/bash
if [ 2 -eq 2 ];then
echo YES
fi

#!/bin/bash
if [ -d /home/ds/888 ];then
ls /home/ds/888
else
mkdir /home/ds/888
fi

#!/bin/bash
case $1 in
top)
top
;;
free)
free
;;
df)
df
;;
*)
echo "usgae:$0{top|free|df}"
esac


Linux中的定时任务
1、date
显示当前系统的时间
# date -s "2017-04-16 17:03:30"
# date "+%Y%m%d"
七天前
# date -d '7 day ago' '+%Y%m%d%H%M'
crontab -e  编辑一个定时任务
crontab -l  列出所有定时任务
crontab -r  删除所有定时任务
-》检查服务是否开启
# service crond status
# service crond start
# service crond stop
# service crond restart
-》执行身份管理员
-》注意:凡事只要涉及到服务相关的,都会有开机设置项
开启# chkconfig crond on
关闭# chkconfig crond off
-》执行身份管理员
【假设场景】


* * * * * *
命令
0 2 * * 3 cp /etc/passwd /tmp
每周三的凌晨两点
5 1 10,25 * * *****
每个月10号和25号凌晨1点5分
*/10 * * * * *****
每10分钟执行一次
0 1-6 * * * *****
每天凌晨1点到6点
5 * * * * *****
每小时的第5分钟执行一次
30 7 8 * *
每月8号的7:30分执行
30 5 8 6 *
每年的6月8号5:30分执行
25 8-11 * * *
每天8到11点的第25分钟执行


【示例】
每分钟执行一次将结果写到一个文件中
*/1 * * * * date >> /home/ds/time.log
制定完成建议重启服务
# service crond restart

tail -f /home/ds/time.log 实时查看



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值