命令
https://blog.youkuaiyun.com/xiaoxiaoniaoQ/article/details/80693011
语法
-
ls (查看当前文件夹下的内容 )
- -a 隐藏文件
- -R 可以看到内部的文件夹
- -F 可以看出文件的类型。以 / 结尾的是文件夹,已 * 结尾的是可执行文件
- -l 一个文件信息就是一行。(d开头为文件夹,-开头为文件,)(文件权限)(硬链接数)(文件所属用户名)(所属的组) (文件大小) 上次修改时间)(名字)
- 后面加 字符 可以过滤显示
ls -l aa.text (只显示这个文件) ls -l aa* (* 代表0个或多个字符) ls -l aa? (? 代表一个字符) ls -l a[a-z]a (匹配a-z)
-
touch (用于创建文件)
-
cp (复制文件)
- -i 交互体验,会有提示
-
rm (删除文件)
- -i 交互
- -f 强制删除
- -r 递归删除
-
mkdir (创建文件夹)
- -p 递归创建
-
rmdir (删除文件夹,只能删除文件夹)
- -i 交互式
-
file (可以判断文件的类型)
-
cat (查看文件的内容)
- -n 出现行号
- -b 只给有代码的行加号
- -T 替换tab符号,用^T代替
-
more (查看文件分页)
-
tail (查看最后的几行)
- -n 10 显示最后10行
-
-f 可以动态显示
-
head (从头开始显示,和tail相反)
-
ps (关于进程的命令)
-
-e 显示所有进程
-
-完整格式输出
-
ps -aux
-
kill -9 进程id
-
df 可以查看磁盘使用情况
- -h 单位换成常用的
-
grep (搜索文件)
grep 内容 文件
* -v 反向搜索。(不匹配的)
* -n 可以显示出行号
* -c 可以知道有多少行呗匹配了
* -e 多个匹配
grep -e f -e g 文件名
- tar (将几个文件打成一个)
- -c 切换到指定文件
- -f 输出结果到文件
- -v 保留所有文件权限
tar -cvf test.tar test1 test2 (将test1 test2打包) tar -xf test.tar -c 文件夹 (将文件接档于文件夹) gzip -r test.tar (压缩) gzip -d new.tar (解压) tar -zcvf test.tar.gz test1 test2 (文件直接压缩) tar -zxvf new.tar.gz -c 文件夹 (解压)
环境变量
shell 中环境变量和编程语言一样,有全局和局部局部可以访问全局的环境变量,但是全局不能使用局部的环境变量,如果局部改变的全局的变量,只是在局部改变了这个值,在别地方使用这个全局变量还是原来的值
一般全局变量都是大写,局部小写
- 查看全局变量(只是显示个别的全局变量用printenv)
- printenv
- env
- set (全局变量,局部都会出来)
- 设置全局变量
- export 变量名
- 删除变量
- unset 变量名
linux的安全性
linux 的用户都在/etc/password 里面 密码另外存在/etc/shadow里面,都是加密过的密码
- useradd 添加用户
- -D 会显示新用户的一些基本信息比如在哪个分组等
- -m 创建home目录
- -p 设置密码
- -n 创建和用户名一样的组名
- userdel 删除用户
- -r 删除用户家目录,一般默认删除的只是/etc/password 下面的账户
- 修改用户
- usermod 修改用户字段,还可以指定组和关系
- -G 添加组关系 usermod -G 组名 用户名
- -g 也是用来添加组关系,但是会改变组关系
- passwd 修改密码
- chpasswd 读取密码是并更新密码
- chage 修改过期日期
- chsh 修改用户默认shell
- usermod 修改用户字段,还可以指定组和关系
- 关于组
- groupadd 添加组
- 关于权限
- chmod 777 文件名 (rwx—111)所以权限最大为7
- chown 改变文件的创始人 chown 用户 文件
- chgrp 改变文件的默认组 chgrp 组名 文件
vim编辑
-
插入
- i (就可以进入编辑模式)
- h (左移一个字符)
- j (下移一行)
- k (上移一行)
- l (右移一行)
- pagedown (或者cril+F)下翻一屏
- pageup (cril+B) 上翻一屏
- !q: 放弃修改退出
- q: 直接退出
- wq: 保存退出
-
编辑
- x 删除当前光标
- dd 删除当前光标所在行
- u 撤销前已命零
- a 当前光标后追加数据
- A 当前行尾追加数据
-
复制粘贴
- 剪贴命令可以和删除一起用,使用 p 就可以复制出删除的数据
- 复制 yw复制一个单词,y$ 复制到行尾 然后在想要放的位置使用p
-
查找和替换
- 按下/ 就会出现消息行,然后输入东西回车就可,查找下一个,用n
shell 语法
shell中的变量如果使用用$引用,如果修改就不用$
- 想要用使用命令执行的结果
#第一种 data=`linux命令` (使用``包裹) #第二种 data=$(linux命令) (用括号包裹) 如果是data命令 (data +y%m%d%) 可以将时间格式化
- 输出定向
ll > test.txt (将ll的结果输入到test.txt文件中) ll >> test.txt (将结果追加到后面)
- 输入重定向
wc < test.txt (统计test.txt 里面的字符行数等信息)
shell中的数学运算
数学运算需要用expr去得到结果
常见操作符
- A | B A不是null也不是0,返回A 否则返回B
- A &B 都不是0或者null,返回A ,否则返回0
- A < B 成立返回1,反之0
- A <=B 成立1,反之0
- 加减乘除
- length A 返回A的长度
-
- A 将A 变为字符串,及时他是关键字
- STRING: REGREP 正则匹配到了字符串
- match STRING REGREP 和上面一样
- index STRING CHAR 从1开始返回char的位置
- \ 转移字符
- 改善
- 使用[] 改善 运算
a=1
b=1
c=$[$a+$b]
- 注意,除法只支持整除的
- 解决整除限制
*