Linux常用指令

Linux常用指令:

文章目录

  • Linux常用指令:
    • cd命令:
    • clear 命令:
    • pwd命令:
    • ls命令:
    • chmod 命令:
    • chown 命令:
    • chgrp 命令:
    • touch 命令:
    • mkdir 命令:
    • rm 命令:
    • mv命令:
    • cp 命令:
    • help和man命令:(查看帮助文档)
    • which 命令:
    • find命令:
    • locate 命令:(搜索速度很快,比find快)
    • cat 命令:
    • more 命令:
    • grep 命令:
    • echo 命令:
    • 管道:(|)
    • ln 命令:(软链接)
    • vim命令:
    • su 命令:
    • exit 命令:
    • sudo 命令:
    • useradd 命令:
    • usermod 命令:
    • userdel 命令:
    • passwd 命令:
    • id 命令:
    • groupadd 命令:
    • groupmod 命令:
    • groupdel 命令:
    • chsh 命令:
    • /etc/group 文件:
    • /etc/passwd 文件:
    • /etc/shadow 文件:
    • /etc/gshadow 文件:
    • whoami 命令:
    • who 命令:
    • ll 命令:
    • /etc/group 文件:
    • /etc/passwd 文件:
    • /etc/shadow 文件:
    • /etc/gshadow 文件:
    • whoami 命令:
    • who 命令:
    • ll 命令:

Linux 命令格式:

  • cmd -option parameter
    • cmd 是命令,option 就是一个操作,parameter 操作的对象

cd命令:

  • cd 桌面:进入"桌面"目录
  • cd … :返回上级目录
  • cd ~:返回当前用户的 home 目录
  • cd ~用户名:返回之前用户的 home 目录
  • cd -: 和上一次打开的文件夹来回切换
  • cd . : 当前的文件夹

clear 命令:

  • clear: 清空终端界面

pwd命令:

  • pwd:显示当前的路径

ls命令:

  • ls:查看文件目录
  • ls -f:查看目录中的文件
  • ls -a:查看隐藏文件
  • ls -l :查看文件和目录的详细资料,可查看文件权限
  • ls -i:查看文件和文件夹id
  • ll :查看文件和目录的详细资料,类似与ls -l,多了一个 ./ 当前目录和 …/ 上级了目录
  • 过滤搜索:
    • [abc] :文件夹或文件包含abc任意一个
      • 例如: ls [abc].txt —> a.txt
    • *:文件夹或文件包含一个或多个字符
      • 例如: ls *.txt —> a.txt b.txt aaa.txt
    • ?: 文件夹或文件包含某个字符
      • 例如: ls ???.js —>alog.js link.js

chmod 命令:

  • chmod [ugoa] [±=] [rwxX] 文件名:
    • u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
    • 例如:chmod u+w /etc/sudoers
      • 将sudoers文件添加可写的权限
    • 例如:chmod u-wr,g-rw t1.txt
      • 将t1.txt 的用户和分组的可读可写权限去掉
  • chmod [ugoa] [±=] [数字] 文件名:
    • r–4 , w–2 , x–1
    • 用数字的和代表权限
      • 例如:chmod 777 t1.txt
        • 将t1.txt 文件的用户权限、分组权限、其他用户权限全部设为可读可写可执行
      • 例如:chmod 467 t1.txt
        • 将t1.txt 文件的用户权限设为可读,分组权限设为可读可写,其他用户权限设为可读可写可执行

chown 命令:

  • chown 用户名 文件名:修改文件的所属者
    • 例如:chown user3 t1.txt
      • 修改t1.txt 的所有者为user3
  • chown -R 用户名 文件夹名:递归修改文件夹中所有文件的所属者
    • 例如:chown -R user3 dd
      • 递归修改dd文件夹中所有文件的所属者为user3

