Linux学习笔记

记录一下自己之前一年的Linux学习笔记

1.文件名为test.c

gcc test.c 为编译
./a.out 为运行

gcc -o test test.c 为编译
./test 为运行

2.文件名为test.py
python test.py 为运行
3.
sudo apt install python-pip 安装pip
python -m pip install --upgrade pip 升级pip
pip uninstall SomePackage 卸载包
pip show 显示安装包信息
pip list 列出已安装的包
pip list -o 查看可升级的包
4…
liunx常用指令:
cal指令,查看日历
date指令,显示当前时间的
df指令,用于查看磁盘的使用情况,添加-h参数表示以人类可读的方式显示
du指令,用于统计磁盘下的文件和目录使用情况,-h参数表示为以人类可读的方式显示,-s表示统计之和。
du指令默认是递归的。
ps指令,主要用来查看当前linux系统的所有进程,比如只查看root用户的进行,-u表示user
ssh指令,主要用于远程登陆服务器,远程执行命令,传输文件
top指令,列出当前活动进程,cpu,内存,交换内存、负载性能等信息。 q退出
rm指令,移除文件或目录
参数-f,force,忽略不存在的文件,不出现警告。
参数-i,互动模式,在删除前会询问使用者是否动作。
参数-r,递归删除!
#########~ 常用 rm -rf <目录名> 来强制删除非空目录
mv指令,移动文件与目录,或修改文件与目录的名称,参数-f,如果目标文件已经存在,不会询问而直接覆盖。
参数-i,或目标文件已经存在,就会询问是否覆盖。
参数-u,或目标已经存在,且source比较新,才会update。
pwd指令,显示目录当前目录的命令,参数 -P显示出确实的路径(完整路径),而非使用连结link路径
mkdir指令,创建新目录,mkdir [-mp]目录名称 ,参数-m:配置文件的权限,直接配置,不需要默认权限
参数-p:将所需要的目录包含上一级目录递归创建。
rmdir 指令,rmdir [-p] 目录 参数-p连同上一级空的目录一起删除。(只能删除空的目录)
cp指令,cp [-adfilprsu] 来源档(source) 目标档(destination)
cp [options] source1 source2 source3 … directory
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
##########~常用命令 cp -pdr <文件名> <文件名>
useradd指令useradd 选项 用户名
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
userdel命令删除用户 userdel -r sam 此命令删除用户sam在系统文件中的记录,同时删除用户的主目录。
usermod 命令,改变用户账号。 usermod -s /bin/ksh -d /home/z –g developer sam 此命令将用户sam的
登录shell修改为ksh,主目录改为/home/z,用户组改为developer
groupadd选项 用户组 增加一个新的用户组。参数 -g GID指定新用户组的组标识号
参数-o一般与-g选项同时连用,表示新用户组的GID可以与体系下已有用户组的GID相同。
groupdel *
newgrp 指令,切换到用户组, 例:newgrp root 将当前用户切换到root用户组,前提条件是root用户是该用户的主组或附加组。

################/etc/passwd文件是用户管理工作涉及的最重要的一个文件。用户名:口令:用户标记号:组标识号:注释性描述:主目录:登录shell
伪用户 bin 拥有可执行的用户命令文件
sys 拥有系统文件
adm 拥有帐号文件
uucp UUCP使用
lp lp或lpd子系统使用
nobody NFS使用

df指令,列出文件系统的整体磁盘使用量
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
du指令,检查磁盘空间使用量
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
fdisk指令,用于磁盘分区
mkfs(make filesystem命令) 对文件系统格式化 参数-t 可以接文件系统格式,
fsck(file system check)指令 用来检查和维护不一致的文件系统。

文件内容查看
cat由第一行开始显示文件内容
tac从最后一行显示,与cat 相反
nl显示的时候,顺道输出行号
more一页一页的显示文件内容
less与more类似,但可以往前翻页。
head 只看头几行
tail 只看尾几行

文件管理命令
diff chattr chgrp chmod chown cksum cmp
cut diffstat file find git gitview indent mc
cp in mcopy mshowfat rhmask whereis which rm slocate split tee tmpwatch touch umask
mdel mdir mktemp more mmove mread mren
mtools mtoolstest split tee tmpwatch touch umask

问题:文件权限只有在创建时可以配置?一个文件的子文件与其兄弟文件名字相同,该如何配置权限

5.vim常用命令
:w 是保存
:w [filename] 将编辑的数据存成另一个档案
:r [filename] 在编辑的数据中,读入另一个档案的数据。
:!command 暂时离开vi到指令行模式下执行command的显示结果。.
:set nu 显示行号
:set nonu 取消行号
:r 打开文件
ctrl+f 屏幕向下移动一页
ctrl+b 屏幕向上移动一页
ctrl+d 屏幕向下移动半页
ctrl+u 屏幕向上移协半页
n 光标会向右移动这一行的n个字符
0 移动到这一行的最前面字符处
$ 移动到这一行的最后面字符处
G 移动到这个档案的最后一行 nG 移动到这个档案的第n行
gg 移动到这个档案的第一行 相当于1G
n 光标向下移动n行

/word 向光标之下寻找一个名称为word的字符串
?word 向光标之上寻
n 代表重复前一个搜寻的动作
N 与n相反
x,X,X 相当于退格,向前删除,x向后删除
dd 删除该行
ndd 删除该行及以下的n行
yy 复制该行所有数据
nyy 向下复制n行
p,P p为粘贴到光标的下一行,P为上一行,
u 复原前一个动作
ctrl+r 重做上一个动作
. 重复前一个动作的意思

