目录名称 | 作用 |
---|---|
/dev | 存放抽象的硬件,类似于windows中的U盘,硬盘 |
/lib | 存放系统库文件,这种文件的后缀基本为.so |
/sbin | 存放root可用的二进制文件(命令) |
/var | 存放经常变化的文件,例如里面有一个日志/var/log记录系统运行时的各种信息 |
/home | 普通用户的家目录 |
/etc | 存放配置文件的目录 |
/boot | 存放内核与启动文件 |
/bin | 存放二进制文件,可执行命令 |
一些有意思的目录
目录 | 作用 |
---|---|
/etc/motd | 可以在里面写一些东西。然后开机的时候,或者每一次远程连接的时候显示这些东西 |
/etc/os-release | 此目录下有当前使用的Linux的发行版本等相关信息 |
/proc | 这个目录下面存放有计算机的硬件相关信息 |
/dev/null | 信息黑洞,可以将垃圾文件信息重定向到信息黑洞中 |
/etc/yum.conf | 这个文件是yum的基本配置 |
命令 | 作用 | 使用示例 |
---|---|---|
ssh | 远程登录命令 | ssh [email protected] |
su - | 切换用户 | su -(切换到root) su - slowstep(切换到slowstep) |
logout | 退出当前用户 | logout |
date | 查看当前时间 | date |
mkdir {} | 可以创建多个文件夹。这个{}又被称为bash脚本语法 | mkdir new{1…100}dir mkdir {dir1,dir2,dir3} |
mkdir -p | 创建一系列递归目录 | mkdir -p ./dir1/dir2/dir3 |
alias | 可以显示当前机器上命令的别名 | alias |
stat | 查看文件或者目录的属性 | stat test.soft stat mydir stat test.c |
which | 可以查看命令所在的文件夹路径 | which ls which rm which which |
命令 | 作用 | 实例示例 |
---|---|---|
ls -a | 可以列出隐藏文件 | ls -a ~ |
ls -l | 详细列出文件信息 | ls -l . |
ls -h | 以人性化方式输出文件大小 | ls -l -h . |
ls --full-time | 输出文件完整的时间信息 | ls -lh --full-time Mydir ls --full-time ./test.txt ls --full-time也可以起到ls -l的效果 |
ls -t | 根据文件的修改时间进行排序,最近一次修改的文件放在第一个,最后一次修改的文件放在最后一个,可以理解为将文件从新到旧进行排序 | ls -t -l . |
ls -F | 可以在不同的文件结尾,输出不同的符号,可以用于在没有彩色显示的情况的判断文件类型(当然也可以直接用ls -l详细列出文件信息来判断文件种类,这种方法用来判断目录和文件居多)。 使用ls -F命令查看到的以*结尾的是可执行文件,以/结尾的是文件夹,以@结尾的是软链接 |
ls -F . |
ls -d | 只显示文件夹信息,不显示文件夹中的具体内容 | ls -dl . |
ls -S | 按照文件大小进行排序,默认是从大到小进行排序 | ls -Shl . |
ls -r | 可以逆序排序,可以与ls中有排序的选项搭配使用 | ls -Slr . ls -t -l -r . |
ls -i | 可以显示文件的iNode编号 | ls -i test.c |
ls -R | 可以显示文件夹中全部文件,子目录,以及子目录中的内容 | ls -R . |
命令 | 作用 | 实例演示 |
---|---|---|
touch test.txt | 如果test.txt不存在,会创建test.txt,如果存在,会改变原来的test.txt的时间信息为现在 | touch test.txt |
touch {} | 通过bash语法创建多个文件 | touch test{a…z}.c |
touch -t | 可以将文件的时间信息修改,修改为将来或者过去的时间都可以 | touch -t 203010240505(年月日小时分钟) touch -t 09090909(月日小时分钟) |
命令 | 作用 | 实例 |
---|---|---|
cp test1.txt test2.txt | 复制当前目录下的test1.txt,在当前目录下创建一份一样的文件,名称为test2.txt | cp test1.txt test2.txt |
cp test.txt mydir | 拷贝一份test.txt到mydir目录中,保留原来的文件名 | cp test.txt mydir |
cp test.txt mydir/new.txt | 拷贝一份test.txt到mydir目录中,并且重新命名 | cp test.txt mydir/new.txt |
cp -r | 复制整个文件夹 | cp -r dir1 dir2(复制一份新的dir1,取名dir2) |
cp -p | 在拷贝的时候保留文件属性,即适用于文件,也适用于目录 | cp -p a.out mybin cp -pr mydir newdir |
cp file.soft file2 | cp直接拷贝软链接时拷贝的是原文件.如果此时的软链接对应的原文件丢失,会直接拷贝失败 | cp file.soft file2 |
cp -d | 拷贝软链接.不管原软链接对应的文件是否存在,都可以拷贝软链接 | cp -d file.soft new.soft |
cp -i | cp命令可以将一个文件中的内容覆盖另外一个文件。假设test.txt和help.txt都在目录中,cp test.txt help.txt可以将test.txt中的内容写到help.txt中,覆盖help.txt中的内容。加上-i参数可以询问是否覆盖 | cp -i test.txt help.txt |
命令 | 作用 | 示例 |
---|---|---|
mv -i | 询问是否覆盖 | mv test.c new.txt 使用test.c中的内容覆盖new.txt中的内容 |
mv -f | 强制性覆盖 | mv test.c new.txt 将test.c中的内容强制覆盖new.txt |
命令 | 作用 | 示例 |
---|---|---|
rm -i | 每次删除都询问 | rm -i test.c |
rm | 删除普通文件 | rm test.txt |
rmdir | 删除空的文件夹 | rmdir dir1 |
rm -d | 删除空目录 | rm -d emptydir |
rm -r | 递归删除 | rm -rf ./* |
rm -v | 显示详细的删除过程 | rm -vr dir1 |
命名 | 作用 | 示例 |
---|---|---|
man | 获取帮助 | man ls |
–help | 获取帮助 | rm --help ls --help |
info | 获取帮助 | info rm info sudo |
help | 获取帮助 | 只能查到Linux内置命令,不常用 |
命令 | 作用 | 示例 |
---|---|---|
shutdown -r | 设置时间重启 | shutdown -r now 立刻重启 shutdown -r 0 立刻重启 shutdown -r 10 10分组后重启 |
shutdown -h | 关机 | shutdown -h 0 shutdown -h now shutdown -h 10 |
reboot | 立即重启 | reboot |
快捷键 | 作用 |
---|---|
Ctrl +a | 光标移动到行首 |
Ctrl +e | 光标移动到行尾 |
Ctrl +u | 剪切光标前的内容 |
Ctrl +k | 剪切光标后的内容 |
Ctrl +y | 粘贴 |
环境变量即PATH
查看环境变量使用echo $PATH
使用which可以查看某一条命名所在的目录。
which ls,which rm.这些目录一定在PATH包含的路径中
命令 | 作用 |
---|---|
Ctrl + b | 上翻一页 |
Ctrl + f | 下翻一页 |
Ctrl + u | 上翻半页 |
Ctrl + d | 下翻半页 |
Ctrl + y | 向上翻滚一行 |
Ctrl + e | 向下翻滚一行 |
zz | 让光标调整到屏幕中间 |
zb | 让光标调整到屏幕下方 |
zt | 让光标调整到屏幕上方 |
0 | 光标移动到行首 |
^ | 光标移动到行首 |
x | 删除光标位置字符,可以搭配n + x使用 |
shift + x | 删除光标前的一个字符,可以搭配n +shift+x使用 |
shift + ~ | 大小写转换,可以n+shift+~ |
$ | 光标移动到行尾 |
dG | 删除光标所在的行到文件末尾的内容,可以先跳转到行首,然后dG可以删除所有文件内容 |
D | 删除光标所在处到行尾的内容 |
nyy | 复制n行 |
ndd | 剪切n行 |
p | 粘贴到光标的下一行 |
P | 粘贴到光标的上一行 |
r | 取代光标所在处字符 |
R | 从光标所在处开始取代字符,ESC结束 |
命令 | 作用 |
---|---|
a | 光标后移 |
A | 在行尾插入 |
i | 光标不变 |
I | 行首插入 |
o | 切换到下一行 |
O | 切换到上一行 |
s | 删除光标位置元素后插入 |
S | 删除这一行并插入 |
命令 | 作用 | 实例 |
---|---|---|
vs | 多窗口 | :vs yum.conf |
n | 切换到第n行 | :10 |
n1,n2d | 删除指定范围的行 | :10,20d |
/string | 搜索指定内容 | :/tcp |
set ic | 忽略大小写进行搜索 | :set ic |
set noic | 取消忽略大小写 | :set noic |
%s/old/new/g | 全文替换指定字符,且不询问 | :%s/by/newby/g |
%s/old/new/c | 全文替换指定字符,询问 | :%s/tcp/udp/c |
r test.txt | 将文件的内容导入到当前文件 | :r test.c |
! | 可以在vim使用的时候执行其他命令 | :! ls -l . |
r ! | 可以把其他命令执行的结果导入到文件 | : r ! ls -l . |
n1,n2s/^old/new/g© | n1到n2行开头是old的替换为new,g表示不询问,c表示询问 | :10,20s/^#/zero/c |
%s/^old/new/c(g) | 全部文本开头是old的替换为new,g表示不询问,c表示询问 | :%s/^#/te/g |
w newfile | 另存为指定文件,不会删除原文件 | :w new.txt |
ab txt1 txt2 | 在插入模式下输入文本txt1然后空格可以替换为txt2 | :ab mail [email protected] |
%s/^/#/g | 注释所有行 | :%s/^/#/g |
命令 | 作用 | 示例 |
---|---|---|
chmod | 修改权限 | chmod u+x test.c chmod g+rwx test.c chmod o-rwx test.c chmod 777 test.c chmod a=rx test.c a是所有,all的意思 |
chown | 修改拥有者 | chown root test.c |
chgrp | 修改所属组 | chgrp root test.c |
chown root:root test.txt | 同时修改拥有者和所属组 | chown root:root test.txt |
重定向符号 | 说明 | 示例 |
---|---|---|
> | 输出重定向(具有覆盖性) | echo hellow > test.txt cat test.txt > test.c cat > test.txt < |
>> | 追加重定向(不具有覆盖性) | cat test.c >> test.txt echo “hellow world” >> test.c |
< | 输入重定向 | cat -n < test.c -n表示显示行号 |
cat的基本参数
命令 | 作用 | 示例 |
---|---|---|
cat test.txt | 将文件内容显示到屏幕 | cat test.txt |
cat -b | 对非空的行进行编号 | cat -b test.txt |
cat -n | 对所有的行进行显示行号 | cat -n test.txt |
cat -E | 在每一行结束加上$符号 | cat -En test.txt |
cat -s | 不输出多余的空行,就是说两行之间有多个空行时,只输出一行 | cat -s test.txt |
cat对文件进行操作
命令 | 作用 | 实例 |
---|---|---|
cat test1.c test2.c | 将2个文件的内容都显示在屏幕上 | cat test1.txt test2.txt |
cat test1.txt test2.txt > new.txt | 将2个文件的内容合并为一个 | cat 1.txt 2.txt > new.txt |
cat >> 1.txt <非交互式的向文件中写入内容 |
cat >> 1.txt < | |
echo >test.txt | 清空文件,但是留有空行 | echo >test.txt |
> 1.txt | 清空文件,不留痕迹 | > 1.txt |
cat /dev/null > test.txt | 清空文件,没有空行 | cat /dev/null > test.txt |
命令 | 作用 | 示例 |
---|---|---|
| | 管道符号 | cat test.txt | grep “hellow” |
grep | 筛选关键字 | cat mtools.conf | grep “/dev/dsk” |
more | 分屏显示 | more test.txt |
less | 分屏显示 | less test.txt |
head | 查看文件开头的n行.head默认显示前10行 | head -5 test.txt |
head -c | 指定显示文件的前多少个字符 | haed -c 300 test.txt |
tail | 查看文件后n行,默认是后10行 | tail -4 test.txt |
tail -f | 实时刷新文件后面的的内容是否变化。-f要求文件必须存在 | tail -f test.txt |
tail -F | 实时刷新文件内容是否变化,如果文件不存在,会等到那个文件被创建 | tail -F none.txt |
tac | 倒过来显示文件内容 | tac test.txt |
命令 | 作用 | 示例 |
---|---|---|
cut -c i | cut -c,以字符为单位进行分割。取出每一行的第i个字符 | cut -c 5 test.txt |
cut -c n1-n2 | 取出每一行的n1到n2之间的所有字符 | cut -c 4-7 test.txt |
cut -c n1,n2 | 取出每一行的第n1个字符和第n2个字符 | cut -c 1,3,5,7 test.txt cut -c 1-3,7-9 test.txt |
cut -c -n test.txt | 只取每一行最前面的n个字符 | cut -c -3 test.txt |
cut -c n- test.txt | 只取每一行从第n个字符开始往后的内容 | cut -c 4- test.txt |
cut -d | 自定义分割符号进行截取 | cut -d “:” -f 3-6 test.txt 以冒号作为分隔符,截取第3-6区域的内容 cut -d “=” -f 2 test.txt | head -3 |
命令 | 作用 | 示例 |
---|---|---|
sort -n | 从小到大进行排序,不去重 | sort -n test.txt |
sort -nr | 从大到小进行排序,不去重 | sort -rn test.txt |
sort -u | 从小到大排序,去重 | sort -u test.txt |
sort -ur | 从大到小进行排序,去重 | sort -ur test.txt |
sort -t -k | 指定分隔符与排序区间进行排序 | sort -n -t “:” -k 4 test.txt |
命令 | 作用 | 示例 |
---|---|---|
uniq | 找到多行连续重复的内容时,会进行去重 | uniq test.txt |
uniq + sort | 去重,即使相同的内容不在同一行,也可以 | sort -n test.txt | uniq sort -n -t “.” -k 4 test.txt | uniq |
uniq -c | 统计相邻的行且内容相同的出现了多少次 | uniq -c test.txt |
uniq -c + sort | 经过排序以后可以统计整个文本中相同内容的行出现了多少次 | sort -n -t “.” -k 4 test.txt | uniq -c |
uniq -d | 只统计重复的行,通常与sort配合使用 | sort -n test.txt | uniq -d -c |
uniq -u | 只找到出现一次的行 | sort -n test.txt | uniq -u -c |
wc命令可以对文件,字符串等内容进行操作
命令 | 作用 | 示例 |
---|---|---|
wc -l | 统计文件有多少行 | wc -l test.txt |
wc -w | 统计单词的数量 | echo “new old small big” | wc -w |
wc -m | 统计字符数量.注意Linux文档每行结尾有一个不显示的$符号 | echo “h” | wc -m 其结果是2,实际上包含的字符是h$ echo “hellow” | cat -E |
wc -L | 统计有多少个字符 | whoami | wc -L |
tr可以调整输出在屏幕上的内容,不会改变原文件的内容
命令 | 作用 | 示例 |
---|---|---|
tr | 替换标准输入中的大小写 | echo “this is linux” | tr ‘[a-z]’ ‘[A-Z]’ 把小写的a-z替换为大写的A-Z |
tr -d | 删除标准输入中的一些内容 | echo “hellow 123” | tr -d ‘[a-z]’ echo “hellow 123” | tr -d ‘a-z’ echo “hellow 123” | tr -d ‘0-9’ |
tr ‘a’ ‘A’ < test.txt | 将test.txt中的所有’a’替换为’A’输出在屏幕上,并不会改变原文件的内容,只是改变了输出在屏幕上的内容 | tr ‘0-9’ ‘A’ < test.txt |
tr -s | 删除连续重复的字符 | echo “iiiiiiii aaaaammmm ssss” | tr -s ‘iams’ 删除连续重复的i,a,m,s字符 |
stat命令可以查看文件更加详细的信息
stat test.txt
命令 | 作用 | 示例 |
---|---|---|
find -name | 根据文件名搜索 | find / -name test.txt |
find -maxdepth | 指定最大搜索的目录层次 | find /opt -maxdepth 3 -name “*.txt” |
find +通配符 | 搜索带有指定特征的文件 | find . -name “[0-9]*” 在当前目录下寻找以0-9开头的文件 |
find -type d | 指定寻找文件夹 | find . -type d -name “[0-9]*” |
find -type f | 指定寻找普通文件 | find . -type f -name “*.txt” |
find …… -delete | 找到指定文件,进行删除操作 | find . -type d -name “[0-9]*” -delete |
find -atime | 查找在特定时间段内被访问的文件 | find . -type f -atime -2 在2天内被访问过的文件 find . -atime 2 恰好两天之前访问的文件 find . -atime +2 超过2天被访问的文件 |
find ! | 进行反向查找,取反操作 | find . -maxdepth 1 ! -type d 查找当前目录下深度为1并且不是目录的内容 |
find -size | 根据文件的大小查找 | find . -size +30M find / -size +10k -size -50k |
find -path …… “dir” -prune | 忽略某个文件夹,在此文件夹以外的范围查找 | find . -path “./newdir” -prune -o -name “*.txt” -print -o表示取并集 |
find -ok | 对找到的文件进行操作,并且询问 | find . -type f -name “[0-9]*” -ok rm -f {} \; |
find -exec | 对找到的文件进行操作,不询问 | find . -type f -name “[0-9]*” -exec ls -l {} \; |
xargs命令又被称为管道命令,构造参数。
命令 | 作用 | 示例 |
---|---|---|
xargs < | 将文件中的内容进行一行输出 | xargs < test.txt |
xargs -n < | 将原来文件中的n行作为一行输出在屏幕上 | xargs -n 3 < test.txt |
xargs -d | 指定分割符号 | echo “1,2,3,4,5,6,7” | xargs -d “,” -n 3 |
xargs -i | 可以使用{}替代传输的文本 | find . -name “*.txt” | xargs -i mv {} dirtest |
xargs -I | 可以使用字符串代替需要操作的文件 | find . -name “*.txt” | xargs -I alltxt mv alltxt newdir |
使用yum install -y sl可以安装小火车
使用sl就可以让小火车跑起来了
使用yum install boxes可以安装盒子,打印出不同的图形
yum install linux_logo可以安装linux的logo
使用linux_logo就可以把logo打印出来