linux常用命令
1.ls命令
红色:表示hello.sh这个文件的所有者是root
绿色:表示hello.sh这个文件的所属组是root组。
分所有者和所有组是为了分配权限,rwxr-xr-x,中rwx的权限分配给所有者,即hello.sh这个文件,所有者root有读r,写w,执行x的权限,所属组root的权限是r-x,拥有读和执行的权限,不能写,r-x是分配给其他人,也只有读和执行的权限,也不能写。
ls -h:将文件的大小从字节变成m
root@ubuntu:/home/yanyanzhang/shell_study/sh# ll -h total 12K drwxr-xr-x 2 root root 4.0K May 3 15:57 ./ drwxr-xr-x 3 root root 4.0K May 3 16:46 ../ -rwxr-xr-x 1 root root 33 May 3 15:57 hello.sh*
ls-d:显示目录的信息
root@ubuntu:/home/yanyanzhang/shell_study/sh# ll -d /home/ drwxr-xr-x 9 root root 4096 Feb 4 17:26 /home//
ls -l:显示长信息 == ll
2.cd命令
cd - : 显示上次所在目录
root@ubuntu:/home/yanyanzhang/shell_study# cd - /home/yanyanzhang/shell_study/sh
3.mkdir命令
mkdir -p:递归创建
root@ubuntu:/home/yanyanzhang# mkdir -p 11/22 root@ubuntu:/home/yanyanzhang/11/22# pwd /home/yanyanzhang/11/22
4.rm命令
rm -rf 强制删除递归文件,删除就没有了
extundelete插件,可以帮助恢复误删的数据。
5.touch命令
创建新文件及修改文件时间
6. stat命令
查看文件的信息,修改时间,还是比较有用
root@ubuntu:/home/yanyanzhang/shell_study# stat count.sh File: 'count.sh' Size: 101 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 565777 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2021-05-03 16:20:40.323253971 +0800 # 访问时间 Modify: 2021-05-03 16:20:24.262662082 +0800 # 数据修改时间 Change: 2021-05-03 16:20:33.643002162 +0800 # 状态修改时间,例如改权限 Birth: -
7.cat命令
查看文件内容
root@ubuntu:/home/yanyanzhang/shell_study# cat count.sh #! /bin/bash # args1 a=$1 # args2 b=$2 # must use double () for int plus int sum=$((a+b)) echo $sum
-n 显示行号输出,常用
root@ubuntu:/home/yanyanzhang/shell_study# cat -n count.sh 1 #! /bin/bash 2 3 # args1 4 a=$1 5 # args2 6 b=$2 7 # must use double () for int plus int 8 sum=$((a+b)) 9 echo $sum
-A 显示所有的隐藏符号,排错有用
#! /bin/bash$ $ 代表回车 ^table符 # args1$ a=$1$ # args2$ b=$2$ # must use double () for int plus int$ sum=$((a+b))$ echo $sum$
8. more命令
按页显示,空格向下翻页,b向上翻页,q退出,/字符串 搜索: 适合查看大文档内容
9. less命令
按行显示,上下箭头翻行,q退出。
10. head命令
显示文件头,默认10行,head -100 xxx.py 从头显示100行
11.tail命令
显示文件尾,默认10行, tail -100 xxx.py 从尾向上显示100行
-f :监听文件新增的数据,比较适合查看日志信息, 新增内容会在监听中显示,比较常用。
12.ln连接
硬链接:ln 源文件 新文件(不存在) ,新文件一定不要提前创建,硬链接会自动创建的。
root@ubuntu:/home/yanyanzhang/11# ln ../shell_study/count.sh count_ln.sh ln: failed to create hard link 'count_ln.sh': File exists root@ubuntu:/home/yanyanzhang/11# ls 22 count_ln.sh root@ubuntu:/home/yanyanzhang/11# rm -rf count_ln.sh root@ubuntu:/home/yanyanzhang/11# ln ../shell_study/count.sh count_ln.sh root@ubuntu:/home/yanyanzhang/11# ls 22 count_ln.sh
给count.sh写入数据, 连接的新文件信息也增加了,相当于python中的对象多了一个引用而已。删除其中一个,另一个也可以正常使用,只是这个文件的引用数量少了1个而已。
root@ubuntu:/home/yanyanzhang/shell_study# echo "testteste" >> count.sh root@ubuntu:/home/yanyanzhang/shell_study# cat ../11/count_ln.sh #! /bin/bash # args1 a=$1 # args2 b=$2 # must use double () for int plus int sum=$((a+b)) echo $sum testteste
缺点:不能给文件夹建立硬链接。标记不清,很难确认硬链接文件位置。不推荐使用
软连接:ln -s
root@ubuntu:/home/yanyanzhang/11# ln -s ../shell_study/test01.sh test01_sn.sh root@ubuntu:/home/yanyanzhang/11# ls 22 count_ln.sh count.sh test01_sn.sh root@ubuntu:/home/yanyanzhang/11# ll -i ./test01_sn.sh ../shell_study/test01.sh 565779 -rwxr-xr-x 1 root root 65 May 3 16:35 ../shell_study/test01.sh* 557055 lrwxrwxrwx 1 root root 24 May 3 19:35 ./test01_sn.sh -> ../shell_study/test01.sh* # 软连接的标记非常清楚,建议使用软连接 root@ubuntu:/home/yanyanzhang/11#
root@ubuntu:/home/yanyanzhang/11# cat test01_sn.sh
#! /bin/bash
echo "\$* is $*"
echo "\$@ is $@"
echo "\$# is $#"
root@ubuntu:/home/yanyanzhang/11# cat ../shell_study/test01.sh
#! /bin/bash
echo "\$* is $*"
echo "\$@ is $@"
echo "\$# is $#"
给软连接写入文件后,查看源文件,都能共享
root@ubuntu:/home/yanyanzhang/11# echo "xffawfwfwf" >> test01_sn.sh
root@ubuntu:/home/yanyanzhang/11# cat test01_sn.sh
#! /bin/bash
echo "\$* is $*"
echo "\$@ is $@"
echo "\$# is $#"
xffawfwfwf
root@ubuntu:/home/yanyanzhang/11# cat ../shell_study/test01.sh
#! /bin/bash
echo "\$* is $*"
echo "\$@ is $@"
echo "\$# is $#"
xffawfwfwf
特点:删除软连接,源文件不受影响,删除源文件,软连接无法使用。软连接可以连接目录。注意:软连接一定要写绝对路径
# TODO