linux——基础使用

2021-02-22  本文已影响0人  小T呀

linux shell:
Linux纯干货知识总结|面试专用
linux下的shell脚本(基本)
怎样用linux命令知道系统是ubuntu还是centos或者其它
Linux查看CPU和内存使用情况

1、touch命令创建文本文件 zxt111

ls/dir命令查看路径下有的文件及文件夹

2、mkdir命令创建文件夹 (空文件夹)zxt222

ls/dir命令查看路径下有的文件及文件夹

3、文件及文件夹的删除

rm zxt111 ——仅删除文件,不可删除文件夹
rm -d zxt222 ——仅删除空文件夹
rm -r zxt222 ——递归删除文件夹zxt222(可删除非空文件夹)
删除总结:rm [选项] 文件
-f, --force 强力删除,不要求确认
-i 每删除一个文件或进入一个子目录都要求确认
-I 在删除超过三个文件或者递归删除前要求确认
-r, -R 递归删除子目录
-d, --dir 删除空目录
-v, --verbose 显示删除结果

4、进入某文件夹 cd [文件夹名] /[子文件夹名] (可使用Tab键进行补全)

返回上一级目录 cd ..
返回前一目录 cd -
返回Home目录 cd ~

5、文件的复制粘贴 : cp [选项]... 源文件... 目录

cp zxtaaa zxt111/zxt222
-a:此选项通常在复制目录时使用,保留链接、文件属性并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
复制多个文件:①通配符*②{zxtaaa,zxtbbb,...}且“,”间无空格
cp {SN.H*,SN.S*} ./smalltest/

-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。

6、 文件夹的复制粘贴

文件夹zxt333中包含zxtbbb文件,将文件夹zxt333全部内容复制到文件夹zxt111/文件夹zxt222下
cp -r zxt333 zxt111/zxt222

7、内存使用情况

free -m

Mem行:
total:内存总数 2575M
used:已经使用的内存数 777m
free:空闲的内存数 278m
shared:多个进程的共享的内存数 24m
Swap行交换分区:
把磁盘空间当做内存用,也就是windows为什么常常提示虚拟空间不足的原因.,在内存还有大部分的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.linux只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了。
8、查看磁盘大小

df -h

另:虚拟机扩容

如何将自己新加的硬盘挂载到虚拟机中?(root用户)
①增加的磁盘为/dev/sda   fdisk /dev/sda

fdisk /dev/sda 
p       查看已分区数量
n       新增加一个分区 
p       分区类型我们选择为主分区 
分区号选3(选择默认即可,它会有所提示) 
回车      默认(起始扇区) 
回车      默认(结束扇区) 
t       修改分区类型 
选分区3 
8e      修改为LVM(8e就是LVM) 
w      保存刚才创建的分区 
q      完成,退出fdisk命令(有时这条命令不用输入)

q quit without saving changes 注:不保存退出;
②完成上述命令之后,进行格式化分区  
reboot 
mkfs.ext3 /dev/sda3
③添加新LVM组到已有的LVM组,实现扩容
我自己的是centos,以下所有涉及到cl的都输入centos

lvm    进入lvm管理
lvm>pvcreate /dev/sda3   这是初始化刚才的分区,必须的
lvm>vgextend cl /dev/sda3  将初始化过的分区加入到虚拟卷组centos ,对Volume group进行修改
      (卷和卷组的命令可以通过vgdisplay查看;
      不是每个虚拟机命令都是cl,这个具体要看你的虚拟机文件系统配置,如果是cl-root,可以直接使用命令,
      否则需要按照自己的文件系统进行一些修改。我自己的是centos)
lvm>vgdisplay -v
lvm>lvextend -l+21556 /dev/mapper/cl-root  扩展已有卷的容量,对Logical volume进行修改
      (21556 是通过vgdisplay查看的free的大小,21556以及cl请具体查看后修改)
lvm>pvdisplay   查看卷容量Physical volumes,这时你会看到一个很大的卷了
lvm>quit    退出

