关机 (系统的关机、重启以及登出 )
shutdown -h now 关闭系统
init 0 关闭系统
telinit 0 关闭系统
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启
reboot 重启
logout 注销
文件和目录
cd /home 进入 '/ home' 目录'
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
pwd 显示工作路径
ls 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
mkdir dir1 创建一个叫做 'dir1' 的目录'
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
mv dir1 new_dir 重命名/移动 一个目录
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
统计文件数量
1、统计当前目录下文件的个数(不包括目录)
ls -l | grep "^-" | wc -l
2、统计当前目录下文件的个数(包括子目录)
ls -lR| grep "^-" | wc -l
3、查看某目录下文件夹(目录)的个数(包括子目录)
ls -lR | grep "^d" | wc -l
4、统计当前文件夹下叫某某的文件的数量
find . -name filename | wc -l
5、统计当前文件夹下指定类型的文件的数量
例如这里需要找 js 文件的数量:
find -name "*.js" | wc -l
创建一个2G的文件
yes "hello,word"| head -c 2G > /opt/2G_file.txt;
rm -rf /opt/2G_file.txt;
yes 命令重复打印字符串,按Ctrl + C结束
将同一内容写入多个文件中 echo 'abc' | tee 1.txt 2.txt 3.txt
文件搜索
find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 'user1' 的文件和目录
find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
文件的权限
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrp group1 file1 改变文件的群组
修改/bin 文件夹以及下面的所有文件的所属用户为root sudo chown -R root /bin
修改/bin 文件夹以及下面的所有文件的所属用户组为root sudo chgrp -R root /bin
查看文件内容
cat file1 从第一个字节开始正向查看文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
more file1 查看一个长文件的内容
less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
head -2 file1 查看一个文件的前两行
tail -2 file1 查看一个文件的最后两行
查看各文件夹大小du
du -h --max-depth=1 --max-depth=n表示只深入到第n层目录
du -ah user 列出user目录及其子目录下所有目录和文件的大小,-a表示包括目录和文件
du -h . 查看当前目录下所有目录以及子目录的大小,“.”代表当前目录下,也可以换成一个明确的路径
du -m /home/linux 以MB为单位显示一个目录树及其每个子树的磁盘使用情况
du -g /home/linux 以GB为单位显示一个目录树及其每个子树的磁盘使用情况
磁盘空间
df -h 显示已经挂载的分区列表
ls -lSr |more 以尺寸大小排列文件和目录
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间
用户组和用户
groupadd group_name 创建一个新用户组
groupdel group_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( '-r' 排除主目录)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
网络 - (以太网和WIFI无线)
ifconfig eth0 显示一个以太网卡的配置
ifup eth0 启用一个 'eth0' 网络设备
ifdown eth0 禁用一个 'eth0' 网络设备
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
ip a #查看所有网卡的接口信息
进程管理
ps:查看进程,列出执行ps命令的那个时刻的进程快照。如果想要动态显示,使用top命令
-a # 显示所有终端下执行的进程
-u # 显示指定用户相关的进程信息
-e # 显示所有进程
f # 显示进程树
pgrep:显示指定进程的pid命令,ps和grep命令的结合
-u 显示指定用户的所有进程号
kill:终止进程
kill -9 进程号码 强制杀死
压缩和解压
tar: -c: 建立压缩档案 -x:解压 t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-f: 使用档案名字,-f 是必须的,是最后一个参数,后面只能接档案名
压缩
tar -cf all.tar *.jpg #将所有.jpg的文件打成一个名为all.tar的包
tar -rf all.tar *.gif #将所有.gif的文件增加到all.tar的包里面去
tar -uf all.tar logo.gif #更新原来tar包all.tar中logo.gif文件
tar -tf all.tar #列出all.tar包中所有文件
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成jpg.tar
tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
*.tar 用 tar -xvf 解压
*.gz 用 gzip -d或者gunzip 解压
.tar.gz和.tgz 用 tar -xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2用tar -xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar -xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压
修改虚拟机时间
查看当前时间:date date +"%Y-%m-%d %H:%M:%S"
关闭虚拟机上的时间与主机同步:timedatectl set-ntp no
超级用户才能修改虚拟机的时间:timedatectl set-time “YYYY-MM-DD HH:MM:SS”
将硬件时钟设置为当前的系统时间:hwclock -w
修改虚拟机系统语言
export LC_ALL=zh_CN.UTF-8
sudo localectl set-locale LANG=en_US.utf8,然后重新打开一个会话
查看虚拟机是什么操作系统
lsb_release -a
uname -a
查看CPU信息
查看CPU总个数:cat /proc/cpuinfo |grep "processor"|wc -l
查看每个cpu的核数 :cat /proc/cpuinfo |grep "cores"
docker命令
重启Docker:systemctl restart docker
停止Docker:systemctl stop docker
启动Docker:systemctl start docker
查看所有的容器:docker ps -a
查看所有镜像:docker images 已下载的镜像一般是存放在/var/lib/docker/image/overlay2目录下的 repositories.json文件中,不同Docker版本可能会有些不同,具体在这个/var/lib/docker目录下的什么位置还得根据Docker具体版本情况来看
获取镜像:docker pull ubuntu docker pull centos:7 #指定image镜像tag标签版本
删除镜像:docker rmi e6a0117ec169
查看已下载镜像的详情信息:docker image inspect 镜像id
启动一个停止的容器:docker start b750bbbcfd88
启动容器:docker run -it ubuntu /bin/bash #使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器
docker run -itd --name ubuntu-test ubuntu /bin/bash #后台运行
进入容器:docker exec -it 243c32535da7 /bin/bash 退出 exit
停止一个容器:docker stop <容器 ID>
重启一个容器:docker restart <容器 ID>
导出容器快照到本地:docker export 1e560fca3906 > ubuntu.tar
从容器快照文件中再导入为镜像:cat docker/ubuntu.tar | docker import - test/ubuntu:v1 #将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
docker import http://example.com/exampleimage.tgz example/imagerepo #指定 URL 或者某个目录来导入
删除容器:docker rm -f 1e560fca3906
docker port 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号:
runoob@runoob:~$ docker port bf08b7f2cd89
5000/tcp -> 0.0.0.0:5000
查看容器日志:docker logs [ID或者名字]
docker inspect 查看 Docker 的底层信息:dockerinspect [ID或者名字] 会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
yum命令
查看linux系统是否已经安装yum:rpm -qa yum
yum list all 列出所有软件包
yum list updates 列出可更新的包
yum list available 列出可用的包
yum install 安装
yum remove 删除
yum update 更新
yum groupinstal 用系统中的组安装
yum groupinfo 系统中组的信息
系统语言/字符集
查看系统当前已安装的语言
locale -a
1.虚拟机安装系统没自带的字符集:
- 对于Debian/Ubuntu系统,使用apt包管理器:`sudo apt install language-pack-字符集`
- 对于Red Hat/CentOS系统,使用yum包管理器:`sudo yum install 字符集`
eg: sudo yum install glibc-langpack-es
- 对于Arch Linux系统,使用pacman包管理器:`sudo pacman -S 字符集`
2.虚拟机安装系统自带的字符集
cd /usr/share/locales,查看系统本身支持的字符集列表,如果存在想安装的字符集,vim /etc/locale.gen,去除被注释掉的语言环境前的#,执行sudo locale-gen
修改虚拟机系统语言为英文:
sudo localectl set-locale LANG=en_US.utf8,然后重新打开一个会话
只在本次会话生效: export LC_ALL=C.utf8
在系统生效: sudo vi /etc/default/locale source /etc/default/locale
龙芯的配置文件 /etc/profile