常用命令

查看当前系统中存在哪些shell

cat /etc/shells
[root@** ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

查看当前操作系统正在使用的命令解析器:

[root@** ~]# echo $SHELL
/bin/bash

输入命令时,光标移动

功能 快捷键 助记
Ctrl+P previous
Ctrl+N next
Ctrl+B backward
Ctrl+F forward
Del ctrl+D delete光标后面的
Home Ctrl+A the first letter
End Ctrl+E end
Backspace Backspace 删除光标前面的

常用的有 Ctrl+A, Ctrl+E

目录和文件

every thing is file

目录介绍

[root@** ~]# ls /
bin etc lib lost+found mnt proc run srv tmp var
boot dev home lib64 media opt root sbin sys usr
  • bin :可执行文件目录
  • boot 开机启动配置
  • etc 用户信息和系统配置文件
  • dev 设备
  • lib 库路径,如:标准C库 libc.so.6
  • media 挂载媒体设备,如光驱、优盘等
  • mnt 磁盘挂载,如硬盘
  • root root用户
  • usr Unix software resource 用户资源管理目录

切换目录(cd)

cd -  # 切换到上一个目录
cd ~ # home

创建文本文件(touch)

touch test.cpp

文件列表(ls)

ls /
ls -a # 所有文件
ls -l # long 详细信息
ls -dl dir # 查看目录信息
ls -R #递归
  1. 文件描述
[root@** code]# ls -l
total 20
drwxr-xr-x 2 root root 4096 Feb 7 13:59 mysql_test
-rwxr-xr-x 1 root root 8656 Feb 3 11:43 test
-rw-r--r-- 1 root root 88 Feb 3 11:43 test.cpp

文件类型,当前用户的权限[读,写,是否,可执行],当前组,其他用户

文件类型(7种)

  • 普通文件:-

  • 目录文件:d

  • 字符设备文件:c

  • 块设备文件:b 如磁盘

  • 软连接:l

  • 管道文件:p

  • 套接字:s

which

查看目录路径

[root@** ~]# which pwd
/usr/bin/pwd

隐藏[root@** ~]字符

编辑文件~/.bashrc,添加配置

PS1=$

rmdir

删除空目录,一次可以删除多个。

  • -p 删除多级目录,不能包含文件
[root@** demo]# rmdir -p aa/cc/

rm

删除文件。

  • -r:递归
  • -f:force
  • -v:可视化

cp

cp a.cpp dir/
cp a.cpp b.cpp
cp -a dir1/ ./ # 目录,all
cp -r dir1/ ./ # 目录,不包括文件属性,如:时间,权限等

mv

mv a.cpp dir/
mv a.cpp b.cpp # 重命名
mv dir1/ dir2/

cat

查看文件内容

可以读终端

tac

倒着显示

more

空格翻页,enter一行

less

不显示百分比,只能用q退出

head

显示默认前10行

head -20  # 前20行

tail

显示默认后10行

ln

软硬链接

  1. 创建软链接
ln -s file file.s
[root@** demo]# ls -l
-rw-r--r-- 1 root root 30 Feb 8 09:35 file
lrwxrwxrwx 1 root root 4 Feb 8 09:35 file.s -> file ln -s ./file file.s
[root@** demo]# ls -l
-rw-r--r-- 1 root root 30 Feb 8 09:35 file
lrwxrwxrwx 1 root root 6 Feb 8 09:35 file.s -> ./file

使用相对路径创建的软链接不可以移动。软链接保存的时创建时的路径,因此一定要使用绝对路径

[root@** demo]# ln -s /root/demo/file file.s2
[root@** demo]# ls -l
lrwxrwxrwx 1 root root 15 Feb 8 09:41 file.s2 -> /root/demo/file

此时可以移动软链接文件

  • 文件权限

软链接全开放代表软链接的权限

  1. 创建硬链接
ln file file1

对于硬链接,文件数据同步

[root@** demo]# stat file
File: ‘file’
Size: 30 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 1051448 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-02-08 09:35:57.020407922 +0800
Modify: 2020-02-08 09:35:55.186414489 +0800
Change: 2020-02-08 09:35:55.189414478 +0800

硬链接文件的Inode相同,删除时,将硬链接计数减一。

tree

安装:

yum install tree

wc

计算文件字节数、字数等。

  • -c 或--bytes 或 --chars
  • 只显示Byte数
  • -l 或 --lines显示列数
  • -w 或 --words显示字数

od

显示文件的进制

od -tcx file

-t制定数据显示格式,主要参数有:

  • c ASCII字符或反斜杠序列
  • d[SIZE] 有符号十进制数,每个整数SIZE字节
  • f[SIZE] 浮点数,每个整数SIZE字节
  • o[SIZE] 八进制
  • u[SIZE] 无符号十进制
  • x[SIZE] 十六进制
[root@** code]# od -tcd test.cpp
0000000 # i n c l u d e < m y s q l . h
1668180259 1701082476 1937337660 1747872881
0000020 > \n # i n c l u d e < i o s t r
1763904062 1970037614 1765565796 1920234351
0000040 e a m > \n \n u s i n g n a m e
1047355749 1937050122 543649385 1701667182
0000060 s p a c e s t d ; \n \n i n t
1667330163 1953701989 168442724 544501353
0000100 m a i n ( ) \n { \n \t M Y S Q L
1852399981 2064263464 1498220810 541872467
0000120 c o n n ; \n } \n
1852731235 175966779

du

显示某个目录的磁盘大小

  • 单位M
[root@** code]# du -hm mysql_test/
1 mysql_test/
  • 单位B
[root@iZy4sb7b6agxt2Z code]# du -hb mysql_test/
12991 mysql_test/
  • 单位K(默认)
[root@** code]# du -hk mysql_test/
20 mysql_test/

df

查看磁盘使用情况

[root@** code]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 930660 0 930660 0% /dev
tmpfs 941116 0 941116 0% /dev/shm
tmpfs 941116 444 940672 1% /run
tmpfs 941116 0 941116 0% /sys/fs/cgroup
/dev/vda1 41147472 4169976 35074004 11% /
tmpfs 188224 0 188224 0% /run/user/0

文件属性和用户组

whoami

查看当前登录用户

chmod

修改文件属性,所有者,组,其他

  • u+x,u-x user
chmod u+x file
  • g+x group

  • o+x other

  • a+x all

  • 777

chmod 777 file

chown

文件所有者,所有组

chown username file
chown username:groupName file

chgrp

chgrp name file

adduser

adduser username

deluser

deluser username

addgroup

addgroup name

delgroup

delgroup groupName

查找和检索

find

find dir -type 'l'

find dir 必须放在前面

# 查找当前目录下的软链接
[root@** demo]# find ./ -type 'l'
./file.s
./file.s2 # 查找 .java 文件
find ./ -name '*.java' # 查询深度
find ./ -maxdepth 1 -name '*.java' # 查询指定大小的文件
find ./ -size +2k -size -10k
  • -type f|d|l
  • -name
  • -maxdepth
  • -size +-10M|k|m
  • -atime
  • -mtime
  • -ctime
  • -exec
  • -ok 交互式
  • -print0 0表示查询出的结果集的分隔符为 NUL
[root@iZy4sb7b6agxt2Z demo]# stat stdio.h
File: ‘stdio.h’
Size: 31641 Blocks: 64 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 1051436 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ fight) Gid: ( 0/ root)
Access: 2020-02-08 10:32:56.157924435 +0800
Modify: 2020-02-07 17:39:56.495737825 +0800
Change: 2020-02-08 10:32:37.490994734 +0800
  1. 将查询结果用来执行某个操作
