本文最后更新于:5 小时前
Linux基础
快捷键:
tab 自动补全
ctrl + l 清理终端显示
ctrl + c 终止当前操作
新建:mkdir a.txt
touch a.py
查看:
目录:ls
pwd
文件内容:cat a.txt
切换:cd /home
cd -
cd ~
编辑:vi a.py
a/i 编辑模式
w 写入
q 退出
!强制
显示:至终端:echo “666”
写入文件:echo "666" > /a
复制:cp a.py /a/
移动
cp a.py /a/b.py
移动并改名
cp -r
复制目录
cp -p
复制文件并保持属性不变
cp -a
相当于 -pdr 的意思(保留权限,复制软链接本身,递归复制 )
备份文件加后缀.bak
剪切:mv /home/Desktop/a /tmp/a
删除:rm
-r
删除目录
-f
取消提示
查找:find /tmp/ -type f -name "*.txt"
找出所有以 .txt 结尾的文件
which:查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。
1 2 3 4 5 6 7 8 9
| 语法 which 【参数】【文件】
参数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 -p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。 -w 指定输出时栏位的宽度。 -V 显示版本信息。
|
alias:别名
seq:seq命令用于产生从某个数到另外一个数之间的所有整数。
1 2 3 4 5 6 7 8
| 语法 seq [选项]... 尾数 seq [选项]... 首数 尾数 seq [选项]... 首数 增量 尾数 参数 -f, --format=格式 使用printf 样式的浮点格式 -s, --separator=字符串 使用指定字符串分隔数字(默认使用:\n) -w, --equal-width 在列前添加0 使得宽度相同
|
scp:Linux scp命令用于Linux之间复制文件和目录。scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
1 2 3 4 5 6 7 8 9 10 11
| 语法 scp 【可选参数】 本地源文件 远程文件标记 参数 -r :递归复制整个目录 -v:详细方式输出 -q:不显示传输进度条 -C:允许压缩 实例
scp root@192.168.1.155:/home/oldboy.txt /tmp/oldboy.txt scp -r root@192.168.1.155:/home/oldboy /home/
|
du:Linux du命令用于显示目录或文件的大小。du会显示指定的目录或文件所占用的磁盘空间。
1 2 3 4
| 用法 du 【参数】【文件或目录】-s 显示总计-h 以k,M,G为单位显示,可读性强
du
|
top:inux的top指令用于实时显示process的动态
head、tail:
1 2 3 4
| head显示文件前几行,默认前10行 tail显示文件后几行,默认后10行
head -30 /tmp/oldboy.txt |tail -21
|
grep:全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
1 2 3 4 5 6 7
| 语法: grep [参数] [ 参数详解: -i : 忽略大小写 -n : 输出行号 -v : 反向选择
|
管道命令:Linux提供的管道符“|”讲两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入。
sh:命令启动shell(.sh文件)脚本,避免./运行无权限(没有配置在环境变量(PATH)中)
==xargs==:给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
-e flag
注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。
-t
表示先打印命令,然后再执行。
-i
或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| 实例
xargs 用作替换工具,读取输入数据重新格式化后输出。
定义一个测试文件,内有多行文本数据:
# cat test.txt
a b c d e f g h i j k l m n o p q r s t u v w x y z
多行输入单行输出:
# cat test.txt | xargs a b c d e f g h i j k l m n o p q r s t u v w x y z
-n 选项多行输出:
# cat test.txt | xargs -n3
a b c d e f g h i
-d 选项可以自定义一个定界符:
# echo "nameXnameXnameXname" | xargs -dX
name name name name
结合 -n 选项使用:
# echo "nameXnameXnameXname" | xargs -dX -n2
name name name name
xargs 的一个选项 -I,使用 -I 指定一个替换字符串 {},这个字符串在 xargs 扩展时会被替换掉,当 -I 与 xargs 结合使用,每一个参数命令都会被执行一次:
# cat arg.txt | xargs -I {} ./sk.sh -p {} -l
-p aaa -l -p bbb -l -p ccc -l
|
参考:菜鸟教程
sed
参考:菜鸟教程
awk
参考:菜鸟教程
==Shell特殊变量==:Shell $0, $#, $*, $@, $?, $$和命令行参数
参考:博客园
一、换源
- 首先需要使用root用户
- 进行源码备份.
1
| cp /etc/apt/sources.list /etc/apt/sources.list.bak
|
- 进行源列表的修改
1
| vi /etc/apt/sources.list
|
将sources.list中的内容提换如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
|
- 执行更新列表
6.如出现以下问题,把软件源里的https改成http就行了
成功如图所示
二、vim编辑器使用
第一、升级Python 3.6 至 3.7
1、更新镜像
1 2
| sudo apt update sudo apt install software-properties-common
|
Select Code
Copy
2、将Deadsnakes PPA添加到源列表
1
| sudo add-apt-repository ppa:deadsnakes/ppa
|
Select Code
Copy
3、安装Python3,7
1
| sudo apt install python3.7
|
Select Code
Copy
实际上已经安装到新版本的3.7,我们可以看看是不是:
Select Code
Copy
4、将Python 3.6和Python 3.7添加到替代项
1 2
| sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
|
Select Code
Copy
5、更新指向
1
| sudo update-alternatives --config python3
|
Select Code
Copy
然后我们再去检查就是已经是Python3.7新版本默认。
第二、直接安装Python3.7并设置默认
1、升级包索引和软件
Select Code
Copy
2、安装编译需要的软件包
1
| apt install build-essential zlib1g-dev libbz2-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev -y
|
Select Code
Copy
3、下载版本和编译安装
目前最新版本是3.9,但是我们还是不要用到最新版本,比如常用的就是3.7或者3.8.
1
| wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
|
Select Code
Copy
然后解压
1
| tar -zxvf Python-3.7.9.tgz
|
Select Code
Copy
编译安装
1 2 3 4
| cd Python-3.7.9 ./configure --prefix=/usr/local/src/python37 sudo make sudo make install
|
Select Code
Copy
4、建议软连接
1 2
| ln -s /usr/local/src/python37/bin/python3.7 /usr/bin/python3.7 ln -s /usr/local/src/python37/bin/pip3.7 /usr/bin/pip3.7
|
Select Code
Copy
如果我们希望替代之前的
1 2
| rm -rf /usr/bin/python3 ln -s /usr/local/src/python37/bin/python3.7 /usr/bin/python3
|
三、更改python版本
修改Python软链接
1.查看使用的版本
2.查看当前所使用版本的位置
1 2 3
| $ which python $ whereis python 查看所有python版本所在位置
|
3.如果第二步结果是
则直接删除即可
1
| $ sudo rm /usr/bin/python
|
如果不在以上文件夹中,则修改名字,不要删除,如下
1
| $ sudo mv /home/ustc/anaconda3/bin/python /home/ustc/anaconda3/bin/python3.6.4
|
4.创建新的软链接
1
| $ sudo ln -s /usr/bin/python2.7 /usr/bin/python
|
5.查看结果
四、root权限
一、获得永久root权限
1.为root设置初始密码
(1)登录系统,打开终端,输入命令:
1 2
| $ sudo passwd root 为root用户设置密码
|
(2)设置root密码(建议简单点,没必要那么复杂);
(3)重复root密码;
2.修改/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf文件内容
终端输入:
1
| sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
|
打开文件,在文件末尾加入如下两行,完成后保存并关闭(注意这一步,千万不要删除文件中原本的两行内容);
1 2
| greeter-show-manual-login=true all-guest=false
|
3.进入/etc/pam.d文件夹下,修改gdm-autologin和gdm-password文件内容(参考第2步的命令):
gdm-autologin文件注释掉auth required pam_success_if.so user!=root quiet_success这一行
gdm-password文件注释掉auth required pam_success_if.so user!=root quiet_success这一行
说明:注释只需要在这一行前加"#"即可,例如:
1
| #auth required pam_success_if.so user!=root quiet_success
|
4.修改/root/.profile文件
终端输入:
1
| sudo gedit /root/.profile
|
打开文件,将最后一行改为以下:
1
| tty -s && mesg n || true
|
保存并关闭,重启,重启之后选择“未列出”输入账号root和密码;
二、临时root权限
法一
法二
五、报错处理
(一)Could not get lock /var/lib/dpkg/lock-frontend
使用apt安装时报错:
解决方案:
法一:
1 2
| 找到apt进程 $ ps -A|grep apt
|
如果显示
就执行
1 2 3 4
| kill掉找到的进程 $ sudo kill -9 processnumber(进程号)
$ sudo kill 5873
|
法二:执行
1
| sudo killall apt apt-get
|
如果提示没有apt进程:
apt: no process found
apt-get: no process found
依次执行删除lock文件:
1 2 3 4 5 6 7
| # 移除 /var/lib/dpkg/ 文件夹下的锁定文件 sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock* # 强制重新配置软件包 sudo dpkg --configure -a sudo apt update
|