chgrp 命令:

  • chgrp 组名 文件名:修改文件的所属组
    • 例如:chgrp user2 t1.txt
      • 修改t1.txt 的所有组为user2
  • chgrp -R 组名 文件夹名:递归修改文件夹中所有文件的所属组
    • 例如:chgrp -R user2 dd
      • 递归修改dd文件夹中所有文件的所属组为user2

touch 命令:

  • touch 文件名.txt : 创建txt 文本文件(有txt后缀名)
    • 例如:touch hello.txt
  • touch 文件名: 创建txt 文本文件(没有txt后缀名)
    • 例如:touch hello

mkdir 命令:

  • mkdir 文件夹名: 创建文件夹
    • 例如:mkdir 我的文件夹

rm 命令:

  • rm 文件名 : 删除文件
    • 例如:rm T1.txt
  • rm -d 文件夹名: 删除文件夹,删除空文件夹
    • 例如:rm -d 我的文件夹 其中我的文件夹为空文件夹
  • rm -r 文件夹名: 删除文件夹,删除文件夹以及里面的内容
    • 例如:rm -r aa 其中aa为非空文件夹

mv命令:

  • mv 文件 文件夹: 移动文件到文件夹
    • 例如:mv test.txt bb mv test2.txt /home/86god/桌面/bb
  • mv 文件夹1 文件夹2: 移动文件夹1到文件夹2,若文件夹2不存在,相当于重命名
    • 例如:mv aa cc mv aa …/
  • mv 文件 当前目录/名字: 相当于重命名
    • 例如:mv test1.txt ./test3.txt
  • mv 文件 指定目录/名字: 移动并重命名
    • 例如:mv test1.txt ./test3.txt

cp 命令:

  • cp 文件 文件夹: 复制文件到文件夹
    • 例如:cp test.txt bb cp test2.txt /home/86god/桌面/bb
  • cp -r 文件夹1 文件夹2: 复制文件夹1到文件夹2,若文件夹2不存在相当于复制并重命名
    • 例如:cp -r aa cc 将aa复制到cc中
  • cp 文件 当前目录/名字: 相当于重命名
    • 例如:cp test1.txt ./test3.txt
  • cp -r 文件 指定目录/名字: 移动并重命名
    • 例如:mv test1.txt ./test3.txt

help和man命令:(查看帮助文档)

  • 命令 --help :查看帮助文档
    • 例如 :ls --help
  • man 命令: 查看帮助文档,分页,比较清晰
    • 例如: man ls

which 命令:

  • which 命令 : 可以查看命令的文件位置
    • 例如:which ls

find命令:

  • find 路径 -name 文件名字 :可以在指定目录下搜索文件,输出文件路径
    • 例如:find /home/86god/桌面 -name t1.txt
    • 例如:find /home/86god/桌面 -name ‘t*’ 模糊搜索要加单引号。
  • find 路径 -iname 文件名字 :可以在指定目录下搜索文件,输出文件路径,-i是忽略大小写
    • 例如:find /home/86god/桌面 -iname t1.txt
  • find 路径 -size +块数 :在指定目录下,查找大于指定块数的文件,注意:一块是512KB。
    • 例如:find /home/86god/桌面 -size +1
  • find 路径 -size -块数 :在指定目录下,查找小于指定块数的文件,注意:一块是512KB。
    • 例如:find /home/86god/桌面 -size -2
  • find 路径 -size 块数 :在指定目录下,查找等于指定块数的文件,文件的大小为向上取整,4.5数据块会取5数据块,注意:一块是512KB。
    • 例如:find /home/86god/桌面 -size 2
  • find 路径 -user 用户名:在指定目录下,查找属于指定用户的文件
    • 例如:find /home/86god/桌面 -user 86god
  • find 路径 -mmin -分钟数:在指定目录下,查找在几分钟内被修改过的文件
    • 例如:find /home/86god/桌面 -mmin -5
      • 后面数字的单位是分钟,在5分钟以内被修改的文件
  • find 路径 -mmin +分钟数:在指定目录下,查找在大于几分钟被修改过的文件
    • 例如:find /home/86god/桌面 -mmin +5
      • 后面数字的单位是分钟,在5分钟以外被修改的文件
    • 类似的还有:
      • amin:上次文件被访问的时间
      • cmin:上次文件属性(文件权限)被修改的时间
  • find 路径 -type f : 在指定目录下,查找所有文件
    • 例如:find /home/86god/桌面 -type f
  • find 路径 -type d : 在指定目录下,查找所有文件夹
    • 例如:find /home/86god/桌面 -type d
  • find 路径 -type l : 在指定目录下,查找所有链接
    • 例如:find /home/86god/桌面 -type l
  • find 路径 -inum id编号 : 在指定目录下,查找指定id的对象
    • 例如:find /home -inum 34975432

