Linux常用命令

和自甴很熟 提交于 2019-12-02 14:35:36

Linux命令格式

command [-option] [parametor] [parametor]

目录和文件

cd 切换目录

/ 根目录
. 当前目录
.. 上级目录
~ 当前用户的家目录
- 上一次的所在的目录

语法:

cd [.|..|~|/|目录名称]

示例:

cd 空格 # 进入个人的主目录
cd ~ # 进入个人的主目录
cd .. # 返回上一级目录
cd ../.. # 返回上两级目录
cd - # 返回上次所在的目录
cd /etc
cd ~/Desktop

pwd 打印工作目录

执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称

创建文件
vim filename 创建文件并在vi/vim中打开
touch filename 创建文件
echo nihao,xianzaijidian > filename 创建并写入内容nihao…(注意空格)

ls 查看目录中的文件

语法:

ls [-a -l -h][目录名称,不写就默认为当前目录]

常用参数:

  • -a :列出全部的文件,包括隐藏的
  • -l :显示更多信息,包含文件的属性与权限数据等
  • -d :仅列出目录本身,而不是列出目录的文件数据
  • -h :将文件容量以较易读的方式(GB,kB等)列出来
  • -R :递归列出目录,等于该目录下的所有文件都会显示出来
  • -F : 查看目录中的文件

示例:

ls -lh
ls -a 
ls -la 
ls -al
ls ~/Desktop
ls *[0-9]* # 显示包含数字的文件名和目录名

tree 以树结构显示文件和文件夹

语法:

tree [-d | -L num][目录]

常用参数:

  • -d 只显示目录
  • -L num 向下显示目录层级num

示例:

tree -d #树结构显示当前以及所有下级目录 
tree -L 3 ~/Desktop #树结构显示~/Desktop及向下3级的目录和文件 

grep 文本搜索

在文本内容中根据关键字或模式进行搜索

语法
grep [-nvi] <search_word> file_name

常用选项

  • - v 显示不包含search_word的行
  • - n 显示行号
  • - i 忽略search_word大小写

示例

# 通常查看配置文件时候使用
grep -v ^# xxx.conf # 不显示以 # 开头的注释行

cat 查看文件内容、创建文件、文件合并、追加文件内容

cat 查看文件会一次显示所有内容,适合查看内容较少的文本文件

语法

cat [-AbeEnstTuv] [--help] [--version] fileName

常用参数

  • -n 或 --number:由 1 开始对所有输出的行数编号。
  • -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
  • -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
  • -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
  • -E 或 --show-ends : 在每行结束处显示 $。
  • -T 或 --show-tabs: 将 TAB 字符显示为 ^I。
  • -A, --show-all:等价于 -vET。
  • -e:等价于"-vE"选项;
  • -t:等价于"-vT"选项;

示例:

# 把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里
cat -n textfile1 > textfile2 

# 把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里
cat -b textfile1 textfile2 >> textfile3

# 清空 /etc/test.txt 文档内容
cat /dev/null > /etc/test.txt

###########################################
# cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入
cat /dev/fd0 > OUTFILE # OUTFILE 指输出的镜像文件名
 
# 相反的,如果想把 image file 写到软盘,输入
cat IMG_FILE > /dev/fd0 # IMG_FILE 指镜像文件

more 分页显示

less

head

tail 用于查看文件的内容

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

语法:

tail [参数] [文件]  

常用参数:

  • -f 循环读取
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示文件的尾部 n 行内容
  • –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
  • -q, --quiet, --silent 从不输出给出文件名的首部
  • -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

示例:

# 要显示 notes.log 文件的最后 10 行,请输入以下命令
tail notes.log

# 要跟踪名为 notes.log 的文件的增长情况,请输入以下命令
tail -f notes.log

# 此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。

#显示文件 notes.log 的内容,从第 20 行至文件末尾:
tail +20 notes.log

# 显示文件 notes.log 的最后 10 个字符:
tail -c 10 notes.log

mkdir 创建目录

创建一个或多个、一级或多级目录

语法

mkdir [-p] 目录名称 [目录名称 ...]

常用参数:

  • -p 如果一次创建多层目录加上参数

示例

mkdir dir1 # 创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 # 同时创建两个目录
mkdir -p /tmp/dir1/dir2 # 创建一个目录树

touch 文件名

如果不存在就创建文件,否则更新文件的最后修改时间属性

语法:

touch 文件名1 [文件名2 ...] # 在当前文件夹下创建新文件

示例:

touch abc.txt haha
touch ~/Desktop/test

echo 回显文字

> 输出 ,>> 追加

示例
输出 “hello 我的!” 到文件 hao123.txt,文件不存在则先创建,文件存在则重写文件内容
echo "hello 我的!" > hao123.txt


cp命令主要用于复制文件或目录

语法:

cp [options] source dest
cp [options] source... directory

常用参数

  • -a :将文件的特性一起复制
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:若目标文件已经存在时,在覆盖时会先询问操作的进行
  • -p:连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
  • -r :递归持续复制,用于目录的复制行为
  • -u :目标文件与源文件有差异时才会复制
  • -l:不复制文件,只是生成链接文件。

示例:

# 使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下
cp –r test/ newtest

cp file1 file2 # 复制一个文件
cp dir/* . # 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . # 复制一个目录到当前工作目录
cp -a dir1 dir2 # 复制一个目录
cp -a file1 file2 # 连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir # 把文件file1、file2、file3复制到目录dir中
scp ~/tu.tar.gz root@192.168.100.142:~/tu.tar.gz # 局域网复制

mv 重命名/移动

命令用来为文件或目录改名、或将文件或目录移入其它位置。

语法:

mv [options] source dest
mv [options] source... directory

常用参数:

  • -f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件已经存在,就会询问是否覆盖
  • -u :若目标文件已经存在,且比目标文件新,才会更新

mv参数设置与运行结果

命令格式 运行结果
mv 文件名 文件名 将源文件名改为目标文件名
mv 文件名 目录名 将文件移动到目标目录
mv 目录名 目录名 目标目录已存在,将源目录 移动到目标目录;目标 目录不存在则改名
mv 目录名 文件名 出错

示例

# 将文件 aaa 更名为 bbb 
mv aaa bbb

# 将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs
mv info/ logs 

# 再如将/usr/student下的所有文件和目录移到当前目录下
$ mv /usr/student/*  . 

rm 删除文件或目录

语法:

rm [options] name...

常用参数:

  • -i 互动模式,在删除前逐一确认(y代表yes, n代表no)。
  • -r 递归删除文件夹内的文件和文件夹。
  • -f 就是force的意思,强制删除, 不给任何提示。忽略不存在的文件,不会出现警告消息

示例:

rm -rf ~/Desktop # 删除当前用户家目录/桌面 所有文件
rm -f file1 # 删除一个叫做 'file1' 的文件'
rmdir dir1 # 删除一个叫做 'dir1' 空目录'
rm -rf dir1 # 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 # 同时删除两个目录及它们的内容
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!