【Linux】常用命令 之 目录&文件

目录操作

1. 查看

ll:查看当前目录下的内容
ll  -a:查看当前目录下的内容,包括隐藏
ll -h:查看当前目录内容,并显示对应文件的大小
cd/cd  ~:切换到当前用户目录下
alias ll='ls -l':alias 重命名命令,然后将次命令加入到

2. 创建

mkdir  aaa:创建aaa文件夹
mkdir  -p  aaa/bbb:递归创建目录

3. 删除

rm  -rf  *:强制删除当前目录下所有内容

4. 修改目录或文件权限

0:没有权限,1:执行或切换权限,2:写入权限,4:读权限
u:拥有者,g:所在组,o:其他组
r:可读权限,w:可写权限,x:可执行权限
r:  对文件来说,是可读取内容;  对文件夹来说,是可以ls
w:  对文件来说,是可修改文件的内容;对文件夹来说,是可以在其中创建或者删除子节点
x: 对文件来说,是能否运行这个文件;对文件夹来说,是能否cd进入这个目录
chmod  -R  777  aaa/:修改aaa文件夹及其里面所有的文件的权限为可读可写可执行
chmod  u=rwx,g=rx,o=rx  a.java:分别对  u,g,o  附加权限
chmod u+rwx,g+rx,o-r a.java:分别对  u,g,o  加权限或者减权限
chmod  +r/-w  a.java:对a.java的  u,g,o  都设置  加读权限/减写权限
chmod  000  a.java:取消a.java的所有权限
chown  root:root  a.sh:只能root使用chown命令,修改文件的拥有者

文件操作

1. 创建&修改

touch  a.txt/vim  a.txt:创建a.txt
echo "hello word" >  a.txt:将字符串覆盖到a.txt
echo "hello word" >>  a.txt:将字符串追加到a.txt
mv  test.sql  /tmp:将test.sql移动到/tmp目录下
mv  a.txt  b.txt:将a.txt改名为b.txt

2. 查看文件

