导图社区 Linux常用命令
下图介绍了文档列出Linux最常用最基础的命令,包含文件和目录、关机、磁盘空间、打包和压缩文件、文本处理、用户和群组等。
编辑于2021-11-28 03:35:24Linux基础
1. 文件和目录
1.1. cd zwd进入zwd目录
1.2. 返回上级目录
1.3. cd ../..返回上一级的上一级
1.4. pwd 显示当前所在的目录
1.5. cd 进入个人的主目录
1.6. cd ~ user 进入个人的主目录
1.7. cd -返回上次所在的目录
1.8. ll 显示文件和目录的详细资料
1.9. ll -a 显示隐藏文件
1.10. ls *[0-9]* 显示包含数字的文件名和目录名
1.11. mkdir SAYEO撒野哦 创建一个叫做 'SAYEO撒野哦' 的目录'
1.12. mkdir sayeo1 sayeo2 同时创建两个目录
1.13. mkdir -p sayeo3/sayeo4 连续创建目录一定要加-p,否则就像绿色圈圈里报错
1.14. rm -f sayeo1 删除目录sayeo1并同时删除其内容,此命令千万一定要慎用啊
1.15. rm -rf dir1 dir2 同时删除两个目录及它们的内容
1.16. mv sayeo2 sayeo_new 重命名
1.17. mv sayeo_new ./sayeo3 把sayeo_new移到sayeo3里面
1.18. cp kong.unl cangjing.unl 复制kong.unl 并命名为cangjing.unl
1.18.1.
1.19. cp dir/* . 复制一个目录下的所有文件到当前工作目录
1.20. cp -a /tmp/dir1 . 复制一个目录到当前工作目录(-a保留源文件属性)
1.21. cp -a dir1 dir2 复制一个目录
1.22. cp -r dir1 dir2 复制一个目录及子目录
1.23. ln -s cangjign.unl cj 创建cangjing.unl 的软连接cj
1.24. ln file1 lnk1 创建一个指向文件或目录的物理链接(硬链接)
1.25. touch file1 创建文件file1
1.26. iconv -l 列出已知的编码
2. 关机(系统的关机、重启以及登出)
2.1. 关闭系统 shutdown -h now
2.2. 关闭系统 init 0
2.3. 关闭系统 telinit 0
2.4. 按预定时间关闭系统 shutdown -h hours:minutes &
2.5. 取消按预定时间关闭系统 shutdown -c
2.6. 重启 shutdown -r now
2.7. 重启 reboot
2.8. 注销 logout
3. 磁盘空间
3.1. 显示已经挂载的分区列表 df -h
3.2. ls -lSr |more 以尺寸大小排列文件和目录
3.3. du -sh * 查看当前目录下文件大小
3.4. du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小
3.5. rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间(fedora, redhat类系统)
3.6. dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间(ubuntu, debian类系统)
4. 打包和压缩文件
4.1. bzip2 test.unl 压缩一个叫做 'test.unl' 的文件
4.2. bunzip2 test.unl.bz2 解压一个叫做 'test.unl.bz2'的文件
4.3. gzip file1 压缩一个叫做 'file1'的文件
4.4. gunzip file1.gz 解压一个叫做 'file1.gz'的文件
4.5. gzip -9 file1 最大程度压缩
4.6. rar a file1.rar test_file 把test_file 打包成 'file1.rar' 的包
4.7. rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'
4.8. rar x file1.rar 解压rar包
4.9. unrar x file1.rar 解压rar包
4.10. tar -cvf a.tar sayeo.bz2 test.unl 打包这2个文件
4.11. tar -cvf archive.tar file1 file2 dir1 把'file1', 'file2' 以及 'dir1' 合并在archive.tar里面
4.12. tar -tf archive.tar 显示一个包中的内容
4.13. tar -xvf archive.tar 解开一个包
4.14. tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
4.15. tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
4.16. tar -jxvf archive.tar.bz2 解压一个bzip2格式的压缩包
4.17. tar -cvfz archive.tar.gz dir1
4.17.1. 创建一个gzip格式的压缩包
4.18. tar -zxvf archive.tar.gz
4.18.1. 解压一个gzip格式的压缩包
4.19. zip file1.zip file1
4.19.1. 创建一个zip格式的压缩包
4.20. zip -r file1.zip file1 file2 dir1
4.20.1. 将几个文件和目录同时压缩成一个zip格式的压缩包
4.21. unzip file1.zip
4.21.1. 解压一个zip格式压缩包
前面看懂了,后面就没一一列举了
5. 文件的特殊属性(使用 "+" 设置权限,使用"-"用于取消)
5.1. 只允许以追加方式读写文件 chattr +a file1
1个 > 是覆盖的意思,无论你文件之前有无内容,统统先删除,然后再填进去,会报错,因为文件设置了只允许追加的方式 2个 > 也就是>> ,是追加的意思,就是在原来的内容的基础上追加新的内容,可以看出hello可以被追加到文件中
5.2. 允许这个文件能被内核自动压缩/解压 chattr +c file1
5.3. 在进行文件系统备份时,dump程序将忽略这个文件 chattr +d file1
5.4. chattr +i file1 设置成不可变的文件,这个文件不能被删除、修改、重命名或者链接
5.5. 允许一个文件被安全地删除 chattr +s file1
5.6. 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 chattr +S file1
5.7. 若文件被删除,系统会允许你在以后恢复这个被删除的文件 chattr +u file1
5.8. lsattr 显示特殊的属性
6. 文本处理
6.1. cat
6.1.1. cat file1 | command( sed, grep, awk, grep, etc...) > b.txt
语法翻译: cat a.unl | grep zhang > b.unl cat a.unl : 查看a.unl文件内容 grep zhang : 在文件中查找含有zhang 的行 >b.unl 将找到含有zhang 的记录写入到b.unl中 grep可以换成其他命令,以此类推就可以了
6.1.2. cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt
2个> 也就是>> 是追加的意思,就是在源文件内容基础上,继续添加内容,而6.1里面一个大于号是覆盖的意思。就是说不管原文件有什么内容都给你先删了再写入新的内容
6.1.3. 查看文件时候顺便显示行数 cat -n file1
6.1.4. cat example.txt | awk 'NR%2==1' 查看example.txt文件中的所有奇数行
cat a.unl | awk -F '|' 'NR%2==1{print $1}' cat a.unl 查看a.unl文件内容 awk -F '|' 以 | 作为分隔符 'NR%2==1{print $1}' NR表示所在行数,NR%2==1 行数除以2等于1的肯定都是奇数行,{print $1} 打印每一行的第一列
6.2. echo
6.2.1. echo 'esempio' | tr '[:lower:]' '[:upper:]' 小写换成大写
6.2.2. echo a b c | awk '{print $2}' 查看第2列
6.2.3. echo a b c | awk '{print $1,$3}' 查看一行的第1列和第3列
6.3. grep
6.3.1. grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug"
6.3.2. grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇
6.3.3. grep [0-9] /var/log/messages 显示 '/var/log/messages'文件中所有包含数字的行
6.3.4. grep Aug -R /var/log/* 在目录 '/var/log' 及目录里面搜索字符串"Aug"
6.4. sed
-r:使用扩展正则表达式 -e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项 -f:后跟保存了sed指令的文件 -i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改 -n:取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行
6.4.1. sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2"
sed '/zhang/li/g' a.unl 把zhang 换成li g 的意思是全局替换 注意此处替换并不是直接能改变a.unl,想要直接改变原文件a.unl,需要写成这样:sed -i '/zhang/li/g' a.unl
6.4.2. sed '/^$/d' a.txt a.txt文件中删除所有空白行
6.4.3. sed '/ *#/d; /^$/d' a.txt a.txt文件中删除所有注释和空白行
6.4.4. sed -e '1d' a.txt 从文件a.txt 中删除第一行
-e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项
6.4.5. sed -n '/stringa1/p' a.unl
查看只包含词汇 "string1"的行
6.4.6. sed -e 's/ *$//' example.txt
6.4.6.1. 删除每一行最后的空白字符
6.4.7. sed -e 's/stringa1//g' example.txt
6.4.7.1. 从文档中只删除词汇 "string1" 并保留剩余全部
6.4.8. sed -n '1,5p;5q' example.txt
6.4.8.1. 查看从第一行到第5行内容
6.4.9. sed -n '5p' a.txt 查看第5行
6.5. sort
6.5.1. sort file1 file2 把两个文件合在一起排序
sort 命令将以默认的方式将文本文件的第一列以 ASCII 码的次序排列,说人话就是按照abcdef........ABCDEF.....顺序
6.5.2. sort file1 file2 | uniq 取出两个文件的并集(重复的行只显示一次)
6.5.3. sort file1 file2 | uniq -u 删除交集,留下其他的行
6.5.4. sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)
6.6. comm
6.6.1. comm test1.unl test2.unl
第一列是第一个文件特有的 第二列是第二个文件特有的 第三列是两个文件共有的
6.6.2. comm -1 file1 file2 删除第一个文件特有的记录
6.6.3. comm -2 file1 file2 删除第2个文件特有的记录
6.6.4. comm -3 file1 file2 删除2个文件共有的记录
6.7. paste
6.7.1. paste file1 file2 合并两个文件
6.7.2. paste -d '+' file1 file2 合并2个文件。以+号区分
7. 查看文件内容
7.1. 从第一个字节开始正向查看文件的内容cat file1
7.2. 从最后一行开始反向查看一个文件的内容tac file1
7.3. 查看一个长文件的内容:more file1
按空格键可以往下翻页
7.4. 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作: less file1
按键盘上下键,进行上翻一条,下翻一条数据 按空格键,多条往下翻
7.5. 查看一个文件的前两行:head -2 file1
7.6. 查看一个文件的最后两行 tail -2 file1
7.7. 实时查看被添加到一个文件中的内容 tail -f /var/log/messages
打个比方:当把一个正在输出的日志打印到a.log中,此时用命令 tail -f a.log,就能看到日志会持续不断的再打印
8. 文件的权限(使用"+"设置权限,使用"-"用于取消)
8.1. ll 显示权限
8.2. chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
+ : 赋予权限 - : 取消权限
8.3. chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
8.4. chown user1 file1 改变文件的主人
8.5. chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
8.6. chgrp group1 file1 改变文件的群组
8.7. chown user1:group1 file1 改变一个文件的所有人和群组属性
9. 用户和群组
-c:加上备注文字,备注文字保存在passwd的备注栏中。 -d:指定用户登入时的主目录,替换系统默认值/home/<用户名> -D:变更预设值。 -e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。 -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1. -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。 -G:指定用户所属的附加群组。 -m:自动建立用户的登入目录。 -M:不要自动建立用户的登入目录。 -n:取消建立以用户名称为名的群组。 -r:建立系统账号。 -s:指定用户登入后所使用的shell。默认值为/bin/bash。 -u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。
9.1. groupadd group_name 新建用户组
9.2. groupdel group_name 删除一个用户组
9.3. groupmod -n new_group_name old_group_name 重命名一个用户组
9.4. useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于"admin"用户组的用户
9.5. useradd user1 创建一个新用户
9.6. userdel -r user1 删除一个用户('-r'排除主目录)
9.7. usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
9.8. passwd 修改口令
9.9. passwd user1 修改一个用户的口令(只允许root执行)
9.10. chage -E 2005-12-31 user1 设置用户口令的失效期限
9.11. pwck 检查 '/etc/passwd'的文件格式和语法修正以及存在的用户
9.12. grpck 检查'/etc/passwd'的文件格式和语法修正以及存在的群组
9.13. newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组
10. 文件搜索
10.1. find / -name file1
10.2. 搜索属于文件属主的文件find / -user user1
10.3. 查找以z开头的文件或者文件名 find -name z\*
10.4. 搜索在10天以前被创建或者修改过的文件find /usr/bin -type f -atime +100
10.5. 搜索在10天内被创建或者修改过的文件find /usr/bin -type f -mtime -10
10.6. find / -name \*.rpm -exec chmod 755 '{}' \;
linux中的 exec命令,-exec 后面跟的是linux的 command 命令,exec命令以分号结束‘;’, 该分号前面要放 反斜杠转义
10.7. 寻找以'.ps'结尾的文件 -1. 先同步: 'updatedb' 2.执行命令locate \*.ps
10.8. 显示一个二进制文件、源码或man的位置:whereis halt
10.9. 显示一个二进制文件或可执行文件的完整路径:which halt