locate 命令:(搜索速度很快,比find快)

  • locate 文件名:在全局搜索文件
    • 例如:locate t1.txt
  • locate 文件夹名:打印文件夹中的所有对象
    • 例如:locate cc
  • updatedb:更新locate的索引库
    • 例如:updatedb

cat 命令:

用法:cat [选项]… [文件]…
将[文件]或标准输入组合输出到标准输出。

-A, --show-all 等于-vET
-b, --number-nonblank 对非空输出行编号
-e 等于-vE
-E, --show-ends 在每行结束处显示"$"
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与-vT 等价
-T, --show-tabs 将跳格字符显示为^I
-u (被忽略)
-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外
–help 显示此帮助信息并退出
–version 显示版本信息并退出

如果没有指定文件,或者文件为"-",则从标准输入读取。

示例:
cat f - g 先输出f 的内容,然后输出标准输入的内容,最后输出g 的内容。
cat 将标准输入的内容复制到标准输出。

  • cat 文本文件名:一次性打印文本文件的内容
    • 例如:cat T1.txt
  • cat -b 文本文件名:一次性打印文本文件的内容,并对非空行编行号
    • 例如:cat -b T1.txt
  • cat -n 文本文件名:一次性打印文本文件的内容,并对所有行编行号
    • 例如:cat -n T1.txt

more 命令:

选项:
-d 显示帮助,而不是响铃
-f 统计逻辑行数而不是屏幕行数
-l 抑制换页(form feed)后的暂停
-p 不滚屏,清屏并显示文本
-c 不滚屏,显示文本并清理行尾
-u 抑制下划线
-s 将多个空行压缩为一行
-NUM 指定每屏显示的行数为 NUM
+NUM 从文件第 NUM 行开始显示
+/STRING 从匹配搜索字符串 STRING 的文件位置开始显示
-V 输出版本信息并退出

  • more 文本文件名:分页打印文本文件内容
    • 例如:more T1.txt (可以按回车打印下一行,按空格切换下一页,按b切换上一页,按q退出)

grep 命令:

用法: grep [选项]… PATTERN [FILE]…
在每个 FILE 或是标准输入中查找 PATTERN。
默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。
例如: grep -i ‘hello world’ menu.h main.c

正则表达式选择与解释:
-E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)
-F, --fixed-strings PATTERN 是一组由断行符分隔的定长字符串。
-G, --basic-regexp PATTERN 是一个基本正则表达式(缩写为 BRE)
-P, --perl-regexp PATTERN 是一个 Perl 正则表达式
-e, --regexp=PATTERN 用 PATTERN 来进行匹配操作
-f, --file=FILE 从 FILE 中取得 PATTERN
-i, --ignore-case 忽略大小写
-w, --word-regexp 强制 PATTERN 仅完全匹配字词
-x, --line-regexp 强制 PATTERN 仅完全匹配一行
-z, --null-data 一个 0 字节的数据行,但不是空行

Miscellaneous:
-s, --no-messages suppress error messages
-v, --invert-match select non-matching lines
-V, --version display version information and exit
–help display this help text and exit

