Linux
系统属性
功能 | 命令 |
---|---|
操作系统(通用) | lsb_release -a |
内核/CPU | uname -a |
CPU | cat /proc/cpuinfo |
CPU个数 | 物理数:cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 单个CPU核数:cat /proc/cpuinfo| grep "cpu cores"| uniq 逻辑数:cat /proc/cpuinfo| grep "processor"| wc -l |
操作系统版本 | head -n 1 /etc/issue cat /etc/redhat-release (只适合Redhat) lsb_release -a |
主机名 | hostname |
环境变量 | env |
PCI设备 | lspci -tv |
USB设备 | lsusb -tv |
内核模块 | lsmod |
用户与组
用户
查看
- cat /etc/passwd
创建
- useradd
- useradd -g
删除
- userdel -r
组
查看
- cat /etc/group
创建
- groupadd
变更
- 修改用户组
- usermod -G
- usermod -G
- 追加用户组
- usermod -a -G
- gpasswd
-a
- usermod -a -G
- 删除用户
- gpasswd
-d
- gpasswd
- 删除用户组
- groupdel
- groupdel
时间
功能 | 命令 |
---|---|
当前系统时间 | date |
安装ntpdate程序 | yum install -y ntpdate |
从互联网更新系统时间 | ntpdate time.windows.com ntpdate cn.pool.ntp.org |
修改系统时间 | date -s "2019-08-26 11:11:11" |
当前时间保存到bios | hwclock -w |
文件(夹)
创建
功能 | 命令 |
---|---|
创建文件 | touch t1.txt t2.txt (多个文件时,以空格隔开) |
创建文件夹 | mkdir -p par/sub |
权限
chmod 变更访问权限
chmod -R 777 dir (-R 递归处理, 777 全量权限)
chmod a/ugo +/- rwx dir
chgrp 变更所属组
chgrp -R group dir
chown 变更所属用户/组
chown -R user:group dir
合并文件
- cat file1 file2 > file3 #合并1 2 为新文件3
- cat fiel1[ file2...] >> file0 # 追加文件1[2...]到文件0后
查找文件
- ls *.drv
列出.drv结尾的文件或文件夹
ls 只支持通配符,要使用正则表达式,需搭配其他命令,如grep, sed, awk
grep 使用正则表达式时,表达式要用""包起来 - ls | grep -v "dbf$"
列出不以dbf结尾的文件 - grep -a 查看二进制文件内容
查看文件夹大小
- du -sh *
遍历文件
#!/bin/bash
for file in `ls $1`
do
if [ -d $1"/"$file ]
then
echo "cp -r $1"/"$file/code/* ./code/"
cp -r $1"/"$file/code/* ./code/
fi
done
压缩
功能 | 命令 |
---|---|
将所有jpg文件打包成jpg.tar | tar -cvf jpg.tar *.jpg |
打包成jpg.tar后,用gzip压缩 | tar -czf jpg.tar.gz *.jpg |
打包成jpg.tar后,用bzip2压缩 | tar -cjf jpg.tar.bz2 *.jpg |
打包成jpg.tar后,用compress压缩 | tar -cZf jpg.tar.Z *.jpg |
rar格式的压缩,需要先下载rar for linux | rar a jpg.rar *.jpg |
zip格式的压缩,需要先下载zip for linux | zip jpg.zip *.jpg |
解压
功能 | 命令 |
---|---|
指定目录,确省当前目录 | tar -C |
解压 tar包 | tar -xvf file.tar |
解压tar.gz | tar -xzvf file.tar.gz |
解压 tar.bz2 | tar -xjvf file.tar.bz2 |
解压tar.Z | tar -xZvf file.tar.Z |
解压rar | unrar e file.rar |
解压zip | unzip file.zip |
批量解压.zip | find . -name '*.zip' -exec unzip -q {} ; |
分割
split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名前缀]
参数说明:
1. --help : 在线帮助
2. --version : 显示版本信息
3. -<行数>/-l <行数> : 指定每多少行切成一个小文件
4. -b<字节> : 指定每多少字节切成一个小文件,也可以指定 K、M、G、T 等单位
5. -C<字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
6. [输出文件名前缀] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号
例:将文件FNDOPP909884.txt按100M大小拆分,拆分后的文件名前缀为FNDOPPONE
split -b 100m FNDOPP909884.txt FNDOPPONE
链接
功能 | 命令 |
---|---|
硬链接 | ln src tar |
软连接(需用绝对路径) | ln -s src tar |
分区扩容
建虚拟机时,根目录只给了10G,后来不够用,故进行了一次扩容
-
虚拟机磁盘设置,给足需要的空间大小
-
打开虚拟机,查看新的磁盘空间(fdisk -l ):
/dev/sda3是下述步骤创建出的新分区 -
df -h 查看到 /dev/mapper/ol-root 只有9.8G
-
增加分区 fdisk /dev/sda
-
重启reboot
-
创建物理卷(physical volumn):
pvcreate /dev/sda3 (步骤4创建的分区名)然后查看
pvdisplay
-
将新加的物理卷, 加载到卷组(volumn group):
vgextend ol /dev/sda3
然后查看
vgdisplay
-
增加根目录大小,并重新识别:
lvresize -L +200G /dev/mapper/ol-root (增加200G);(或者指定扩展数 lvresize -l +1279 /dev/mapper/cl-root)
resize2fs /dev/mapper/ol-root (重新识别)
(xfs文件系统的重新识别用命令 xfs_growfs /dev/mapper/ol-root)
(文件系统类型查看用 df -T)
然后再查看磁盘空间 df -h
增加虚拟内存
$ cd /tmp
$ dd if=/dev/zero of=eswap bs=1M count=5120
$ mkswap eswap
$ chmod 600 eswap
$ swapon eswap
$ vim /etc/fstab
/tmp/eswap swap swap defaults 0 0
命令转后台执行
下面的方法可以将前台进程转入后台运行,并指定这个任务不被发送SIGHUP信号:
- ctrl+z将任务暂停,这时屏幕会打印这样一句“[1]+ Stopped ./myserver”
- 使用"bg 1"将这个任务转入后台运行(1是刚才暂停任务的job号,步骤1中屏幕提示方括号里面的内容,如果忘了也可以用jobs命令查看)
- 使用"disown –h %1"指定shell退出时不要发送SIGHUP给任务1(注意任务号前面有个%)
其他常用命令
ping指定网卡
- ping -I enth0 www.baidu.com
配置终端快捷键
- /usr/bin/gnome-terminal
安装JDK
-
CentOS8上使用 yum 直接安装,环境变量自动配置好
-
查看是否已安装
看到下面结果,说明已经安装配置 jdk[root@localhost ~]# java -version openjdk version "1.8.0_222" OpenJDK Runtime Environment (build 1.8.0_222-b10) OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
-
卸载
查看系统是否自带 jdk$ rpm -qa |grep java $ rpm -qa |grep jdk $ rpm -qa |grep gcj
如果有输出信息,批量卸载系统自带:
- rpm -qa | grep java | xargs rpm -e --nodeps
如果使用 yum 安装的 jdk,请使用下面命令卸载
- yum -y remove java-1.8.0-openjdk-headless.x86_64
-
安装
- 检查 yum 中有没有 java1.8 包
yum list java-1.8* - 安装:
yum install java-1.8.0-openjdk* -y
- 检查 yum 中有没有 java1.8 包
-
验证
同步骤2 -
查看安装路径
which java
ls -lrt /usr/bin/java
Solaris
查看版本
$ uname -a
SunOS housva441 5.11 11.3 sun4v sparc sun4v
$ cat /etc/release
Oracle Solaris 11.3 SPARC
Copyright (c) 1983, 2018, Oracle and/or its affiliates. All rights reserved.
Assembled 09 May 2018
查看位数
$ isainfo -v
#如果是运行在32位模式下, 则有如下输出:
32-bit sparc applications
#如果是运行在64位模式下, 则有如下输出:
64-bit sparcv9 applications
32-bit sparc applications
启停ssh
svcs | grep ssh
svcadm disable
svcadm enable
用户
#有时用户密码重置依然无效,可能是用户被锁了
#查看用户状态:
$ sudo passwd -s xtong
xtong LK 09/27/21 91
# PS:表示用户密码已设置。
# NL:表示用户帐号是不可登录帐号。
# LK:表示用户已被锁定。
# NP:表示用户没有密码,登录时不需要密码认证。
# 解锁
$ sudo passwd -u xtong
passwd: password information changed for xtong
$ sudo passwd -s xtong
xtong PS 09/27/21 91
expect
Install in Solaris 10
-
Download the expect and tcl packages
expect - sourceforge - Download
tcl - tcslsite - Download
-
Unzip the gz files
gzip -d expect5.45.3.tar.gz
gzip -d tcl8.6.8-src.tar.gz
-
Extract the tar files
tar -xvf tcl8.6.8-src.tar
tar -xvf expect5.45.3.tar -
add /usr/sfw/bin, /usr/local/bin and /usr/ccs/bin to $PATH, and export it
-
Set the CC environment variable to the value gcc and export it
-
Configure and Installing Tcl binary, cd to the extracted directory and into the directory name unix
cd /var/tmp/tcl8.6.8/unix
./configure
make
make test # To check that the build is worked
make install # Install the Tcl package in place, Installed command will be available under /usr/local/bin/tclsh8.4 -
Configure and Installing expect binary, cd to the extracted directory
cd /var/tmp/expect5.45.3
./configure
make expect # Does the build.
make install # Install the expect package, The command is under /usr/local/bin/expect -
Verify the command availability
which expect
/usr/local/bin/expect
Usage
expect <<EOL
spawn sftp -oport=22 $SFTP_ACCOUNT@$SFTP_HOST_NAME
expect -nocase "password:"
send "$PASSWORD\n"
expect "sftp>"
send "lcd $INTERNAL_DIRECTORY\n"
expect "sftp>"
send "cd $SFTP_DIRECTORY\n"
expect "sftp>"
send "mget ${FILE_NAME}*\n"
expect "sftp>"
send "bye\n"
EOL
expect <<EOL
spawn sftp -oport=22 ebs@azlsftptest001.dover-global.net
expect -nocase "password:"
send "Dover@2021!\n"
expect "sftp>"
send "pwd\n"
expect "sftp>"
send "bye\n"
EOL