cat  a.txt:查看文件内容
more  a.txt:分页查看,下一页-空格,上一页-b,退出-q
less a.txt:分页查看,下一页:空格,上一页:b,退出:q,上一行:↑,下一行:↓,              搜索关键字:/keyword,跳至末尾:G,跳至首行:gg
head  -10  /etc/profile:查看profile文件的头10行
grep  "java"  a.txt  b.txt:查找java在a.txt和b.txt出现的行,并输出,可以不加""
grep  "java"  ./*.txt:在当前目录下所有以".txt"结尾的文件中,查找"java"出现的行,并输出
grep  '^java'  ./*.txt:在当前目录下所有以".txt"结尾的文件中,查找以"java"开头出现的行,并输出
grep  'java$'  ./*.txt:在当前目录下所有以".txt"结尾的文件中,查找以"java"结尾出现的行,并输出
grep  -v  "java"  a.txt  b.txt:查找不匹配java在a.txt和b.txt出现的行,并输出,可以不加""
grep  -c  "java"  a.txt  b.txt:计算"java"在a.txt和b.txt出现的次数,可以不加""
grep  -n  "java"  a.txt  b.txt:查找"java"在a.txt和b.txt出现的行号,可以不加""
grep  -rn  "java"  ./  :递归查找当前文件夹下出现"java"出现的行和行号,并输出,可以不加""
命令  |  grep  关键字:从命令中搜索关于关键字的信息

3. 查找文件

find  /  -name  "java*":从根目录下查找java开头的文件,"*.txt":查找以txt结尾的文件
find  /  -name  "java*"  -ls:从根目录下查找java开头的文件,并列出详情信息
find  .  -type  f  -name  "*.txt"  --delete:删除当前目录下以".txt"结尾的文件
find  /  -type  f  -size  +1G:从根目录下查找大于1g的文件,"-1G/1G":小于1g/等于1g
find  .  -type f  atime -7/mtime -7/ctime -7:搜索当前目录下7天内 被访问/被修改/变化 过的文件
find  ./  -user hadoop -type  f/d  -ls:查找当前目录下,用户为hadoop的 文件/文件夹
find / -perm -777 -type  f/d  -ls:查找当前目录下,权限为777的 文件/文件夹

4. 动态查看

tail  -f  catalina.out:动态查看日志,小f:追踪文件inode号
tail  -F  catalina.out:动态查看日志,大F:追踪文件名
tail -f -n 10 catalina.out:动态查看日志的最后10行

5. 复制文件

cp  ./a.txt  /tmp:将当前目录下的a.txt复制到/tmp
cp ifcfg-lo ./ifcfg-eth0:拷贝文件并重命名
cp  -r  /usr/local  /tmp:将/usr/local下的内容复制到/tmp下,复制文件夹用“-r”
scp  id_rsa.pub  root@101.200.203.56:/root/.ssh:将本地id_rsa.pub远程复制到/root/.ssh下
scp  -r  redis-3.0.0  root@101.200.203.56:/usr/local/:复制文件夹用“-r”
scp  root@101.200.203.56:/tmp/a.txt  /Users/anson/Downloads/:将a.txt远程复制到本地
scp  -r  root@101.200.203.56:/tmp  /Users/anson/Downloads/:复制文件夹用“-r”

6. 压缩

jar:jar -cvfM0 xxx.jar ./     把当前目录下所有文件打包成xxx.jar
war:jar -xvf xxx.war /yyy    把yyy文件夹下的文件打包成xxx.war
zip:zip -r xxx.zip ./*    把当前目录下的文件打成xxx.zip
gz:gzip xxx   把文件压缩成xxx.gz

7. 解压

jar:jar -xvf xxx.jar
war:jar -xvf xxx.war  -C  指定的目录
zip:unzip xxx.zip
tar.gz:tar -zxvf xxx.tar.gz
gz:gunzip xxx.gz / gzip -d xxx.gz

8. 打包&压缩&解压

打包:tar  -cvf  test.tar  1.txt 2.txt:把1.txt 2.txt打包到test.tar中
追加:tar  -rvf  test.tar  3.txt:把3.txt追加到test.tar中
解包:tar  -xvf  test.tar
打包并压缩:tar  -zcvf  test.tar.gz  aaa/  将aaa目录下打包并压缩
解包并解压缩:tar  -zxvf  test.tar.gz
指定目录:tar  -zxvf  test.tar.gz  -C  /usr/local
查看jar包内容:jar  vtf  beebee-eureka-server.jar

9. Windows复制文件到Linux

https://my.oschina.net/u/1590519/blog/342577
安装pscp.exe
pscp 本地文件 root@远程ip:/root

10. Linux或Mac 复制文件到 Win(前提让Win知识ssh协议)

http://blog.csdn.net/jyf0412/article/details/36866041
netstat -ano | findstr 22:查看Windows的22端口有没有开放

11. 高级文本处理命令

1. cut
echo $PATH | cut -d ':' -f 2:取path变量的第2个值
echo $PATH | cut -d ':' -f 2,5:取path变量的第2个值和第5个值
echo $PATH | cut -d ':' -f 5-:取path变量的第5个值到最后一个的值
echo $PATH | cut -d ':' -f 1-3:取path变量的第1个值到第3个值
echo $PATH | cut -d ':' -f 1-3,5:取path变量的第1个值到第3个值和第5个值
cat /etc/passwd | cut -d ':' -f 1,7:只显示/etc/passwd的用户和shell
2. sed
sed '2d' test.txt:删除test.txt文件的第二行。
sed '2,$d' test.txt:删除test.txt文件的第二行到末尾所有行。
sed '$d' test.txt:删除test.txt文件的最后一行。
sed '/test/' d test.txt:删除test.txt文件所有包含test的行。
sed '2d' test.txt > test.txt:删除test.txt文件的第二行,因为没有保存到文件中,所有要">"重定向,进行保存
sed 's/test/mytest/g' test.txt:把所有的test替换为mytest。如果没有g标记,则只替换每行的第一个test
sed -n 's/^test/mytest/p' test.txt:(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。
sed 's/^192.168.0.1/&localhost/' test.txt:&符号表示追加一个串到找到的串后。所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。
3. awk
cat /etc/passwd | awk -F ':' '{print $1}':默认以空格作为分隔符,需要加"-F"指定,打印/etc/passwd的第一列 
cat /etc/passwd | awk -F ':' '{print $1"\t"$7}':打印/etc/passwd的第一列和第7列,并以tab键分隔
cat /etc/passwd | awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "ccc,/aaa/bbb"}':name和shell为表头,打印第一列和第七列,最后随便追加一行	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值