Linux常用命令与权限简析
1.文件权限处理( ll 命令可查看当前文件的具有的权限)
进入文件后执行 cd / 命令;可查看主目录列表文件,执行 ll 命令可查看各顶级目录相关权限信息
drwxr-xr-x. 2 root root 12288 Dec 21 11:49 bin
所属组 所属用户 文件大小 文件最后更改时间 文件名称
drwxr-xr-x:(d表示文件夹,后面三个一组表示权限):
d:表示 bin为 文件夹
rwx:表示 具有读写执行即 111(二进制数)--->7(十进制数) :第一部分 代表 文件所属者 具有的权限
r-x:表示 具有读 不能写 执行权限 101---->5 :第二部分 代表 用户组的权限
r-x:表示 具有读 不能写 执行权限 101---->5 :第三部分 代表其他用户的权限
所以drwxr-xr-x 该组权限可以用 755表示
如果需要将一个文件设置为 drwxr-xr-x 即可使用chmod 755 filename (只设置这一个文件) chmod -R 755 filename(该filename文件夹及其子目录文件 都会被设置为 rwxr-xr-x )
1.1读写执行权限的简单理解
用户进入文件夹:需要有 执行的权限(如果没有执行的权限也不能使用 clear命令;当然一个可执行文件如果用户没有执行权限也不能执行)
进入文件夹后查看文件夹下的数据:需要读取的权限(进入文件夹后没有读取权限,看不到文件夹下的内容及子目录等,ls命令不能使用)
进入文件夹后删除文件创建文件:需要 写入的权限(没有写的权限不能实现删除创建的操作)
2.用户添加删除基本操作
以 jiang 表示用户名 group1 表示组名
useradd jiang //添加一个叫jiang的新用户
whoami //查看当前用户
passwd jiang //回车后直接给jiang这个用户设置秘密
//(输出完密码回车后需要再确认输入一次,提示密码太简单不影响密码的设置)
userdel jiang //删除用户(/home/目录下的jiang文件夹不会被删除)
userdel -r jiang //连同用户的主目录也会一起删除
vim /etc/passwd //添加用户或者用户组后会在passwd文件记录
//例如:jiang:x:500:500::/home/jiang:/bin/bash
//但是用户实际的密码保存在 vim /etc/shadown
//例如:jiang:$6$6SXYEHrT$r9e0.sRLSwhOItaWlLr5DnX1RIyfLLM70UpxzB59UuBNut7o8zWRnEzw2PD6aEuQjb9aFe5yDGK61GupFN6TQ/:17521:0:99999:7:::¥
//密码有三部分组成$id$salt$encrypted 根据id选择相应的加密方式(md5、SHA256、SHA512...) salt:定长(8)随机字符串 encrypted经过salt影响的实际加密密码
3. groupadd group1 //添加用户组
groupdel group1 //删除用户组
useradd test1 -g tests // 添加用户test1,并使属于tests组
grep gid /etc/group //【gid(每个组有唯一gid)】查看某个group下的所有用户
usermod -G group1 jiang : //把jiang这个用户添加到group1组,但是会将该用户从其他用户组删除
//注意usermod -g groupname username是把username的主组变成groupname,而usermod -G groupname username只是把用户加到groupname组,并没有改变主组
groups //查看当前用户所属的group
4. 查看日志
tail -n 10 test.log //查询日志尾部最后10行的日志;
tail -n +10 test.log // 查询10行之后的所有日志;
head -n 10 test.log //查询日志文件中的头10行日志;
head -n -10 test.log // 查询日志文件除了最后10行的其他所有日志;
cat -n test.log |grep "error" //可以查询到 error 在该文件中的行号(有几处就能查询到几个行号)
cat -n test.log |tail -n +92|head -n 20
tail -n +92表示查询92行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
关于日期打印,可以先 grep '2014-12-17 16:17:20' test.log :该命令语句表示:在test.log文件中查找 2014-12-17 16:17:20
(1)使用more和less命令, 如: cat -n test.log |grep "地形" |more 这样就分页打印了,通过点击空格键翻页
(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:
cat -n test.log |grep "地形" >xxx.txt
linux 如何显示一个文件的某几行(中间几行)
从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000
显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000
*注意两种方法的顺序
分解:
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行
用sed命令
sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。
例:cat mylog.log | tail -n 1000 #输出mylog.log 文件最后一千行
------------------------------------------
5.cat主要有三大功能:
1.一次显示整个文件。$ cat filename
2.从键盘创建一个文件。$ cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: $cat file1 file2 > file
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
例:
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3
把test.txt文件扔进垃圾箱,赋空值test.txt
cat /dev/null > /etc/test.txt
注意:>意思是创建,>>是追加。千万不要弄混了。
------------------------------------------
tac (反向列示)
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,
而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
------------------------------------------
在Linux中echo命令用来在标准输出上显示一段字符,比如:
echo "the echo command test!"
这个就会输出“the echo command test!”这一行文字
echo "the echo command test!">a.sh
这个就会在a.sh文件中输出“the echo command test!”这一行文字!
该命令的一般格式为: echo [ -n ] 字符串其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。
用echo命令输出加引号的字符串时,将字符串原样输出;
用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。