基本shell命令
1. shell命令使用指南: http://man.linuxde.net/
2. man :查看命令符的手册
man -a printf:查看所有printf的手册页
man -k printf:按照正则表达式的方式查找手册页
man文件一般位于/usr/share/man/
1 Executable programs or shell commands 2 System calls (functions provided by the kernel) 3 Library calls (functions within program libraries) 4 Special files (usually found in /dev) 5 File formats and conventions eg /etc/passwd 6 Games 7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7) 8 System administration commands (usually only for root) 9 Kernel routines [Non standard]
3. 环境变量:
- 相关命令
```
env: 查看当前环境变量
export : export PATH=~/bin:\\$PATH,修改环境变量。
unset $var : 取消环境变量。
```
- linux启动时加载环境变量的顺序:
/etc/environment; /etc/profile,/etc/bash.bashrc,/etc/profile.d下的所有的.sh文件;~/.profile(或~/.bash_profile或~/.bash_login), ~/.bashrc(在运行bash的时候运行), ~/.bash_aliases, /etc/bash_completion。
- /etc/enviroment 在系统一些核心组件加载完成后最先调用,很多外围的程序都依赖它运行,如果这里面出现了什么问 题,那么很可能导致系统无法正常启动。相当于是系统级别的公共环境变量
- /etc/profile 在启动登陆环境时被首先执行。相当于是应用级的公共环境变量
- ~/.profile在shell被打开时,次于/etc/profile执行。相当于是应用级的用户环境变量
- login shell:用户通过终端登录凭借用户名和密码登录控制台的动作是login shell,也就是说最终会调用login命令的操作都可称之为login shell。它加载的环境变量是 /etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profile。
- non-login shell:用户在图形界面启动一个terminal,或者执行/bin/bash,/usr/bin/bash都属于non-login shell,它加载的环境变量是~/.bashrc
4. shell是个很强大的工具,很多软件及操作系统都有。
- 基本操作
```
sh /bin/ls: "开启一个子进程,执行/bin/ls";
source:" 在当前bash环境下读取并执行FileName中的命令,. 与他的作用一样";
cat /etc : "显示文件的内容";
cd /etc: "切换目录";
cd - : "移动到上一次的目录中";
pushd .: "将当前目录添加到栈中";
popd : "切换当前目录到到栈顶的目录";
| :"管道,可以将多个命令的输入输出连接起来,如:cat file|less";
> :"重定向,删除重定向文件原来的内容,如:ls -l > ls.txt";
>> :"重定向,不删除重定向原文件的内容,如:ls -l >> ls.txt";
$:"变量引用符";
sudo !!:"使用root权限执行上一条命令";
^one^two: "将one替换为two,执行上一条命令";
less\more:"分页显示,如:ls -l|less";
shutdown now\init 0: "关机";
reboot\nit 6: "重启"
```
- 复制文件
```
cp -R /etc/network/ .:将/etc/network/文件夹下的所有文件拷贝到当前目录
```
- 移动与重命名
```
mv /home/drh/test ./testfil:将test文件或者文件夹移动到当前目录,并且重命名为testfile
```
- 删除文件:
```
rm -rf dir;删除文件夹
rm -rf !(keep1 | keep2);删除除keep1和keep2之外的所有文件和文件夹。
```
- 文件压缩解压
```
tar -jcpvf testtar.tar.bz2 testtar/
tar -xvf testtar.tar.bz2
```
- 修改文件权限
```
chmod a+x drh
chown -R drh:drh 777 dir
umask: 023
文件:666-023=643 X
目录:777-023=754
```
- 文件查找
```
find: 最强大,什么都能查,最一般的用法是:find /etc -name network
which: 只能查可执行文件
whereis: 只能查二进制文件、说明文档,源文件等
locate: 能查所以,但跟whereis一样都是查数据库里的内容。
which: 只能寻找执行文件 ,并在PATH变量里面寻找。
whereis: 从linux文件数据库(/var/lib/slocate/slocate.db)寻找,所以有可能找到刚刚删除,或者没有发现新建的文件。
find是直接在硬盘上搜寻,功能强大,但耗硬盘,一般不要用.
```
- 文本统计与排序
```
wc : 文本统计
sort : 文本排序
```
- 文件传输与下载
```
wget URL : 网页下载
lftp URL : FTP下载
scp file root@10.10.10.1:/root :文件传输
nc -l -p 4444 > filename; nc 10.10.10.220 4444 < filename
```
- 磁盘操作
```
dd if=/dev/zero of=testfile bs=100M count=1
df filename
parted -l
mount -t ext4 /dev/sda2 /mnt/lfs
```
- 日期和时间
```
date
hwclock
cal
```
- 进入终端CTRL+ALT+<F1-F6>
5. 字符串操作
- *grep*: grep "要搜索的字段" 搜索的文件或路径:可以有多个文件或者路径
-r 迭代搜索当前路径或者指定路径的所有子文件夹的文件
-n 显示搜索到的文本的行号
```
grep -nr main\( ./*
grep -nr main\(
```
- *sed*:
- *awk*:
6. 进程管理
```
strace 跟踪命令或者进程的系统调用 -p 指定要追踪的进程 -c 输出系统调用的统计信息;还可以用来探测锁竞争,并定位IO问题。
iotop 像进程的top 命令一样查看IO ;
lsof 列出所有已打开的文件
ipcs ipcrm :进程间通信管理命令
size :查看程序的正文段、数据段和bss段的总长度
ulimit -a : 查看和设置用户进程的限制
```
7. 卸载软件:
1. 查看系统中安装的相应的软件包 rpm -q -a | grep 'name'
2. 卸载相应的软件:rpm -e [package name]
8. grub2:系统启动管理工具
- 添加启动项:grub-mkconfig -o /boot/grub/grub.cfg;
- 调整启动项的顺序:修改/boot/grub2/grub.cfg文件中的menuentry的顺序;
- 将linux修改为命令行启动:
```
bash: vi /etc/default/grub
GRUB_CMDLINE_LINUX="text"
bash: update-grub 1
```
浙公网安备 33010602011771号