④接下来将添加的硬盘,添加至根分区(我的Logical volume中可看到LV Path为 /dev/centos/root)   lvextend -l +100%FREE /dev/cl/root
至此卷扩容完成
⑤对文件系统扩容操作   xfs_growfs /dev/mapper/cl-root
df -h 查看,虚拟机存储空间扩容成功!!!

------第③步的lvm设置图示
9、分区挂载

手动挂载  sudo mount /dev/sda4 /home/onesea/Mini2440
  假设新分区为 /dev/sda4 , 挂载点为 /home/onesea/Mini2440
自动挂载
  若希望开机时自动挂载, 可在/etc/fstab最后一行添加:
  /dev/sda4 /home/onesea/Mini2440 ext4 defaults 0 0
网络(局域网)存储挂载
  sudo mount -t nfs ip地址:/mnt/miniseed_backup /home/zxt/p200
  假设要将 ip地址:/mnt/miniseed_backup 挂载到 /home/zxt/p200上

10、运行进程的显示与终止

最常用:

查找进程并列出信息 ps -ef | grep ispaq

杀死进程 kill -9 PID
查看运行的java进程 jps
其他:
查询所有进程 ps -A
查看非root运行的进程 ps -U root -u root -N
查询某个用户(如hadoop)开启的进程 ps -u hadoop

查看运行中系统进程的动态实时视图 top (输入q退出top视图,按h进入帮助)

显示进程的树状图 pstree
获得线程信息 ps -eflps axms
ps -efl ps axms
查找进程——查找当前正在运行的进程并列出符合条件的进程ID,如显示firefox的进程IDpgrep firefox
11、测试指令运行时间

time能做的不仅仅是测量运行时间,还可以测量内存、I/O等的使用情况
time命令最常用的使用方式就是在其后面直接跟上命令和参数:
time <command> [<arguments...>]
在命令执行完成之后就会打印出CPU的使用情况:
real 0m5.064s <== 实际使用时间(real time)
user 0m0.020s <== 用户态使用时间(the process spent in user mode)
sys 0m0.040s <== 内核态使用时间(the process spent in kernel mode)
time命令跟上-p参数可以只打印时间数值(秒数),不打印单位。
示例:time find . -name "mysql.sh"
time更为强大的指令/usr/bin/time:
Usage: /usr/bin/time [-apvV] [-f format] [-o file] [--append] [--verbose] [--portability] [--format=format] [--output=file] [--version] [--help] command [arg...]
示例:/usr/bin/time -v find . -name "mysql.sh"

12、用户

用户切换:
拥有root权限——sudo
至hadoop——su hadoop

13、简单bash编程

在非root用户下,f="SC.AXI. BHE.2020.122.mseed"echo $f

14、修改文件权限

chmod [options] mode files
-R,--recursive可递归遍历子目录,把修改应到目录下所有文件和子目录
对于mode多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限。
chmod u+x file     给file的属主增加执行权限
chmod -R u+r directory   递归地给directory目录下所有文件和子目录的属主分配读的权限
chmod 751 file     给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
chmod u=rwx,g=rx,o=x file 上例的另一种形式

15、linux中($a)数组

A=(a b c def)  #定义数组
echo ${A[@]}   #把数组按字符串显示输出,屏幕显示:a b c def
len=${#A[*]}   #数组的长度,屏幕显示:4
A[3]='vivian'  #改变数组元素的值
echo ${A[*]}   #屏幕显示:a b c vivian
我用过的:

OLD_IFS=${IFS}
IFS=" "
arr=($a)
IFS=${OLD_IFS}
for f in ${arr[@]}
do
sudo chmod -R 755 ${f}
done
16、其他

获取GitHub等网页链接上的内容:  git clone +网址   或者  wget +网址
VI中的多行删除与复制:
  光标所在行,dd
  光标所在行以下的N行,Ndd

上一篇下一篇

猜你喜欢

热点阅读