输出控制:
-m, --max-count=NUM NUM 次匹配后停止
-b, --byte-offset 输出的同时打印字节偏移
-n, --line-number 输出的同时打印行号
–line-buffered 每行输出清空
-H, --with-filename 为每一匹配项打印文件名
-h, --no-filename 输出时不显示文件名前缀
–label=LABEL 将LABEL 作为标准输入文件名前缀
-o, --only-matching show only the part of a line matching PATTERN
-q, --quiet, --silent suppress all normal output
–binary-files=TYPE assume that binary files are TYPE;
TYPE is ‘binary’, ‘text’, or ‘without-match’
-a, --text equivalent to --binary-files=text
-I equivalent to --binary-files=without-match
-d, --directories=ACTION how to handle directories;
ACTION is ‘read’, ‘recurse’, or ‘skip’
-D, --devices=ACTION how to handle devices, FIFOs and sockets;
ACTION is ‘read’ or ‘skip’
-r, --recursive like --directories=recurse
-R, --dereference-recursive
likewise, but follow all symlinks
–include=FILE_PATTERN
search only files that match FILE_PATTERN
–exclude=FILE_PATTERN
skip files and directories matching FILE_PATTERN
–exclude-from=FILE skip files matching any file pattern from FILE
–exclude-dir=PATTERN directories that match PATTERN will be skipped.
-L, --files-without-match print only names of FILEs containing no match
-l, --files-with-matches print only names of FILEs containing matches
-c, --count print only a count of matching lines per FILE
-T, --initial-tab make tabs line up (if needed)
-Z, --null print 0 byte after FILE name

文件控制:
-B, --before-context=NUM 打印以文本起始的NUM 行
-A, --after-context=NUM 打印以文本结尾的NUM 行
-C, --context=NUM 打印输出文本NUM 行
-NUM same as --context=NUM
–group-separator=SEP use SEP as a group separator
–no-group-separator use empty string as a group separator
–color[=WHEN],
–colour[=WHEN] use markers to highlight the matching strings;
WHEN is ‘always’, ‘never’, or ‘auto’
-U, --binary do not strip CR characters at EOL (MSDOS/Windows)
-u, --unix-byte-offsets report offsets as if CRs were not there
(MSDOS/Windows)

‘egrep’即‘grep -E’。‘fgrep’即‘grep -F’。
直接使用‘egrep’或是‘fgrep’均已不可行了。
若FILE 为 -,将读取标准输入。不带FILE,读取当前目录,除非命令行中指定了-r 选项。
如果少于两个FILE 参数,就要默认使用-h 参数。
如果有任意行被匹配,那退出状态为 0,否则为 1;
如果有错误产生,且未指定 -q 参数,那退出状态为 2。

  • grep 搜索内容 文件名: 在指定文本搜索指定内容,若找到,则返回内容行
    • 例如:grep username T1.txt
  • grep -n 搜索内容 文件名: 在指定文本搜索指定内容,若找到,则返回内容行及行号。
    • 例如:grep -n username T1.txt
  • grep -v 搜索内容 文件名: 在指定文本反向搜索指定内容,打印不包含指定内容的行。
    • 例如:grep -v username T1.txt
  • grep ^搜索内容 文件名:在指定文本搜索以指定内容开头的行。
    • 例如:grep ^’#’ /etc/services
  • grep 搜索内容$ 文件名:在指定文本搜索以指定内容结束的行。
    • 例如:grep s$ /etc/services
  • grep -i 搜索内容 文件名:在指定文本搜索以指定内容结束的行,指定内容不区分大小写
    • 例如:grep -i abc T1.txt

