- 短格式(单个字符)
-- 长格式(多个字符)
- 可多个短格式字符写在一起(-al)
Tab 自动补齐
Ctrl+U 清空至行首
Ctrl+L 清屏
--help 适用于大多数命令
-man 阅读手册页
q 退出阅读环境
/ 键查找内容
文件系统命令1
- Linux文件目录呈树形结构:最上层是根目录,用 / 表示
- pwd (printing working directory):显示当前工作目录的绝对路径
- cd (change directory):更改工作目录路径 【“.” 代表当前所在目录; “..” 代表当前目录位置的上一层目录; “~” 表示 home (用户专属目录) 】
- mkdir:创建目录
- ls(list): 列出目录和文件信息 【-l:详细信息;-a:显示当前目录中的全部(包含隐藏)文件;-d:查看目录属性;-t:按照创建时间顺序列出文件;-h:与-l一起以易读格式输出文件大小;-1:每个项显示在一行上】
- rmdir (remove directory): 删除空目录
- touch: 创建空文件、更改文件时间
- cp /xx目录/yy文件名 :复制文件或目录到xx目录下并命名为yy 【-a :复制目录时使用,保留所有内容】
- (eg:cp -a /etc/yum/ yum:拷贝目录 /etc/yum/ 到当前目录下的yum)
- mv(move)+ 文件名1 + 文件名2 :将文件1或目录1改名或移动到文件2或目录2【-f 强制删除,-r 递归删除目录,一般用 -rf 删除目录】
文件系统命令2
- 通配符:
?:任意一个字符
* :任意字符
[ ]:相对于“或 ”
- :范围(a-z表示a到z的所有字符)
eg:ls [acd] * .txt :列出有a/c/d 的文件(*可以是0个)
- Vim编辑器(Vi Improved):
(PS:一个Vim学习游戏网站:https://vim-adventures.com/ )
vim + 文件名(有后缀):可编写并保存代码
h j k l 左下上右
w 跳到下一个单词
e 跳到下一个单词尾部
b 跳到上一个单词(标点符号不包含在单词内)
B 跳到上一个单词(标点符号也包含在单词内)
x 删除光标所在字符
- 插入模式
i 插入
Esc 退出插入
- 底部模式:
:w(:w /root/rewfile:另存为其他文件) 保存修改
:q 退出
:q ! 强制退出
:e ~/instal.log 打开新文件进行编辑
:s/old/new 将当前行中查找到的第一个字符“old”串替换为“new”
:s/old/new/g 将当前行中查找到的所有字符串“old”替换为“new”
:# , # s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
:%s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new"
:s/old/new/c 在替换命令末尾加入c命令,将对每个替换动作,提示用户进行确认
- 命令模式:
Ctrl+F 向下翻动一整页
Ctrl+B 向上翻动一整页
数字‘0’ 跳转至行首
“$”键 跳转至行尾
gg 跳转到文件首行
G 跳转到文件末尾行
#gg 跳转到文件的第#行
: set nu 在编辑器中显示行号
: set nonu 取消编辑器中的行号
word 从上而下在文件中查找字符串“word”
n 定位到下一个匹配的被查找字符串
N 定位上一个匹配的被查找字符串
u 按一次取消最近的一次操作,多次重复按则恢复已进行的多步操作
文件系统命令3
find XXX :查找文件或目录【-name<文件名>匹配文件的名称 -type<文件类型> 匹配文件类型查找( f 表示普通文件,d 表示目录) -size n[ckMG] 匹配文件的大小】
which find XXX :搜索二进制文件、可执行文件或者shell命令行的位置
cat(concatenate): 显示文件内容、连接文件内容
head -n +(数值行):显示指定文件的前若干行
tail -n +(数值行):查看文件末尾数据
grep XXX xx/xx/xx(globally search a regular expression and print):在xx/xx/xx以正则表达式进行全局查找包含XXX的行【-i 查找时忽略大小写 -n 显示行号 -r 递归搜索子目录 -v 反转查找,输出与查找条件不相符的行】
*.tar : 打包不压缩
【 -c 产生 .tar 打包文件 -v 列出打包解包的详细过程 -f 指定打包文件名称 -z以 .gz 格式压缩或解压打包文件 -J 以 .xz 格式压缩或解压打包文件 -j 以 .bz2 格式压缩或解压打包文件 -x 解包】
*.tar.gz、*.tar.bz2、*.tar.xz :以不同方式打包压缩
tar -czvf: 打包文件名.tar.gz源文件或目录
tar -cjvf: 打包文件名.tar.bz2源文件或目录
tar -cJvf :打包文件名.tar.xz源文件或目录
zip -r XXX.zip XXX: 打包文件XXX并命名为XXX.zip(-r表示递归打包目录)
tar -xzvf :解包文件名.tar.gz [-C 解包目录]
tar -xjvf :解包文件名.tar.bz2 [-C 解包目录]
tar -xJcf :解包文件名.tar.xz [-C 解包目录]
unzip XXX.zip :解包zip文件
ln -s A.txt B.txt :产生符号链接(建立快捷方式,可对文件或目录建立符号链接)
PS:符号链接原文件被删除时,链接文件将失效,若重新给一个同路径同名文件,链接文件又会恢复
硬链接:链接文件和被链接文件必须位于同一个文件系统中,两个文件具有相同的inode,删除哪个都互不影响,只是指定链接计数减少而已,不能建立指向目录的硬链接(但不同文件系统之间可以创建符号链接)
重定向
- 输入重定向:
用于改变一个命令的输入源,指输入可以不来自标准输入(键盘),而是来自一个指定的文件。
eg : python calc.py < input.txt :txt文件内的东西作为calc.py的输入)
- echo命令:
(回声、重复)用来显示一段文本
- 重定向标准输出 >(>>为追加)
eg: echo "XXX" > b.txt
- 重定向标准错误 2>(2>>为追加)(把错误信息打印到标准错误,而不是标准输出)
eg:ls /usr/log 2> b.txt
- 重定向标准输出、错误&>或2>&1(&>>XXX.log、 >> XXX.log > 2>&1为追加)
eg:ls -l a.txt b.txt &> f.txt
或者
ls -l a.txt b.txt > f.txt 2>&1
- 重定向到不同文件
eg: mkdir -v xxx1 xxx2 >output.log 2>error.log(mkdir -v 打印每次创建成功的目录)
管道
(可以把一系列命令连接起来,第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令)
grep:对输入的内容进行搜索(Ctrl+D 结束输入)
wc(word count):可以显示行数、单词数和字符数,可读取文件,也可以读取标准输入(Ctrl+D结束输入)
-l :仅显示多少行
-w :仅显示多少字(英文单词)
-m :多少字符
xargs(eXtended ARGuments):传递参数的一个过滤器,将输入中的换行、多个连续空格替换成单个空格
xargs默认执行的是xargs echo
echo可以替换成其他命令:xargs wc -l
-I(大写i):用来指定替代字符串,后续出现替代字符串的地方都用标准输入的内容替代,且对于标准输入的每一行,都会执行一次命令
eg: find /linux-5.9.1 -name *.conf | xargs -I {} echo {} .bak 查到特定文件,显示每个文件加上 .bak
find /linux-5.9.1 -name *.conf | xargs -I {} cp {} ./test 查找特定文件,并复制到指定目录
ls -l | xargs -I {} mv {} {}.bak 将当前所查文件重命名为原文件+.bak的文件
-
用户和权限管理
1、root(超级用户)
2、普通用户
3、组【无指定用户是哪个组时,linux会创建一个和该用户同名的组(私有组),也可以指定附加组(任意多个)】
su+用户名:切换用户(不加用户名时默认切换为root)
useradd:添加用户(root执行)
passwd+用户名:设置用户密码(root执行)
userdel -r +用户名:删除用户(root执行)
groupadd+组名:添加组(root执行)
usermod -a -G +组名 +用户名 :将用户添加到一个组(-G用于指定要将用户添加到哪个组,-a表示添加,不会覆盖原有组)
groupdel +组名:删除组
sudo -i :临时切换到root终端
sudo + 命令:普通用户可执行root命令,但需要在sudoers文件下赋予权限(在不知道root密码情况下使用)
chmod:root用户和文件目录所有者才可以更改文件目录的权限,chmod命令可以更改文件目录权限
chmod [-R] [ugoa] [+-=] [rwx] 文件或目录
eg:
sudo chmod o-r /flags
ps: bash -c 可以执行将指定的字符串作为命令执行