[Linux]我在Linux世界觉醒了指令系统
一、用户
添加新用户 adduser <用户名>
更改密码 passwd <用户名>
ssh登录 ssh <用户名>@<公网IP>
显示当前用户 whoami
删除用户 userdel -r <用户名>
清屏 clear
登出 logout
普通用户不能访问root用户和其他普通用户的家目录,root用户可以访问并操作所有用户的家目录
二、ls <选项> <目录或文件>
(list)
1.选项
(1)-a
列出当前目录下所有文件,包括以 ' . ' 开头的隐藏文件(all)
(2)-l
列出文件的详细信息
ls -a -l / ll -a / ls -al / ls -la
以 ' . ' 开头的是隐藏目录或隐藏文件,一般不可见,用 -a 选项才可见
目录名/文件名前的都是该目录/文件的属性,d 开头表示是目录类型,- 表示是普通文件类型
(3)-d
列出当前目录本身
(4)-h
以K、M、G等显示文件大小
2.目录或文件
ls -a /root / ll /root 显示指定目录下的内容
/root/test/test.c 这是一个绝对路径,第一个 ' / ' 表示根目录
./test/test.c / ../root/test/test.c 这是相对路径,相对于root目录的test.c的路径
. 表示当前目录,.. 表示上级目录
根目录的上级目录是根目录自己
三、pwd
显示用户当前所在的目录
四、cd <目录名>
改变当前目录
Windows系统中,路径分隔符是 ' \ ' 反斜杠
Linux系统中,路径分隔符是 ' / ' 斜杠
cd .. 可以回到上级目录
cd - 回到cd指令上一次跳转到的目录
cd ~ 回到当前用户的家目录
五、touch <选项> <文件名>
更改目录或文件的日期时间,包括存取时间和更改时间,或者新建一个文件。
六、mkdir <文件名>
新建一个目录
mkdir -p ./t1/t2/t3/t4 -p 选项可以新建一串目录
七、rmdir <目录名>
删除空目录
八、rm <选项> <目录或文件>
1.选项
(1)-r
递归式删除
(2)-f
强制删除(不问是否确定删除)
九、通配符*
* 表示任意内容
十、一些热键
1.tab
连按两次 tab 键可以匹配所有可能指令,当只有一个可能指令时会自动补齐
tab 键还可以补齐路径
什么都没输入时连按 tab 键,会显示出所有指令
2.^C
强制退出
3.^R
历史指令记录,根据之后输入的字符查找符合的历史命令
把光标移到命令上会复制一份命令到命令行,可以修改再次执行
4.^D
代表EOF,也可以代表 exit
十一、man
1.man
用户手册
2. man <指令>
查询指令说明
3.man <3> <C语言函数>
查询C语言函数说明
一共有 9 个手册
十二、gcc <.c文件> -o <程序名>
十三、cp <选项> <源文件> <新文件>
拷贝文件
拷贝目录加 -r
强制覆盖已有目录或文件加 -f (root用户仍然会询问是否覆盖)
当<新文件>已经存在时,会覆盖<新文件>
十四、mv
1.mv <原文件名> <新文件名> 重命名,若新文件名已存在,会询问是否覆盖,-f 强制覆盖
2.mv <目录或文件> <新路径> 把目录或文件移动到新路径
3.mv <目录或文件> <路径/新文件名> 移动并重命名
十五、cat [选项] <文件名> / tac
查看文件内容
tac 逆序打印文件内容
cat 后如果什么都不加,效果是输入什么就输出什么,^D退出,^C强制退出
选项:
-n:显示行号
-s:把多个空行只显示为一个空行
-b:只对非空行显示行号
十六、echo / >
echo "sss" 向显示器文件写入 "sss"
echo "sss" > test.txt 创建并写入 / 清空文件原内容并重新写入
十七、重定向符号
> 输出重定向:> test.txt test.txt内容被清空
>> 追加重定向:printf "aaaa\n" >> test.txt 在文件末尾追加内容
< 输入重定向:cat < test.c 从 test.c 文件中读取数据(默认是从键盘文件读取的)
十八、more、less
more log.txt 显示文件内容
回车向下滚动 ↑ ↓ 翻页 q 退出
less log.txt 显示文件内容
回车向下滚动 ↑ ↓ 上下滚动 q 退出
/999 在文件中向下搜索 999 ,按 n 重复前一个搜索,按 N 反向重复前一个搜索
?999 向上搜索
-i 忽略搜索时的大小写 -n 显示行号
十九、head、tail
head log.txt / tail log.txt 显示前 / 后 10 行内容
head -n30 log.txt 显示前30行,n可省略:head -50 log.txt
显示文件的第5000行到5020行的内容:head -5020 log.txt | tail -21
| 就是管道,管道就是文件
二十、date <选项> <格式>
1.选项
(1)-s
设置当前时间,需要root权限
date -s 19990101 设置时间为 1999 年 01 月 01 日 00:00:00
date -s 10:10:10 设置时间为 10:10:10,日期不变
date -s "19990101 10:10:10" 设置时间为 1999 年 01 月 01 日 10:10:10
date -s "1999-01-01 10:10:10" 设置时间为 1999 年 01 月 01 日 10:10:10
date -s "10:10:10 19990101" 设置时间为 1999 年 01 月 01 日 10:10:10
date -s "10:10:10 1999-01-01" 设置时间为 1999 年 01 月 01 日 10:10:10
(2)-d
转换时间戳为正常时间(北京时间GMT+8)
2.格式
%H 小时 %M 分钟 %S 秒 %X 相当于 %H:%M:%S
%Y 年 %m 月 %d 日 %F 相当于 %Y-%m-%d
%s 时间戳
二十一、cal
cal 显示当月日历
cal 2020 显示 2020 年日历
cal -3 显示当年当月,以及当月前后月,共三个月的日历
二十二、find、which
1.find
find <路径> -name <文件名> 在指定路径下查找所有严格符合名称的文件
find <路径> -name <文件名1> -o <文件名2> 查找符合文件名1或文件名2的文件
2.which
which <指令名> 查找指令
二十三、alias
给指令起别名 alias ll="ls -a -l"
这个别名是内存级的,重新登录后会失效
指令选项 --color=auto
二十四、grep <选项> <字符串> <文件>
在文件中搜索字符串,并将找到的行打印出来
-i:忽略字符串的大小写
-n:显示行号
-v:反向选择,打印不含字符串的行
二十五、zip、unzip
压缩文件 / 解压压缩包 .zip
zip <压缩包名> <源目录或文件>
zip -r <压缩包名> <源目录或文件> 打包文件时加 r,递归式打包
unzip <压缩包名>
unzip <压缩包名> -d <路径> 把压缩包解压到指定路径下
二十六、tar
-c:起始压缩指令 -x:起始解压指令 -t:查看 tarfile 里面的文件
-z:用 gzip 压缩 -j:用 bzip2 压缩 -v:显示 压缩 / 解压 过程
-f:指定压缩文件名,之后不可再附加其他参数,必须跟上压缩文件名
-C:解压到指定目录
tar -xvzf log.tgz -C <路径> 解压到指定路径下
二十七、bc
计算器 输入 quit 或 ^D 退出
echo "1+2+3+4+5" | bc 可以把计算交给bc
二十八、uname [选项]
显示电脑和操作系统的信息
-a:内核名称 主机名称 内核版本号 内核版本 硬件名 处理器类型 硬件平台类型 操作系统名称
二十九、shutdown [选项]
-h:将系统的服务停掉后,立即关机
-r:将系统的服务停掉后,重新启动
-t:后面加秒数,表示几秒后关机