echo 命令:

  • echo 输入内容:回显输入内容,把输入的内容输出到屏幕
    • 例如 : echo sdasda
  • echo 输入内容 > 文本文件名:把输入内容,打印到指定文件。若指定文件已经存在则会覆盖重新里面的内容;若指定文件不存在,则会创建新文件。
    • 例如:echo hello world > t1.txt
  • echo 输入内容 >> 文本文件名:把输入内容,追加到指定文件。若指定文件已经存在则会追加到里面的内容的后面;若指定文件不存在,则会创建新文件。
    • 例如:echo hello world >> t1.txt
  • 指令获取的内容 > 文本文件名:把使用指令获取的文本覆盖到指定文件。只要前面的指令有返回结果都可以覆盖到指定文件中。
    • grep -i abc T1.txt > t11.txt
    • ls > t11.txt
  • 指令获取的内容 >> 文本文件名:把使用指令获取的文本追加到指定文件。只要前面的指令有返回结果都可以追加到指定文件中。
    • grep -i abc T1.txt >> t11.txt
    • ls >> t11.txt

管道:(|)

  • 指令1获取内容 | 指令2没有输入:把指令1获取的输出内容作为指令2的输入。
    • 例如:ls -lh | grep t11
      • 把ls -lh获取到的输出内容作为grep t11 的输入内容,
        • 比如ls -lh获取到存放到临时文件ttt.txt , ls -lh > ttt.txt
          • -rw-rw-r–. 1 86god 86god 617 5月 22 11:04 t11.txt
            -rw-rw-r–. 1 86god 86god 12 5月 22 10:55 t1.txt
            -rw-rw-r–. 1 86god 86god 1.2K 5月 22 10:46 T1.txt
        • 则会作为 grep t11 的输入:grep t11 ttt.txt
          • grep t11 ttt.txt
    • 例如:grep -v ^’#’ /etc/services | more
      • 把获取的内容以分页的形式呈现
    • 例如:grep -v ^’#’ /etc/services | grep update
      • 把获取的内容进行筛选

ln 命令:(软链接)

  • ln 文件路经文件名称1 文件路经文件名称2:把文件1在文件2的位置创建软链接,类似于快捷方式。两个文件的内容是互通的。
    • 例如:ln bb/test.txt test_softLink
      • 在当前目录创建bb/test.txt的软链接

vim命令:

  • vim 文件:用编辑器打开文本文档
    • 例如:vim /etc/passwd
      • 查看密码文档

su 命令:

  • su 用户名:切换到指定用户,当前用户会挂起
    • 例如:su user1
      • 切换到用户 user1
  • su - 用户名:切换到指定用户,并切换到home/用户 目录,相当于登录,会有上次登录时间的提醒,当前用户会挂起
    • 例如:su - user1
      • 切换到用户 user1,并将当前路径切换至/home/user1

exit 命令:

  • exit:退出切换的用户,唤醒当前用户
    • ctrl + D 可以达到相同的效果

sudo 命令:

  • sudo 指令命令:利用超管身份运行命令
    • 例如:sudo useradd user1
      • 利用超管身份添加用户
    • 例如:sudo passwd user1
      • 利用超管身份修改用户user1 密码

使用sudo命令,若是出现“不在sudoers文件中,此事将被报告”的问题,

参考这篇文章解决:https://zhuanlan.zhihu.com/p/143388819

useradd 命令:

  • useradd 用户名:添加用户
    • 例如:useradd user1
      • 添加用户user1(一般超管才有这权限)
  • useradd -m 用户名:添加用户并在home文件夹创建
    • 例如:useradd -m user1(一般超管才有这权限)
      • 添加用户user1并在home文件夹创建
  • useradd -g 组名 用户名:添加用户并且添加到指定分组
    • 例如:sudo useradd -g3 user4
      • 添加用户user4到g3分组下,g3是组名