# {} 代表查询出的结果
[root@** demo]# find ./ -name "*.s" -exec ls -l {} \;
lrwxrwxrwx 1 root root 4 Feb 8 09:35 ./file.s -> file # exec的衍生版,可以提示用户是否操作
[root@** demo]# find ./ -name "*.s" -ok rm -r {} \;
lrwxrwxrwx 1 root root 4 Feb 8 09:35 ./file.s -> file

注意:{}和\之间必须有一个空格,\;代表结束

grep

查询文件内容

[root@** demo]# grep -r -n 'copy' ./
./stdio.h:15: You should have received a copy of the GNU Lesser General Public
  • -r 递归
  • -n 显示行号

ps aux :查看后台进程

[root@** demo]# ps aux | grep mysql
mysql 4394 0.0 9.0 1145288 171212 ? Sl Feb03 2:26 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root 14635 0.0 0.0 112712 964 pts/6 R+ 11:33 0:00 grep --color=auto mysql

xargs

和find、管道组合使用,将文件查询结果作为执行参数

xargs 和 -exec {} ; 效果一样

xargs和 -exec相比,将查询结果做了分片处理,将结果集分片映射

[root@** demo]# find ./ -type f | xargs ls -l
-rw-r--r-- 1 root root 0 Feb 8 09:47 ./bb/a1
-rw-r--r-- 1 root root 30 Feb 8 09:35 ./file
-rw-r--r-- 1 fight root 31641 Feb 7 17:39 ./stdio.h

