初学Linux (Linux_note)
根目录:/
/root: 存放root用户相关文件
/home: 存放不同用户的相关文件
/bin: 存放常用命令的目录
/sbin: 要具有一定权限才可以使用的命令
/mnt: 默认挂载光驱和软驱的目录
/etc: 存放配置相关文件
/var: 存放经常变化的文件
/boot: 存放引导相关的文件
换源
software-properties-gtk
查看各个分区挂载容量,那么输入:【df -h】,那么此时即可查看了的
显示当前在哪个目录下: pwd
7个运行级别
0:关机
1:单用户(找回丢失密码)
2:多用户无网络服务
3:多用户有网络服务
4:保留
5:图形界面
6:重启
(系统运行级别的配置文件/etc/inittab)
修改/etc/inittab文件中的
id:3:initdefault , 将3改为5 ,重新启动系统;
命令init[012345]
init 3 多用户有网络服务
init 5 图形化
init 0 关机
忘记密码修改操作:
开机——> 在引导是输入 回车Enter ——> 看到一个界面输入 e ——> 看到一个新界面 选中第二行(编辑内核)再输入e ——> 在这行最后输入 1(空格 1)在输入回车 -> 再次输入b进入到单用户模式 passwd root 修改root密码
添加用户:
useradd Diyo
useradd -d /home/'目录' diyo 创建用户diyo指定目录
useradd -g 组名 用户名
设密码:
passwd Diyo
userdel 删除用户
userdel -r 删除用户及其家目录
usermod -g 组名 用户名 改变用户的用户组
usermod -d 目录名 用户名 改变该用户登录的初始目录
查看用户信息
id 用户
组管理和权限管理
组的创建
groupadd policeman
groupdel
修改文件所在组
chgrp
chgrp 组名 文件名
chgrp -R 组名 文件夹 修改目录下的所有文件和目录所有组
修改用户所在组
usermod -g 组名 用户名 改变用户的用户组
usermod -d 目录名 用户名 改变该用户登录的初始目录
权限管理:(-:普通文件,d:目录,l:软链接,c:字符设备【键盘,鼠标】,b:块文件,硬盘)
权限分为三种:r可读 用4表示,w可写 用2表示,x可执行 用1表示
-rw-r--r--. 1 Diyo works 10 7月 2 00:32 mytest1.java
- 文件类型
rw- 文件所有者Diyo对该文件的权限
r-- 文件所在组works对该文件的权限
r-- 其它组的用户对该文件的权限
修改权限chmod
方式一:+、-、=变更权限
u:拥有者 g:拥有组 o:其他组 a:所有人
chmod u=rwx,g=rx,o=rx 文件
chmod u-r
chmod g+w
chmod a=rwx
方式二:r=4 w=2 x=1 - 数字变更
chmod 755 文件
修改文件所有者:
chown
chown 用户名 文件名
查看所有组信息 cat /etc/group
查看所有用户信息 cat /etc/passwd
口令配置文件(密码) cat /etc/shadow
whoami
用户退出登录的方法有以下三种:
1、在shell提示符下输入 exit 按回车确认
2、在shell提示符下输入 logout 按回车确认
3、按快捷键crtl+d (此方法同logout效果)
vim编写C、C++程序过程(以hello world为例):
1、vim hello.c/hello.cpp。
创建hello.c/hello.cpp文件,并进入vim界面;
2、键入i,进入输入模式。
3、编写hello.c/hello.cpp程序。
4、先按Esc键,退出输入模式;然后,按Shift+:键,进入命令模式。输入wq,保存并退出。
5、编译hello.c/hello.cpp。
5.1、对于C程序:用gcc hello.c便可编译;
5.2、对于C++程序:用g++ hello.cpp可编译。编译后,均生成a.out的可执行文件;
6、键入指令"./a.out",运行程序。
7、在Terminal上显示"hello world"即成功。
pwd 显示当前工作目录
cd 改变目录
ls 列出文件和目录
ls -a 显示隐藏文件
ls -l 显示长列表格式
ls -al
ls -lh 按人查看
mkdir 建立目录
mkdir -p test/t11/t1 递归创建目录
rmdir 删除空目录
rmdir -p 递归删除
touch 建立空文件
cp 复制命令
\cp 强制复制
cp -r dir1 dir2 递归复制命令(复制子目录信息)
mv 移动文件和改动文件文件名
rm 删除文件和目录
rm -rf * 删除文件所有内容(包括目录和文件)r递归 f强制
ln 建立符号连接
ln -s 源 目录
ln -s /etc/inittab inittab (inittab指向实际文件/etc/inittab)
cat -n显示行数
more 显示文件内容,带分页
less 显示文件内容带分页(看大文件建议)
ctrl+f
ctrl+b
=
空格space:向下翻一页
回车Enter:
重定向命令:
> 输出重定向 覆盖
>> 追加
ls -l > a.txt 列表的内容写入文件a.txt中(覆盖写)
ls -al >> a.txt 列表的内容追加到文件a.txt的末尾
从文件中输入信息database_program < database_data
cat 文件1 > 文件2
echo "内容" >> 文件
echo 输出内容到控制台
echo $PATH 输出变量
echo "hello" 输出文本
head 指令 显示文件的前面部分(默认显示前十行)
head -n 5 查看前5行
tail 指令 显示文件的后面部分(默认显示后十行)
tail -n 5 查看后5行
tail -f 实时追踪文档的所有更新,工作经常使用
history 显示多有历史指令
history 10 显示最近10个指令
!数字 执行第多少指令
date 日期类指令
date 显示当前时间
date "+%Y-%m-%d"
date "+%Y年%m月%d日"
date "+%Y年%m月%d日 %H:%M:%S"
date -s 设置时间
date -s "2019-07-10 18:34:56"
cal 日历指令
cal 显示当前日历
cal 2019 显示一整年日历
搜索查找类:
find:查找文件
find /home -name 文件名 搜索范围/home 按文件名-name 文件名 查找文件
find /opt -user 文件名 按文件的拥有者查找
find / -size +20M 查找目录下大于20M的文件
find / -size -20k 查找目录下小于20K的文件
find / -size 20M 查找目录下等于20M的文件
find / -name *.txt 按文件名通配符查找
locate:快速定位文件路径
locate 搜索文件
locate 特别说明:第一次运行前必须使用updatedb指令创建locate数据库
updatedb 创建locate数据库
grep指令和 管道符号|
grep 匹配(查找)字符串
在文本中查询内容(-n显示行数) grep -n "abc" aaa.txt 在aaa.txt中查询abc
grep -n 显示行号
grep -i 忽略大小写
| 管道命令:表示将前一个命令的处理结果传递给后面的命令处理
压缩和解压缩
gzip/gunzip gzip用于压缩/gunzip用于解压缩
gzip 文件 (压缩文件,只能将文件压缩为*.gz文件)(压缩后原来文件不保留)
gunzip 文件.gz 文件进行解压缩
zip/unzip zip用于压缩/unzip用于解压的,在项目打包发布中很有用
zip 可以是文件和文件夹
zip -r a.zip /home 递归压缩/home成a.zip
unzip
unzip -d 解压后存放的目录
tar 打包指令 最后打包的文件是 .tar.gz的文件
-c 产生.tar文件
-x 解压.tar文件
-z 打包同时压缩
-v 显示详细信息
-f 指定压缩后的文件名
tar -zcvf 压缩(打包)a.tar.gz tar -zcvf a.tar.gz a.txt
tar -zcvf a.tar.gz /home/
tar -zxvf 解压到当前目录 tar -zxvf a.tar.gz
解压到指定目录 tar -zxvf a.tar.gz -C /home
man命令相当于dos下的help
man grep 查询grep命令帮助
Linux 磁盘分区、挂载
crond任务调度
crontab定时任务调度
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
service crond restart 重启任务调度
crontab 可以用来定时调度 某个程序或者某个脚本
---------crontab-----------------crontab---------------crontab----------
crontab默认情况下是不执行开启日子的,所以一开始写完后,不能执行,想查看日志,却找不到。所以先开启定时任务的日志来查看
修改rsyslog服务,将 /etc/rsyslog.d/50-default.conf 文件中的 #cron.* 前的 # 删掉;用以下命令重启rsyslog服务:
service rsyslog restart;
然后再重启crontab服务:
service cron restart;
网上很多人说开启,停止或者重启contab服务用命令 service crond restart,执行这个命令会报出 unrecognised service ,这里吧 crond 改成 cron 就可以了。
之后,在这个位置 /var/log/cron.log 就可以查看定时任务的文件日志文件了;
下面这个命令还可以查看crontab的状态
service cron status;
1 编写脚本 放入家目录
vi pi.sh
内容为
#!/bin/bash
. /home/briup/.bashrc
. /etc/profile
JAR_FILE="/Users/zhaojing/Documents/hadoop-3.0.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar"
echo "starting......"
date
yarn jar $JAR_FILE pi 10 1000
echo "==============================="
------------------------
#!/bin/bash
HADOOP_USER_NAME=hj_dengzhiyong
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/briup/software/jdk/bin:/home/briup/software/hadoop/bin/:/home/briup/software/hadoop/sbin
JAR_FILE="/home/briup/software/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar"
echo "starting......"
date
yarn jar $JAR_FILE pi 10 1000
echo "==============================="
解释:行6 shell脚本必须写的内容
行7 行8 crontab任务中不会引用环境变量故有些命令会失效,此处意思为引入环境变量
行9 定义变量JAR_FILE内容为某个jar包,例如 pi的jar包
行10 运行时输出start....
行11 输出时间
行12 提交pi任务 因为默认情况下cron 输出结果会通过邮件方式发送 我们没有邮件系统故结果直接重定向到某个文件中
2 脚本编写好后新建crontab任务(命令)
crontab -e
输入命令后进入 vi 编辑器 意为部署某个任务
该编辑器中每行内容结构如下 代表在某年某月某日某分执行某个命令
* * * * * command path (~/.bashrc)
*/1 * * * * /bin/bash /home/briup/pi.sh >> /home/briup/log.txt
写完后保存退出
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置
解释:
字段名称 说明 取值范围
分钟 每小时的第几分钟执行 0-59
小时 每日的第几个小时执行 0-23
日期 每月的第几天执行 1-31
月历 每年的第几月执行 1-12
星期 每周的第几天执行 0-6
命令名称 欲执行的命令及参数
符号 说明
* 表示任何时刻
, 表示分割
- 表示一个段,如第二段里: 1-5,就表示1到5点
/n 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.
以下是常用的一些时间间隔写法
15 05 * * * 每天的05:15 执行
0 17 * * 1 每周一的 17:00 执行
0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行
0 21 * * 1-6 周一到周六 21:00 执行
*/10 * * * * 每隔10分 执行
* 1 * * * 从1:0到1:59 每隔1分钟 执行
0 */1 * * * 毎时0分 每隔1小时 执行
2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02 执行
3 查看服务状态
service cron status
-------------------crontab-end----------------------------
初学Linux (Linux_note)的更多相关文章
- linux初学 :linux 常用命令(二)
压缩和解压命令 gzip/guzip zip/unzip tar gzip和gunzip一般可用参数是-r,例: gzip test.txt 压缩文件 gzip -r test 压缩所有tes ...
- 初学Linux
一直觉得Linux敲命令很蛋疼,今天开始学习一下吧,主要以练习(想到啥就查啥)命令和练习在Linux中编程(Python)为主吧. 不记得什么时候安装的Ubuntu 12.04.3 LTS虚拟机,连密 ...
- linux初学 :linux 常用命令(一)
首先,是关机/重启命令,仅在虚拟机时使用,实际工作中用不到 reboot 一般不跟参数使用,输入指令即可重启 shutdown 一般需要跟参数,例: shutdown -r 延时多少分钟重启,一般使用 ...
- 初学linux命令
linux系统的精髓在于它的命令行 早就听说要学习linux系统,就要学习它的命令行(Command Line Interface).说来惭愧,已经使用了linuxmint快两个月了,虽然能够使用一些 ...
- 初学Linux要掌握的命令
echo:打印,或者直接输出指定的字符串 语法:echo (选项) (参数) 选项:/a: 发出警告声 /b: 删除前一个字符 /c: 最后不加上换行符号 /f: 换行但光标仍旧停留在原来的位置 /n ...
- 初学Linux系统最应该做对的4件事情[长文]
“闲来无事,逛逛贴吧”已经是本人无事消磨时间的最佳选择了.五花八门的问题,各式各样的回答,总能给自己带来无限的欢乐.当然也有些问题值得自己去思考或者回答.之前就有人在贴吧里问到“Linux好难啊!该怎 ...
- 初学LINUX版本的选择
1.用于企业环境:建议使用商业版本,例如Red Hat的RHEL或者是Novell的SuSE都是很不错的选择!毕竟企业的环境强调的是永续的经营,你可不希望网管人员走了之后整个机房的主机都没有人管理吧! ...
- 初学Linux应该注意的事项
相比于windows linux严格区分大小写 linux所有内容都是以文件形式保存 linux不靠扩展名区分文件类型(靠权限),linux下文件扩展名主要是方便管理员分类 linux所有的存储设备都 ...
- linu学习记录--初学linux中的几个基本命令以及比较关键的man指令
import chardet chardet.detect() #传入参数可以输出查看参数的对应编码 首先是用decode将对象编码转换成unicode,然后用encode将对象编码转换成输出所需,u ...
随机推荐
- java图片压缩工具类(指定压缩大小)
1:先导入依赖 <!--thumbnailator图片处理--> <dependency> <groupId>net.coobird</groupId> ...
- Django学习路2
1.导入 Django 工程时 在 manage.py 上一级目录导入 2.Add local 本地 Add Remote 远端 3.BASE_DIR 项目所在目录的绝对路径 4.SECRET_KEY ...
- 7.12 NOI模拟赛 生成树 装压dp vector装压
LINK:生成树 这场比赛我打的真失败 T3是比较容易的 却一直刚 那道"数论" 10分其实搜一下全排列. 30分容易想到对边进行装压dp. 不过存在一些细节 可以对于一个连通块的 ...
- [转] Java Agent使用详解
以下文章来源于古时的风筝 ,作者古时的风筝 我们平时写 Java Agent 的机会确实不多,也可以说几乎用不着.但其实我们一直在用它,而且接触的机会非常多.下面这些技术都使用了 Java Agent ...
- Java中15种锁的介绍
作者:搜云库技术团队 原文:https://segmentfault.com/a/1190000017766364 1. Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观 ...
- .Net Core 3.0依赖注入替换 Autofac
今天早上,喜庆的更新VS2019,终于3.0正式版了呀~ 有小伙伴问了一句Autofac怎么接入,因为Startup.ConfigureServices不能再把返回值改成IServiceProvide ...
- swift 5.0 创建button方法
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any ...
- slots属性(省内存,限制属性的定义)
class Foo: __slots__=['name','age'] #{'name':None,'age':None} # __slots__='name' #{'name':None,'age' ...
- 新浪、腾讯、淘宝为何如此重视Web前端?前端入门容易吗?
为什么新浪.搜狐.网易.腾讯.淘宝等在内的各种规模的IT企业,都对web前端越来越重视了呢?小编为您揭晓答案! web前端的由来 以前会Photoshop和Dreamweaver就可以制作网页.随着时 ...
- Python编程的10个经典错误及解决办法
接触了很多Python爱好者,有初学者,亦有转行人.不论大家学习Python的目的是什么,总之,学习Python前期写出来的代码不报错就是极好的.下面,严小样儿为大家罗列出Python3十大经典错误及 ...