usermod 命令:

  • usermod -l 新用户名 原用户名:修改用户名
    • 例如:usermod -l 88god user2
      • 将user2用户名改为88god
  • usermod -g 组名 用户名:把用户移动到另一个分组
    • 例如:usermod -g user2 user3
      • 将user3的移动到user2分组
  • usermod -G 组1,组2…… 用户名:给用户修改附加组
    • 例如:usermod -G user2,86god user3
      • 把user3的附加组修改为user2和86god
  • usermod -s shell路径 用户名:给用户修改shell
    • 例如:usermod -s /bin/sh user3
      • 把user3的shell改为/bin/sh

userdel 命令:

  • userdel 用户名:删除用户
    • 例如:userdel user3
      • 删除用户user3
  • userdel -r 用户名:删除用户并删除该home目录
    • 例如:userdel -r user3
      • 删除用户user3并删除home目录
  • userdel -f 用户名:强制删除用户
    • 例如:userdel -f user3
      • 强制删除用户user3

passwd 命令:

  • passwd 用户名:修改用户密码

    • 例如:passwd user1 修改用户user1 密码(一般超管才有这权限)
  • passwd :设置当前用户密码

id 命令:

  • id 用户名:查看用户信息,包括分组编号、id编号和环境
    • 例如:id user1
      • 查看user1的信息,包括分组编号(gid)、id编号(uid)和环境

groupadd 命令:

  • groupadd 组名:添加创建分组
    • 例如: groupadd g1
      • 创建分组g1,通过cat /etc/group 可查看所有分组

groupmod 命令:

  • groupmod -n 新组名 原组名:修改组名
    • 例如:groupmod -n gnewName g1
      • 将 g1分组的名字改为 gnewName

groupdel 命令:

  • groupdel 组名:删除分组
    • 例如:groupdel gnewName
      • 删除gnewName 分组

chsh 命令:

  • chsh -l :查看所有的shell
    • 相当于:cat /etc/shells
  • chsh 用户名:修改用户的shell
    • 例如:chsh user3
      • 会让输入修改后的shell路径

/etc/group 文件:

  • 配置当前系统的用户组
    • 组名
    • 组密码标志
    • GID
    • 组中的附加用户

/etc/passwd 文件:

  • 配置当前用户的,以及用户的密码,密码在影子文件里
    • 用户名
    • 密码标志
    • UID
    • GID
    • 用户全名
    • 家目录
    • 使用的shell

/etc/shadow 文件:

  • 用户密码的影子文件,里面存放加密后的密码

/etc/gshadow 文件:

  • 用户分组密码的影子文件,里面存放加密后的用户分组密码

whoami 命令:

  • 查询目前终端登录的用户

who 命令:

  • 查询目前计算机登录的用户

ll 命令:

  • 查看当前目录文件以及权限
    • 权限:一共10位
      • 第一位:d或者-,d代表文件夹,-代表二进制文件
      • 后9位分为三组:rwx,r——可读,w——可写,x——可执行
        • 2-4位:文件所属用户的权限
        • 5-7位:用户组的权限
          会让输入修改后的shell路径

/etc/group 文件:

  • 配置当前系统的用户组
    • 组名
    • 组密码标志
    • GID
    • 组中的附加用户

/etc/passwd 文件:

  • 配置当前用户的,以及用户的密码,密码在影子文件里
    • 用户名
    • 密码标志
    • UID
    • GID
    • 用户全名
    • 家目录
    • 使用的shell

/etc/shadow 文件:

  • 用户密码的影子文件,里面存放加密后的密码

/etc/gshadow 文件:

  • 用户分组密码的影子文件,里面存放加密后的用户分组密码

whoami 命令:

  • 查询目前终端登录的用户

who 命令:

  • 查询目前计算机登录的用户

ll 命令:

  • 查看当前目录文件以及权限
    • 权限:一共10位
      • 第一位:d或者-,d代表文件夹,-代表二进制文件
      • 后9位分为三组:rwx,r——可读,w——可写,x——可执行
        • 2-4位:文件所属用户的权限
        • 5-7位:用户组的权限
        • 8-10位:其他用户的权限

你可能感兴趣的:(Linux,系统学习笔记)