xargs的问题:默认将结果集用空格作为分隔符,当文件名包含空格时,就会出问题

解决办法:自己设定分隔符

[root@** demo]# find ./ -type f | xargs ls -l
ls: cannot access ./11: No such file or directory
ls: cannot access 22: No such file or directory
-rw-r--r-- 1 root root 30 Feb 8 09:35 ./file
-rw-r--r-- 1 fight root 31641 Feb 7 17:39 ./stdio.h # 设定分隔符
[root@** demo]# find ./ -type f -print0 | xargs -print0 ls -l
xargs: WARNING: a NUL character occurred in the input. It cannot be passed through in the argument list. Did you mean to use the --null option?
ls -l ?...y
total 44
-rw-r--r-- 1 root root 0 Feb 8 11:46 11 22
# 没有提示操作
[root@** demo]# find ./ -type f -print0 | xargs -0 ls -l
-rw-r--r-- 1 root root 0 Feb 8 11:46 ./11 22
-rw-r--r-- 1 root root 0 Feb 8 09:47 ./bb/a1
-rw-r--r-- 1 root root 30 Feb 8 09:35 ./file
-rw-r--r-- 1 fight root 31641 Feb 7 17:39 ./stdio.h

或者 find ./ -type f -print0 | xargs -0 ls -l

安装卸载软件

从源中安装

1、 centos Redhat系列

安装

yum install tree

卸载

yum remove tree

2、Ubuntu deb系列

安装

apt install gcc

卸载

dpkg -r gcc

安装包

  1. Redhat --> centos --->
 rpm -ivh mysql57-community-release-el7-8.noarch.rpm
  1. deb --> Ubuntu
dpkg -i  xxx .deb 安装
dpkg -r 命令|xxx.deb 删除
dpkg -r --purge xxx.deb 同时删除配置文件
dpkg -info xxx.deb 查看信息
dpkg -l 查看系统中已安装软件包信息

源码安装

1) 解压源代码包

2) cd dir

3) ./confiure

检查文件是否缺失,创建Makefile,检测编译环境

4) meke

编译源代码,生成库和可执行文件

5) sudo make install

把库和可执行程序,安装到系统中

6) sudo make distclean

删除和卸载软件

压缩解压

tar

压缩

# 压缩并打包
tar -zcvf file.tar.gz file1 file2 ..
# 使用bzip2方式压缩
tar -jcvf file.tar.bz file1 file2 .. # 将文件或文件夹下的所有文件压缩 file ->file.gz
gzip file/dir
  • -z 用gzip压缩
  • -c|x 压缩 |解压
  • -v 可视化
  • -f force

gzip

只能压缩一个文件

  • -r 递归压缩
  • -c 保留原文件
  • -v 可视化
  • -d 解压缩

解压

tar  -zxvf file.tar.gz
tar -jxvf file.tar.bz
gunzip file

rar

安装:

yum install rar
rar a -r file.rar dir unrar x file.rar

zip

yum install zip
zip -r file.zip dir unzip file.zip

其他命令

ps

ps aux | grep mysql

查看进程

&

后台运行

./file &

fg

切换到前台

作业好前面需要加 %

bg

切换到后台

kill

kill PID

env

查看当前环境变量

top

文字版的任务管理器

man

安装man-pages,查看库函数

yum install -y man-pages

在vim中光标在函数上,normal模式下输入K,即可进入man-pages

帮助文档

man printf
man 1 printf # shell
man 2 printf # 系统调用
man 3 printf # 库调用
man 5 passwd # 文件规范,如第一列代表什么意思

alias

alias la = 'ls -al'

date

显示系统时间

umask

显示文件掩码,默认touch的文件的权限

$ umask
0002

poweroff

shutdown

rebot

用户管理

切换用户

# 普通用户
sudo su username
# root
su

设置密码

# 普通用户
passwd username
# root
passwd

网络管理

ifconfig