i o a 均为输入
r 为取代

注意:vim 是在终端中打开的,vim的菜单命令都是终端的菜单命令。单击vim上的菜单命令都是对终端进行操作。

注:ctrl+z退出python交互模式

linux-python2.7升级过程
根据https://blog.csdn.net/Sukiyou_xixi/article/details/80403531
https://blog.csdn.net/AQ_cainiao_AQ/article/details/66969859
mkdir /home/mayang/python3.6.5
cd /home/mayang/python3.6.5
wget http://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar -xzvf Python-3.6.5.tgz
cd Python-3.6.5

sudo apt-get update (yum是CentOs系列的,ubuntu用sudo命令安装gcc
sudo apt-get install gcc
./configure --prefix=/usr/local/python3.6
sudo apt-get install zlib*
make
make install
echo $?

python -V
(注:中间有用户的切换 通过sudo passwd root 输入新密码,更改密码成功后,输入切换命令su,
看到$已经变为了#,代表已经切换到了root用户,退出用exit)

7.chgrp [-R] 属组名 文件名 更改文件属组
chown [-R] 属主名 文件名 更改文件属主
chown [-R] 属主名:属组名 文件名 更改文件属主及属组
chmod [-R] xyz 文件或目录 更改权限
chmod u=xyz,g=xyz,o=xyz 文件名 更改权限
-R:进行递归的持续变更,变即连同次目录下的所有文件都会变更
xyz即为数字类型的权限类型
ls -al 文件名 查看文件权限 ls命令参数 -a是全部的文件,-d仅列出目录本身,而不
是列出目录内的文件数据,-l长数据串列出,包含文件属性与权限
(注:chmod a-x 文件名 去掉所有人可执行权限)
10位字符表示: 0位表示文件类型 d为目录 -为文件 l为链接文档 b为可供储存的接口设备 c表示串行端口设备

8服务器架设篇
大量设置账号,建立群组并设置初始密码
mkdir bin
cd /root/bin
vim useradd.sh
#!/bin/bash
groupadd vbirdgroup
for username in vbirduser1 vbirduser2 vbirduser3 vbirduser4 vbirduser5
do
useradd -G vbirdgroup $username
echo “password” | passwd --stdin $username
done
sh useradd.sh
id vbirduser1
uid=501(vbirduser1)
gid=502(vbirduser1
ACL额外控制权限在etc/fstab内额外增加acl控制参数
SELinux主要在控制细部的权限

9.由于第一次通过# 下载
wget https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh
下载anaconda后再
sh Anaconda3-5.3.0-Linux-x86_64.sh
安装anaconda 后未配置环境,导致虽然python可以出现交互式命令行,表示安装成功,
但在基于anaconda的环境下安装pytorch时找不到conda,
于是我通过删除其目录 rm /root/Anaconda3-5.3.0-Linux-x86_64.sh ,再次重新下载
下载好以后,开始安装:bash Anaconda3-5.0.0-Linux-x86_64.sh
可能由于我之前装了,但没配置,我直接vim ~/.bashrc,在文件最后加上
export PATH="/root/anaconda3/bin:$PATH" 后保存退出,安装好之后,
输入source ~/.bashrc ,然后重启终端

conda安装软件的标准语法格式
conda install -c

10.关于vim的插件vundle和pydiction和Youcompleteme
http://www.cnblogs.com/linxiyue/p/7834817.html

11.与github建立ssh连接
https://blog.csdn.net/wugenqiang/article/details/81215396
ssh-keygen -t rsa -C “[email protected]
将id_rsa.pub的内容复制到key文本框中,
ssh [email protected] 测试连接
git clone url
12.
182.254.194.63:22
1001
13.
windows安装 xserver和vnc即可桌面控制远程主机显示其图形界面

vnc
https://blog.51cto.com/13043516/2055574
https://blog.csdn.net/nengyu/article/details/49964493
https://www.cnblogs.com/pipci/p/7833581.html
https://wenku.baidu.com/view/b1f98d1f4431b90d6c85c7f4.html
service vncserver status 检查vnc服务是否启动
service vncserver start 没有就启动它
https://wenku.baidu.com/view/b1f98d1f4431b90d6c85c7f4.html

命令行查看图片
https://blog.csdn.net/xerysherryx/article/details/79075308?utm_source=blogxgwz4
安装图形化界面
https://blog.csdn.net/solder_sun/article/details/82261529
命令行模式与图片模式切换
https://www.cnblogs.com/xzdblogs/p/6380596.html

内存等信息查看
https://blog.csdn.net/u014311799/article/details/78775175

iptables
https://blog.51cto.com/dog250/1583015

lspci | grep -i vga
lspci | grep -i nvidia
nvidia-smi
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

bin 基本命令执行文件
boot boot loader 的静态链接文件
dev 设备文件
etc 主机特定的系统配置
home 用户目录
lib 基本共享库以及内核模块
media 用于移动介质的挂载点
mnt 用于临时挂载文件系统
proc 系统信息的虚拟目录(2.4 和 2.6 内核)
root root 用户的目录
sbin 基本系统命令执行文件
sys 系统信息的虚拟目录(2.6 内核)
tmp 临时文件
usr 第二级目录
var 不断变化的数据
srv 系统提供的用于 service 的数据
opt 附加的应用程序软件包

你可能感兴趣的:(linux,笔记)