# 常见指令
#### 创建文件/文件夹
```bash
创建以 时间 命名文件
touch /logs/`date +%Y-%m-%d_%d_%H:%M`.log
touch "$(date +%Y-%m-%d_%H:%M:%S.TXT)
创建文件
touch hello.c
创建文件夹
mkdir source
```
#### 查看全路径
```bash
pwd [ -L | -P ] 显示整个路径名
```
## 快捷键
[详情](https://www.zhihu.com/question/485737733/answer/2849951038)
```bash
Ctrl + A:将光标移动到命令行的开头。这个快捷键的原理是发送一个控制序列到终端,告诉终端将光标移动到行首。
Ctrl + E:将光标移动到命令行的末尾。原理与Ctrl + A类似,发送一个控制序列到终端,将光标移动到行尾。
Ctrl + K:删除从光标位置到行尾的内容。这个快捷键的原理是发送一个控制序列到终端,告诉终端删除当前光标位置到行尾的字符。
Ctrl + C:中断当前正在运行的程序或命令。这个快捷键的原理是发送一个中断信号(SIGINT)给前台进程组,通常是用来停止当前正在执行的命令。
Ctrl + D:在命令行中输入EOF(End of File)
```
#### 后台执行
```bash
& //末尾加上,表示将这个任务放到后台去执行
fg %[PID] //将后台进程放到前台运行
bg %[PID] //任务存在时,将任务放到后台运行
ctrl+z //将前台运行的进程暂停,用fg/bg继续运行
```
#### 查看文件/目录
```bash
ls [option选项] [file文件或目录]
-l:使用长格式列出文件及目录信息
-a:显示目录下的所有文件,包括所有隐藏文件
-r:以相反次序排序
-i:显示 inode 节点信息
-h:以人类刻度的信息显示文件或目录大小,如 1KB、512MB、 2GB 等等
-S:根据文件大小排序
-R:递归列出所有子目录
stat [option选项] [file文件或目录]
-f:显示文件所在分区的文件系统状态而非文件状态
-t:使用简洁格式输出
-c:使用指定格式代替默认格式
```
#### 查看文件目录大小
```bash
du -sh 查看当前目录下文件大小总和
du -sh /* 查看Linux目录大小
du -sh /home/* 查看当前目录下文件大小
du -h -x --max-depth=1 查看当前目录下文件大小
```
#### 查看服务器磁盘情况
```bash
- df 查看磁盘占用
- df -lh 查看更详细的磁盘占用
- df -ah 查看全部磁盘占用
```
#### 编辑文档/文件
- 编辑
```bash
vi 'filename' 编辑 显示文本单一,阅读性低
vim 'filename' 编辑 显示全面,有字体区别
/'关键字' 按enter关键字查找
wq! 保存退出;
q! 不保存退出;
```
#### 移动位置/重命名
```bash
mv sl-2014-server-customized.jar sl-2014-server-customized_23_7_27.jar
```
#### 查看文件内容
- cat命令
语法 : cat [ 选项 ][ 文件 ]
功能 : 查看目标文件的内容
常用选项 :
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行

- tac 命令
功能:与cat类似查看文件内容但是是反向输出

- more指令
语法 : more [ 选项 ][ 文件 ]
功能 : more 命令,功能类似 cat
常用选项 :
-n 对输出的所有行编号
q 退出 more

- less指令(重要)
less 工具也是对文件或其它输出进行分页显示的工具,应该说是 linux 正统查看文件内容的工具,功能极其强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法: less [ 参数 ] 文件
功能 :
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前
不会加载整个文件。
选项 :
-i 忽略搜索时的大小写
-N 显示每行的行号
/ 字符串:向下搜索 “ 字符串 ” 的功能
? 字符串:向上搜索 “ 字符串 ” 的功能


- head指令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块, head 用来显示档案的
开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
语法: head [ 参数 ]... [ 文件 ]...
功能 :
head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。
默认打印10行,可自定义


- tail指令
功能:显示文件的末尾内容,默认显示10行
选项:
-n<行数>: 显示文件的尾部n行内容
-<行数>f: 循环读取

#### 进程管理
- ps指令 [详情](https://www.runoob.com/linux/linux-comm-ps.html)
```bash
ps -A //显示进程信息
ps -aux //BSD方式显示所有包含其他使用者的进程
ps -ef //System V方式列出全部进程的全部信息 显示所有命令,连带命令行
ps -ef | grep 进程关键字 //显示某进程
ps -u root //显示root进程用户信息
jobs //显示当前终端正在运行的进程
```
#### 删除命令
```bash
rm file.txt 删除指定文件
rm -f file.txt 强制删除文件而无需确认
rm -r directory/ 删除目录及其内容
多功能:
find . -type f -delete或find . -type f -exec rm -f {} \; 用find命令查找普通文件并删除or用find命令的处理动作将其删除
find . -type f | xargs rm -f 用于参数列表过长;要删除的文件太多
rm-f `find . -type f` 删除全部普通文件
for delete in `ls -l`;do rm -f * ;done 用for循环语句删除当前目录下的所有类型的文件
PS..可替换为指定目录,删除指定目录下的文件
```
#### Crontab定时任务
[教程](https://www.runoob.com/linux/linux-comm-crontab.html)
[常见指令](https://blog.csdn.net/m0_49605975/article/details/120701771)
```bash
* * * * * command
分 时 日 月 周 命令
```
#### 文件名
```bash
drwxr-xr-x
d:d是目录文件,l是链接文件,-是普通文件,p是管道
rwx:root :r 是可读,w 是可写,x 是可执行,rwx 意思是可读可写可执行
r-x:一般用户(用户组):r-x 是可读可执行不可写。
r-x第三个其他用户,r-x 是可读可执行不可写。
```


#### 看门狗
[详情1](https://www.xjx100.cn/news/327376.html?action=onClick)
[详情2](https://baijiahao.baidu.com/s?id=1767191816713818731&wfr=spider&for=pc)
```bash
[root@slt-lt-paas11 sl_server]# supervisorctl status //查看服务状态
[root@slt-lt-paas11 sl_server]# supervisorctl restart slserver //服务重启
supervisor软件名 ctl控制指令
```
#### nohup
```bash
nohup java -jar iot-kafka-server-1.0_7.28_back.jar &
```
#### 查看日志
```bash
[root@slt-lt-paas11 sl_server]# tail -100f logs/server-customized/error.log
```
#### 定时任务指令地址
```bash
/var/spool/cron
```
#### 软件安装
[安装包介绍](http://ddrv.cn/a/728377)
```bash
- rpm -ivh [包名].rpm rpm包
yum方式安装: yum -y install(yum并不是一种包,而是安装包的软件)
rpm -ivh
- dpkg -i [包名].deb deb包
apt方式安装:apt-cache search [包名]
apt-get install [包名].version
- tar.gz源代码包
tar -xzvf [包名].tar.gz //一般会生成一个[包名]目录
cd [包名]
./configure
make
make install
- tar.bz2源代码包
tar -xjvf [包名].tar.bz2 //一般会生成一个[包名]目录
cd [包名]
./configure
make
make install
- tar -xzvf 解压.tar.gz或.tar.bz2压缩文件
tar:是一个文件打包工具
x:表示解压
z:表示使用gzip进行压缩
v:表示显示详细的解压过程
f:表示指定待解压的文件或者目录
这个命令的作用是解压.tar.gz或.tar.bz2压缩文件,其中:
.tar.gz表示文件使用tar打包,并使用gzip进行压缩
.tar.bz2表示文件使用tar打包,并使用bzip2进行压缩
```
#### 下载
```bash
curl是一个利用URL规则在命令行下工作的文件传输工具(下载工具),支持文件的上传和下载
curl [option] [url]
-A/--user-agent <string> 设置用户代理发送给服务器
-b/--cookie <name=string/file> cookie字符串或文件读取位置
-c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
-C/--continue-at <offset> 断点续转
-D/--dump-header <file> 把header信息写入到该文件中
-e/--referer 来源网址
-f/--fail 连接失败时不显示http错误
-F 参数用来向服务器上传二进制文件。
-G 参数用来构造 URL 的查询字符串。
-H 参数添加 HTTP 请求的标头。
-i 参数打印出服务器回应的 HTTP 标头。
-k 参数指定跳过 SSL 检测
-L HTTP请求跟随服务器的重定向。默认不跟随重定向。
-o/--output 把输出写到该文件中
-O/--remote-name 把输出写到该文件中,保留远程文件的文件名
-r/--range <range> 索来自HTTP/1.1或FTP服务器字节范围
-s/--silent 静音模式。不输出任何东西
-T/--upload-file <file> 上传文件
-u/--user <user[:password]> 设置服务器的用户和密码
-w/--write-out [format] 什么输出完成后
-x/--proxy <host[:port]> 在给定的端口上使用HTTP代理
-#/--progress-bar 进度条显示当前的传送状态
```
#### 查看负载状态
```bash
- top
- w
- uptime
```
## 权限修改
```bash
chmod [选项] [模式] 文件或目录
可以使用数字或符号两种方式指定权限
命令参数
u:表示所有者。
g:表示所属组。
o:表示其他用户。
a:表示所有用户。
r:表示读权限。
w:表示写权限。
x:表示执行权限。
+:表示增加权限。
-:表示减少权限。
=:表示赋予指定权限。
r=4,w=2,x=1
rwx:4+2+1=7
rw-:4+2=6
r-x:4+1=7。
命令示例
修改文件的权限为读、写、执行权限:
chmod 777 file.txt
修改文件的权限为只有所有者可读写,其他用户无权限:
chmod 600 file.txt
修改目录的权限为读、写权限:
chmod 755 directory
修改文件的所有者和所属组:
chmod user:group file.txt
```
## 参数
```bash
df -h 硬盘
free -h 内存
lscpu cpu
ps -ef 进程服务
```
## 切换用户
```bash
su(切换用户):用户可以切换到其他用户的账户,并获得该账户的权限。不会记录用户操作。
sudo(以超级用户身份执行命令):sudo命令允许普通用户以其自己的密码执行特权操作,而无需知道超级用户的密码。会记录用户操作。
```
## 关机
```bash
reboot //重启
shutdown -h now //定时关机,默认1分钟 now:现在(规划时间)
shutdown -k now ‘this system will reboot’ //提示关机,实际并未关机,假关机
poweroff //立即关机
```