# ifconfig查看网卡信息
ifconfig
# 关闭网卡
sudo ifconfig eth0 down
# 开启网卡eth0
sudo ifconfig eth0 up
# 给eth0配置临时IPsudo ficonfig eth0 IP

ping

ping ip

Linux基础命令、软件安装的更多相关文章

  1. Linux基础三(软件安装管理)

    目录: 一.Linux 中软件包的分类 1.源码包 2.二进制包 3.源码包 4.软件安装的选择 二.软件安装之 RPM 1.背景知识 2.准备知识 3.安装升级与卸载 4.查询校验与提取 三.软件安 ...

  2. Linux基础:软件安装(rpm,yum,源代码)

    Software Installation on Linux Linux安装分为rpm包(可通过yum或者是rpm命令安装)和源码包(源代码或者是编译过的二进制码)两种. Linux是开源系统,很多应 ...

  3. linux基础开发软件安装 - java相关

    1.linux在线安装mysql:转自 https://www.cnblogs.com/bigbrotherer/p/7241845.html ,写的很好,简单易用. 开启远程访问:转 https:/ ...

  4. 1、Linux基础--相关软件安装与网络配置

    1.虚拟机(VM安装) 2.网络配置 3.Linux操作系统安装 4.xshell安装

  5. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  6. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  7. [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...

  8. Linux基础命令小结(超全!!)

    Linux目录结构 1.bin 存放经常使用的指令比如ll,cp 2.sbin 系统管理员使用的系统管理指令 3.home 存放普通用户的住目录 4.root 系统管理员的用户主目录 5.boot 存 ...

  9. Linux基础命令整合

    linux基础命令整理 1.系统相关命令 shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minu ...

  10. Linux——基础命令用法(上)

    一.Linux基础命令 1.Linux命令行的格式 命令行的格式为:用户名+主机名+当前工作目录 输入内容的命令格式为:命令 [-短选项/--长选项] [参数] [root@localhost ~]# ...

随机推荐

  1. 「题解」「HNOI2013」切糕

    文章目录 「题解」「HNOI2013」切糕 题目描述 思路分析及代码 题目分析 题解及代码 「题解」「HNOI2013」切糕 题目描述 点这里 思路分析及代码 题目分析 这道题的题目可以说得上是史上最 ...

  2. Selenium 页面加载慢

    Selenium 页面加载慢 问题描述: 使用Selenium获取网页,发现webdriver.get方法会阻塞直到网页全部加载完成,官方提供的三种wait方法仅对网页的ajax有比较明显的效果.对于 ...

  3. PTA的Python练习题(八)

    从 第3章-15 统计一行文本的单词个数 继续 1. s = input() count=0 for c in s: if c==' ': count=count+1 if c=='.': break ...

  4. nginx 的location的匹配顺序

    匹配规则 匹配顺序 示例 [root@python vhast]# cat test.conf server { server_name haha.com; #listen 8080; rewrite ...

  5. 1004 Counting Leaves (30分) DFS

    1004 Counting Leaves (30分)   A family hierarchy is usually presented by a pedigree tree. Your job is ...

  6. 【剑指Offer面试编程题】题目1360:乐透之猜数游戏--九度OJ

    题目描述: 六一儿童节到了,YZ买了很多丰厚的礼品,准备奖励给JOBDU里辛劳的员工.为了增添一点趣味性,他还准备了一些不同类型的骰子,打算以掷骰子猜数字的方式发放奖品.例如,有的骰子有6个点数(点数 ...

  7. 【PAT甲级】1030 Travel Plan (30 分)(SPFA,DFS)

    题意: 输入N,M,S,D(N,M<=500,0<S,D<N),接下来M行输入一条边的起点,终点,通过时间和通过花费.求花费最小的最短路,输入这条路径包含起点终点,通过时间和通过花费 ...

  8. Android之收音机UI实现(转)

    源码: http://www.2cto.com/kf/201211/171417.html 最近在研究收音机的源码,本来想把收音机从源码中提取出来,做成一个单独的应用,但是,收音机需要底层的支持,所以 ...

  9. AngularJS四大特征

    AngularJS四大特征 1.MVC模式 Angular遵循软件工程的MVC模式,并鼓励展现,数据,和逻辑组件之间的松耦合.通过依赖注入(dependency injection),Angular为 ...

  10. java 获取web登录者的ip地址

    /** * 获取访问用户的客户端IP(适用于公网与局域网). */ public static final String getIpAddr(final HttpServletRequest requ ...