linux指令(2)
1)获取历史操作命令:
"!<history指令编号>”即可运行相应命令
[root@server1 ~]# history
..............
1011 uname -s
1012 uname -n
1013 uname -m
..............
1018 history
[root@server1 ~]# !1012
uname -n
server1
" !! " 是重新运行上一条命令的意思。例如: sudo !! (以su用户执行上一条命令)
2)cd命令:
cd 返回home目录
cd ~ 返回home目录
cd - 返回上次的目录
(~ 主目录
. 当前目录
.. 父目录)
3)login shell和startup的bash configuration file的加载顺序:
/etc/profile
然后按照下面的顺序,第一个被找到的文件将被调用,后续的即使存在也被跳过:
~/.bash_profile
~/.bash_login
~/.profile
接着.bashrc,和/etc/bashrc被调用。
例如:/etc/profile ==> .bash_profile ==> .bashrc ==> /etc/bashrc
注:/etc/profile.d (location of extra environment setup scripts)
4) 磁盘和文件系统:
4种路径:
1)物理磁盘;
2)逻辑磁盘;
3)逻辑磁盘映射出的挂载点有路径;
4)实际文件(夹)。
fdisk:输出设备的所有分区内容和操作分区(删除,新增)
lsblk: 查看的是block device,也就是逻辑磁盘大小。
mount [-fnrsvw] [-t fstype] [-o options] device mountpoint
df:查看的是file system, 也就是文件系统层的磁盘大小。
du:评估文件系统的磁盘使用量(常用在估计目录所占磁盘容量)
#fdisk -l
#df -i
#df -h
#df -x tmpfs -x devtmpfs
#df命令查看文件所在逻辑磁盘(分区)
df [-k] [-P|-t] [file...]
root@Ubuntu01:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 64G 0 disk
├─sda1 8:1 0 63.9G 0 part /
├─sda14 8:14 0 4M 0 part
└─sda15 8:15 0 106M 0 part /boot/efi
sdb 8:16 0 4G 0 disk
└─sdb1 8:17 0 4G 0 part /mnt
sdc 8:32 0 64G 0 disk
5) $()命令:
$(commond)
把命令中某个子命令替换为其执行的结果,并利用该替换结果。
(注:``反引号命令(即`commond`)有类似的功能 ;注意不是单引号‘’)
例如:
root@Ubuntu01:~# docker rm -v $(docker ps -aq)
另外一种用法:"$"后紧跟变量variable:
$echo $variable
或者$echo ${variable}
6) &,&&,与||:
& 放在启动参数后面表示设置此进程为后台进程:
默认情况下,进程是前台进程,会把Shell占据,无法进行其他操作;对于那些没有交互的进程,可以将其在后台启动,只需在启动参数的时候加一个'&'实现这个目的.
&&(命令执行控制)
语法格式如下:
command1 && command2 [&& command3 ...]
命令之间使用 && 连接,实现逻辑与的功能。
只有在 && 左边的命令返回真,&& 右边的命令才会被执行。 只要有一个命令返回假,后面的命令就不会被执行。
参见:
https://www.cnblogs.com/wwwfj/p/4597261.html
https://www.cnblogs.com/gotodsp/p/6390011.html
8) ; 命令分隔符
这里注意,用 ; 分隔命令时,即使第一个命令失败,第二个命令也会运行,即使第二个命令失败,第三个命令也会运行,依此类推。
9) ps指令:
按cpu利用率对ps排序:
# ps aux --sort pcpu
按mem利用率对ps排序:
# ps aux --sort rss
# ps aux --sort pmem
10) debug ssh:
ssh -vvvvv <ip address>